[INFO] cloning repository https://github.com/doy/nbsh [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/doy/nbsh" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoy%2Fnbsh", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoy%2Fnbsh'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4151ab7aab939a12721a0f4207c87b5c09ace339 [INFO] checking doy/nbsh/4151ab7aab939a12721a0f4207c87b5c09ace339 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoy%2Fnbsh" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/doy/nbsh on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/doy/nbsh [INFO] finished tweaking git repo https://github.com/doy/nbsh [INFO] tweaked toml for git repo https://github.com/doy/nbsh written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/doy/nbsh already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 46194384bcc030f8497d5615ed08736e6657f99272c69918cae493c579f1ee09 [INFO] running `Command { std: "docker" "start" "-a" "46194384bcc030f8497d5615ed08736e6657f99272c69918cae493c579f1ee09", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "46194384bcc030f8497d5615ed08736e6657f99272c69918cae493c579f1ee09", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "46194384bcc030f8497d5615ed08736e6657f99272c69918cae493c579f1ee09", kill_on_drop: false }` [INFO] [stdout] 46194384bcc030f8497d5615ed08736e6657f99272c69918cae493c579f1ee09 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 03391372c1263021c6b077058a0d2a7dce4ecb12824dac5f81191f399657090b [INFO] running `Command { std: "docker" "start" "-a" "03391372c1263021c6b077058a0d2a7dce4ecb12824dac5f81191f399657090b", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling libc v0.2.119 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling parking_lot_core v0.9.1 [INFO] [stderr] Compiling pkg-config v0.3.24 [INFO] [stderr] Checking pin-project-lite v0.2.8 [INFO] [stderr] Checking lock_api v0.4.6 [INFO] [stderr] Compiling serde_derive v1.0.136 [INFO] [stderr] Checking tinyvec v1.5.1 [INFO] [stderr] Compiling ucd-trie v0.1.3 [INFO] [stderr] Compiling serde v1.0.136 [INFO] [stderr] Compiling crossbeam-utils v0.8.7 [INFO] [stderr] Compiling vte_generate_state_changes v0.1.1 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling tokio-macros v1.7.0 [INFO] [stderr] Checking utf8parse v0.2.0 [INFO] [stderr] Compiling maplit v1.0.2 [INFO] [stderr] Checking arrayvec v0.5.2 [INFO] [stderr] Compiling futures-task v0.3.21 [INFO] [stderr] Compiling pest v2.1.3 [INFO] [stderr] Checking unicode-bidi v0.3.7 [INFO] [stderr] Compiling anyhow v1.0.55 [INFO] [stderr] Checking unicode-width v0.1.9 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Compiling futures-util v0.3.21 [INFO] [stderr] Checking vte v0.10.1 [INFO] [stderr] Compiling futures-macro v0.3.21 [INFO] [stderr] Checking walkdir v2.3.2 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking match_cfg v0.1.0 [INFO] [stderr] Checking num_threads v0.1.3 [INFO] [stderr] Compiling time-macros v0.2.3 [INFO] [stderr] Checking slab v0.4.5 [INFO] [stderr] Checking glob v0.3.0 [INFO] [stderr] Checking crossbeam-channel v0.5.2 [INFO] [stderr] Compiling clap_derive v3.1.4 [INFO] [stderr] Compiling jobserver v0.1.24 [INFO] [stderr] Checking unicode-normalization v0.1.19 [INFO] [stderr] Compiling cc v1.0.73 [INFO] [stderr] Compiling pest_meta v2.1.3 [INFO] [stderr] Checking vt100 v0.15.1 [INFO] [stderr] Checking mio v0.8.0 [INFO] [stderr] Checking socket2 v0.4.4 [INFO] [stderr] Checking num_cpus v1.13.1 [INFO] [stderr] Checking signal-hook-registry v1.4.0 [INFO] [stderr] Checking terminal_size v0.1.17 [INFO] [stderr] Checking nix v0.23.1 (https://github.com/nix-rust/nix#9312f1c4) [INFO] [stderr] Checking inotify-sys v0.1.5 [INFO] [stderr] Checking filetime v0.2.15 [INFO] [stderr] Checking textwrap v0.15.0 [INFO] [stderr] Checking inotify v0.9.6 [INFO] [stderr] Checking dirs-sys v0.3.6 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking time v0.3.7 [INFO] [stderr] Checking users v0.11.0 [INFO] [stderr] Checking hostname v0.3.1 [INFO] [stderr] Checking parking_lot v0.12.0 [INFO] [stderr] Checking directories v4.0.1 [INFO] [stderr] Checking idna v0.2.3 [INFO] [stderr] Checking tokio v1.17.0 [INFO] [stderr] Checking notify v5.0.0-pre.13 (https://github.com/notify-rs/notify#b1802ecc) [INFO] [stderr] Compiling pest_generator v2.1.3 [INFO] [stderr] Compiling libz-sys v1.1.3 [INFO] [stderr] Compiling libgit2-sys v0.13.1+1.4.2 [INFO] [stderr] Checking clap v3.1.5 [INFO] [stderr] Checking url v2.2.2 [INFO] [stderr] Compiling pest_derive v2.1.0 [INFO] [stderr] Checking pty-process v0.2.0 (https://github.com/doy/pty-process#b2733e64) [INFO] [stderr] Checking tokio-util v0.7.0 [INFO] [stderr] Checking textmode v0.3.0 (https://github.com/doy/textmode#193e1963) [INFO] [stderr] Checking tokio-stream v0.1.8 [INFO] [stderr] Checking git2 v0.14.1 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking toml v0.5.8 [INFO] [stderr] Checking nbsh v0.1.0 (/tmp/fixit) [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `nbsh` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/main.rs [INFO] [stderr] * src/runner/builtins/mod.rs [INFO] [stderr] * src/runner/mod.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/runner/builtins/mod.rs:32:6 [INFO] [stderr] | [INFO] [stderr] 32 | ($cfg:expr_2021, $exe:expr_2021, $msg: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/runner/builtins/mod.rs:32:22 [INFO] [stderr] | [INFO] [stderr] 32 | ($cfg:expr_2021, $exe:expr_2021, $msg: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/runner/builtins/mod.rs:32:38 [INFO] [stderr] | [INFO] [stderr] 32 | ($cfg:expr_2021, $exe:expr_2021, $msg: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/runner/builtins/mod.rs:39:6 [INFO] [stderr] | [INFO] [stderr] 39 | ($cfg:expr_2021, $exe:expr_2021, $msg:expr_2021, $($arg:tt)*) => { [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/runner/builtins/mod.rs:39:22 [INFO] [stderr] | [INFO] [stderr] 39 | ($cfg:expr_2021, $exe:expr_2021, $msg:expr_2021, $($arg:tt)*) => { [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/runner/builtins/mod.rs:39:38 [INFO] [stderr] | [INFO] [stderr] 39 | ($cfg:expr_2021, $exe:expr_2021, $msg:expr_2021, $($arg:tt)*) => { [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/runner/builtins/mod.rs:144:14 [INFO] [stderr] | [INFO] [stderr] 144 | ($bytes: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/runner/mod.rs:361:10 [INFO] [stdout] warning: unused import: `File` [INFO] [stdout] --> src/runner/builtins/mod.rs:4:35 [INFO] [stdout] | [INFO] [stdout] 4 | pub use command::{Child, Command, File, Io}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stderr] 361 | ($e: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: `nbsh_tokio_console` [INFO] [stderr] --> src/main.rs:57:11 [INFO] [stderr] | [INFO] [stderr] 57 | #[cfg(nbsh_tokio_console)] [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(nbsh_tokio_console)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(nbsh_tokio_console)");` 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] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | ($cfg:expr, $exe:expr, $msg: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] 32 | ($cfg:expr_2021, $exe:expr, $msg:expr $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: aborting due to 8 previous errors; 1 warning emitted [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | ($cfg:expr, $exe:expr, $msg: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] 32 | ($cfg:expr, $exe:expr_2021, $msg:expr $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [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/runner/builtins/mod.rs:32:33 [INFO] [stdout] | [INFO] [stdout] 32 | ($cfg:expr, $exe:expr, $msg: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] 32 | ($cfg:expr, $exe:expr, $msg: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/runner/builtins/mod.rs:39:11 [INFO] [stdout] | [INFO] [stdout] 39 | ($cfg:expr, $exe:expr, $msg:expr, $($arg:tt)*) => { [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 | ($cfg:expr_2021, $exe:expr, $msg:expr, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:39:22 [INFO] [stdout] | [INFO] [stdout] 39 | ($cfg:expr, $exe:expr, $msg:expr, $($arg:tt)*) => { [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 | ($cfg:expr, $exe:expr_2021, $msg:expr, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:39:33 [INFO] [stdout] | [INFO] [stdout] 39 | ($cfg:expr, $exe:expr, $msg:expr, $($arg:tt)*) => { [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 | ($cfg:expr, $exe:expr, $msg:expr_2021, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:142:21 [INFO] [stdout] | [INFO] [stdout] 142 | ($bytes: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] 142 | ($bytes: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/runner/mod.rs:360:13 [INFO] [stdout] | [INFO] [stdout] 360 | ($e: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] 360 | ($e:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `nbsh_tokio_console` [INFO] [stdout] --> src/main.rs:57:11 [INFO] [stdout] | [INFO] [stdout] 57 | #[cfg(nbsh_tokio_console)] [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(nbsh_tokio_console)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(nbsh_tokio_console)");` 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] warning[E0133]: call to unsafe function `runner::builtins::command::Cfg::pre_exec` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | self.cfg.pre_exec(f); [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/runner/builtins/command.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / pub unsafe fn pre_exec(&mut self, f: F) [INFO] [stdout] 44 | | where [INFO] [stdout] 45 | | F: 'static + FnMut() -> std::io::Result<()> + Send + Sync, [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 `std::os::fd::FromRawFd::from_raw_fd` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:300:18 [INFO] [stdout] | [INFO] [stdout] 300 | Self::In(std::fs::File::from_raw_fd(fd)) [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/runner/builtins/command.rs:299:5 [INFO] [stdout] | [INFO] [stdout] 299 | pub unsafe fn input(fd: std::os::unix::io::RawFd) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::os::fd::FromRawFd::from_raw_fd` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:305:19 [INFO] [stdout] | [INFO] [stdout] 305 | Self::Out(std::fs::File::from_raw_fd(fd)) [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/runner/builtins/command.rs:304:5 [INFO] [stdout] | [INFO] [stdout] 304 | pub unsafe fn output(fd: std::os::unix::io::RawFd) -> Self { [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/runner/builtins/mod.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | std::env::set_var(k, 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] = 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] 108 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 109 ~ unsafe { std::env::set_var(k, 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/runner/builtins/mod.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | std::env::remove_var(k); [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] 126 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 127 ~ unsafe { std::env::remove_var(k) }; [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/runner/builtins/mod.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | std::env::set_var(var, val); [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] 185 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 186 ~ unsafe { std::env::set_var(var, val) }; [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/runner/mod.rs:179:29 [INFO] [stdout] | [INFO] [stdout] 179 | ... std::env::set_var(var, &val); [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] 179 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 180 ~ unsafe { std::env::set_var(var, &val) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `allow_with` is never used [INFO] [stdout] --> src/prelude.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub trait Result { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 24 | fn allow_with(self, allow_e: Self::E, default_t: Self::T) -> Self; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `old_history` is never read [INFO] [stdout] --> src/shell/mod.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 78 | pub struct Shell { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 81 | old_history: old_history::History, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `entries` is never read [INFO] [stdout] --> src/shell/old_history.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct History { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 12 | entries: std::sync::Arc>>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `entry_count` is never used [INFO] [stdout] --> src/shell/old_history.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl History { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn entry_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cmdline`, `start_time`, and `duration` are never read [INFO] [stdout] --> src/shell/old_history.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct Entry { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 54 | cmdline: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 55 | start_time: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 56 | duration: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `render` and `cmd` are never used [INFO] [stdout] --> src/shell/old_history.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl Entry { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] 60 | pub fn render( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn cmd(&self) -> &str { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/info.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | if let Ok(offset_str) = offset_str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/info.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | } 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] 56 ~ match offset_str { Ok(offset_str) => { [INFO] [stdout] 57 | let offset_str = String::from_utf8(offset_str.stdout).unwrap(); [INFO] [stdout] ... [INFO] [stdout] 63 | .unwrap_or(time::UtcOffset::UTC) [INFO] [stdout] 64 ~ } _ => { [INFO] [stdout] 65 | time::UtcOffset::UTC [INFO] [stdout] 66 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/mod.rs:415:11 [INFO] [stdout] | [INFO] [stdout] 415 | while let Some(res) = stream.next().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/mod.rs:496:5 [INFO] [stdout] | [INFO] [stdout] 496 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | if let Some(pre_exec) = self.pre_exec.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 87 ~ match self.pre_exec.take() { Some(pre_exec) => { [INFO] [stdout] 88 | // Safety: pre_exec can only have been set by calling the pre_exec [INFO] [stdout] ... [INFO] [stdout] 91 | unsafe { cmd.pre_exec(pre_exec) }; [INFO] [stdout] 92 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:193:16 [INFO] [stdout] | [INFO] [stdout] 193 | if let File::In(fh) = &*file { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:209:13 [INFO] [stdout] | [INFO] [stdout] 209 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 193 ~ match &*file { File::In(fh) => { [INFO] [stdout] 194 | // we have to read only a single character at a time here [INFO] [stdout] ... [INFO] [stdout] 208 | } [INFO] [stdout] 209 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:220:12 [INFO] [stdout] | [INFO] [stdout] 220 | if let Some(file) = self.stdout() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | } 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] 220 ~ match self.stdout() { Some(file) => { [INFO] [stdout] 221 | if let File::Out(fh) = &*file { [INFO] [stdout] ... [INFO] [stdout] 225 | } [INFO] [stdout] 226 ~ } _ => { [INFO] [stdout] 227 | Ok(()) [INFO] [stdout] 228 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:221:16 [INFO] [stdout] | [INFO] [stdout] 221 | if let File::Out(fh) = &*file { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:223:13 [INFO] [stdout] | [INFO] [stdout] 223 | } 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] 221 ~ match &*file { File::Out(fh) => { [INFO] [stdout] 222 | Ok((&*fh).write_all(buf)?) [INFO] [stdout] 223 ~ } _ => { [INFO] [stdout] 224 | Ok(()) [INFO] [stdout] 225 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 232 | if let Some(file) = self.stderr() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:238:9 [INFO] [stdout] | [INFO] [stdout] 238 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 232 ~ match self.stderr() { Some(file) => { [INFO] [stdout] 233 | if let File::Out(fh) = &*file { [INFO] [stdout] ... [INFO] [stdout] 237 | } [INFO] [stdout] 238 ~ } _ => { [INFO] [stdout] 239 | Ok(()) [INFO] [stdout] 240 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:233:16 [INFO] [stdout] | [INFO] [stdout] 233 | if let File::Out(fh) = &*file { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:235:13 [INFO] [stdout] | [INFO] [stdout] 235 | } 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] 233 ~ match &*file { File::Out(fh) => { [INFO] [stdout] 234 | Ok((&*fh).write_all(buf)?) [INFO] [stdout] 235 ~ } _ => { [INFO] [stdout] 236 | Ok(()) [INFO] [stdout] 237 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:245:16 [INFO] [stdout] | [INFO] [stdout] 245 | if let Ok(stdin) = std::sync::Arc::try_unwrap(stdin) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:254:13 [INFO] [stdout] | [INFO] [stdout] 254 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 245 ~ match std::sync::Arc::try_unwrap(stdin) { Ok(stdin) => { [INFO] [stdout] 246 | let stdin = stdin.into_raw_fd(); [INFO] [stdout] ... [INFO] [stdout] 253 | } [INFO] [stdout] 254 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:257:16 [INFO] [stdout] | [INFO] [stdout] 257 | if let Ok(stdout) = std::sync::Arc::try_unwrap(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 257 ~ match std::sync::Arc::try_unwrap(stdout) { Ok(stdout) => { [INFO] [stdout] 258 | let stdout = stdout.into_raw_fd(); [INFO] [stdout] ... [INFO] [stdout] 265 | } [INFO] [stdout] 266 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | if let Some(stderr) = self.fds.remove(&2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 268 ~ match self.fds.remove(&2) { Some(stderr) => { [INFO] [stdout] 269 | if let Ok(stderr) = std::sync::Arc::try_unwrap(stderr) { [INFO] [stdout] ... [INFO] [stdout] 278 | } [INFO] [stdout] 279 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:269:16 [INFO] [stdout] | [INFO] [stdout] 269 | if let Ok(stderr) = std::sync::Arc::try_unwrap(stderr) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:278:13 [INFO] [stdout] | [INFO] [stdout] 278 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 269 ~ match std::sync::Arc::try_unwrap(stderr) { Ok(stderr) => { [INFO] [stdout] 270 | let stderr = stderr.into_raw_fd(); [INFO] [stdout] ... [INFO] [stdout] 277 | } [INFO] [stdout] 278 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:309:12 [INFO] [stdout] | [INFO] [stdout] 309 | if let Ok(file) = std::sync::Arc::try_unwrap(file) { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 309 ~ match std::sync::Arc::try_unwrap(file) { Ok(file) => { [INFO] [stdout] 310 | if file.as_raw_fd() <= 2 { [INFO] [stdout] 311 | let _ = file.into_raw_fd(); [INFO] [stdout] 312 | } [INFO] [stdout] 313 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/mod.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 28 | while let Some(event) = event_r.recv().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/mod.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/event.rs:47:23 [INFO] [stdout] | [INFO] [stdout] 47 | while let Some(event) = input.recv().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/event.rs:49:17 [INFO] [stdout] | [INFO] [stdout] 49 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/history/entry.rs:369:15 [INFO] [stdout] | [INFO] [stdout] 369 | while let Some(res) = stream.next().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/history/entry.rs:389:9 [INFO] [stdout] | [INFO] [stdout] 389 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/history/pty.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | while let Some(res) = stream.next().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/history/pty.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:27:15 [INFO] [stdout] | [INFO] [stdout] 27 | while let Some(mut dir) = git_r.recv().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:28:19 [INFO] [stdout] | [INFO] [stdout] 28 | while let Ok(newer_dir) = git_r.try_recv() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:42:27 [INFO] [stdout] | [INFO] [stdout] 42 | while let Ok(event) = sync_watch_r.recv() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:46:21 [INFO] [stdout] | [INFO] [stdout] 46 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/inputs/stdin.rs:11:19 [INFO] [stdout] | [INFO] [stdout] 11 | while let Some(key) = input.read_key().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^----------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/inputs/stdin.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:37:15 [INFO] [stdout] | [INFO] [stdout] 37 | while let Some(line) = stream.next().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:38:27 [INFO] [stdout] | [INFO] [stdout] 38 | let line = if let Ok(line) = line { [INFO] [stdout] | ^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | } 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] 38 ~ let line = match line { Ok(line) => { [INFO] [stdout] 39 | line [INFO] [stdout] 40 ~ } _ => { [INFO] [stdout] 41 | continue; [INFO] [stdout] 42 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:43:28 [INFO] [stdout] | [INFO] [stdout] 43 | let entry = if let Ok(entry) = line.parse() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 43 ~ let entry = match line.parse() { Ok(entry) => { [INFO] [stdout] 44 | entry [INFO] [stdout] 45 ~ } _ => { [INFO] [stdout] 46 | continue; [INFO] [stdout] 47 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 47 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 `nbsh` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/main.rs [INFO] [stderr] * src/parse/test_ast.rs [INFO] [stderr] * src/runner/builtins/mod.rs [INFO] [stderr] * src/runner/mod.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parse/test_ast.rs:10:8 [INFO] [stderr] | [INFO] [stderr] 10 | ($($commands: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/parse/test_ast.rs:21:6 [INFO] [stderr] | [INFO] [stderr] 21 | ($span:expr_2021, $($exes: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/parse/test_ast.rs:21:25 [INFO] [stderr] | [INFO] [stderr] 21 | ($span:expr_2021, $($exes: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/parse/test_ast.rs:30:8 [INFO] [stderr] | [INFO] [stderr] 30 | ($($exes: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/parse/test_ast.rs:38:6 [INFO] [stderr] | [INFO] [stderr] 38 | ($word: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/parse/test_ast.rs:45:6 [INFO] [stderr] | [INFO] [stderr] 45 | ($word:expr_2021, $($args: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/parse/test_ast.rs:45:25 [INFO] [stderr] | [INFO] [stderr] 45 | ($word:expr_2021, $($args: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/parse/test_ast.rs:52:6 [INFO] [stderr] | [INFO] [stderr] 52 | ($word:expr_2021 ; $($redirects: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/parse/test_ast.rs:52:26 [INFO] [stderr] | [INFO] [stderr] 52 | ($word:expr_2021 ; $($redirects: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/parse/test_ast.rs:59:6 [INFO] [stderr] | [INFO] [stderr] 59 | ($word:expr_2021, $($args:expr_2021),* ; $($redirects: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/parse/test_ast.rs:59:25 [INFO] [stderr] | [INFO] [stderr] 59 | ($word:expr_2021, $($args:expr_2021),* ; $($redirects: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/parse/test_ast.rs:59:48 [INFO] [stderr] | [INFO] [stderr] 59 | ($word:expr_2021, $($args:expr_2021),* ; $($redirects: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/parse/test_ast.rs:69:6 [INFO] [stderr] | [INFO] [stderr] 69 | ($exe: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/parse/test_ast.rs:76:6 [INFO] [stderr] | [INFO] [stderr] 76 | ($exe:expr_2021, $($args: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/parse/test_ast.rs:76:24 [INFO] [stderr] | [INFO] [stderr] 76 | ($exe:expr_2021, $($args: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/parse/test_ast.rs:89:21 [INFO] [stderr] | [INFO] [stderr] 89 | ($from:literal, $to:expr_2021, $dir: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/parse/test_ast.rs:104:8 [INFO] [stderr] | [INFO] [stderr] 104 | ($($word: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/parse/test_ast.rs:112:8 [INFO] [stderr] | [INFO] [stderr] 112 | ($($word: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/parse/test_ast.rs:124:6 [INFO] [stderr] | [INFO] [stderr] 124 | ($bareword: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/parse/test_ast.rs:130:6 [INFO] [stderr] | [INFO] [stderr] 130 | ($doublequoted: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/parse/test_ast.rs:136:6 [INFO] [stderr] | [INFO] [stderr] 136 | ($singlequoted: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/parse/test_ast.rs:142:21 [INFO] [stderr] | [INFO] [stderr] 142 | ($line:literal, $parsed: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/parse/test_ast.rs:148:21 [INFO] [stderr] | [INFO] [stderr] 148 | ($line:literal, $env:expr_2021, $($evaled: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/parse/test_ast.rs:148:39 [INFO] [stderr] | [INFO] [stderr] 148 | ($line:literal, $env:expr_2021, $($evaled: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/parse/test_ast.rs:168:21 [INFO] [stderr] | [INFO] [stderr] 168 | ($line:literal, $parsed: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/parse/test_ast.rs:178:21 [INFO] [stderr] | [INFO] [stderr] 178 | ($line:literal, $env: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/runner/builtins/mod.rs:32:6 [INFO] [stderr] | [INFO] [stderr] 32 | ($cfg:expr_2021, $exe:expr_2021, $msg: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/runner/builtins/mod.rs:32:22 [INFO] [stderr] | [INFO] [stderr] 32 | ($cfg:expr_2021, $exe:expr_2021, $msg: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/runner/builtins/mod.rs:32:38 [INFO] [stderr] | [INFO] [stderr] 32 | ($cfg:expr_2021, $exe:expr_2021, $msg: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/runner/builtins/mod.rs:39:6 [INFO] [stderr] | [INFO] [stderr] 39 | ($cfg:expr_2021, $exe:expr_2021, $msg:expr_2021, $($arg:tt)*) => { [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/runner/builtins/mod.rs:39:22 [INFO] [stderr] | [INFO] [stderr] 39 | ($cfg:expr_2021, $exe:expr_2021, $msg:expr_2021, $($arg:tt)*) => { [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/runner/builtins/mod.rs:39:38 [INFO] [stderr] | [INFO] [stderr] 39 | ($cfg:expr_2021, $exe:expr_2021, $msg:expr_2021, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | ($($commands: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] 10 | ($($commands:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | ($span:expr, $($exes: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] 21 | ($span:expr_2021, $($exes:expr),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:21:26 [INFO] [stdout] | [INFO] [stdout] 21 | ($span:expr, $($exes: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] 21 | ($span:expr, $($exes:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:30:14 [INFO] [stdout] | [INFO] [stdout] 30 | ($($exes: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] 30 | ($($exes:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | ($word: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] 38 | ($word:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | ($word:expr, $($args: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] 45 | ($word:expr_2021, $($args:expr),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:45:26 [INFO] [stdout] | [INFO] [stdout] 45 | ($word:expr, $($args: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] 45 | ($word:expr, $($args:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/runner/builtins/mod.rs:144:14 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | ($word:expr ; $($redirects: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] 52 | ($word:expr_2021 ; $($redirects:expr),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:52:32 [INFO] [stdout] | [INFO] [stdout] 52 | ($word:expr ; $($redirects: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] 52 | ($word:expr ; $($redirects:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 144 | ($bytes:expr_2021) => { [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 59 | ($word:expr, $($args:expr),* ; $($redirects:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 59 | ($word:expr_2021, $($args:expr),* ; $($redirects:expr),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:59:26 [INFO] [stdout] | [INFO] [stdout] 59 | ($word:expr, $($args:expr),* ; $($redirects:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 59 | ($word:expr, $($args:expr_2021),* ; $($redirects:expr),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:59:49 [INFO] [stdout] | [INFO] [stdout] 59 | ($word:expr, $($args:expr),* ; $($redirects:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 59 | ($word:expr, $($args:expr),* ; $($redirects:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:69:11 [INFO] [stdout] | [INFO] [stdout] 69 | ($exe: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] 69 | ($exe:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:76:11 [INFO] [stdout] | [INFO] [stdout] 76 | ($exe:expr, $($args: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] 76 | ($exe:expr_2021, $($args:expr),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:76:25 [INFO] [stdout] | [INFO] [stdout] 76 | ($exe:expr, $($args: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] 76 | ($exe:expr, $($args:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:89:25 [INFO] [stdout] | [INFO] [stdout] 89 | ($from:literal, $to:expr, $dir: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] 89 | ($from:literal, $to:expr_2021, $dir:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:104:14 [INFO] [stdout] | [INFO] [stdout] 104 | ($($word: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] 104 | ($($word:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/runner/mod.rs:361:10 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:112:14 [INFO] [stdout] | [INFO] [stdout] 112 | ($($word:expr),*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 112 | ($($word:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:124:16 [INFO] [stdout] | [INFO] [stdout] 124 | ($bareword: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] 124 | ($bareword:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 361 | ($e:expr_2021) => { [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:130:20 [INFO] [stdout] | [INFO] [stdout] 130 | ($doublequoted: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] 130 | ($doublequoted:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:136:20 [INFO] [stdout] | [INFO] [stdout] 136 | ($singlequoted: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] 136 | ($singlequoted:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:142:29 [INFO] [stdout] | [INFO] [stdout] 142 | ($line:literal, $parsed: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] 142 | ($line:literal, $parsed:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:148:26 [INFO] [stdout] | [INFO] [stdout] 148 | ($line:literal, $env:expr, $($evaled: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] 148 | ($line:literal, $env:expr_2021, $($evaled:expr),*) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:148:42 [INFO] [stdout] | [INFO] [stdout] 148 | ($line:literal, $env:expr, $($evaled: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] 148 | ($line:literal, $env:expr, $($evaled:expr_2021),*) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:168:29 [INFO] [stdout] | [INFO] [stdout] 168 | ($line:literal, $parsed: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] 168 | ($line:literal, $parsed:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parse/test_ast.rs:178:26 [INFO] [stdout] | [INFO] [stdout] 178 | ($line:literal, $env: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] 178 | ($line:literal, $env:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: unexpected `cfg` condition name: `nbsh_tokio_console` [INFO] [stdout] warning: unused import: `File` [INFO] [stdout] --> src/runner/builtins/mod.rs:4:35 [INFO] [stdout] | [INFO] [stdout] 4 | pub use command::{Child, Command, File, Io}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/main.rs:57:11 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | ($cfg:expr, $exe:expr, $msg: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] 32 | ($cfg:expr_2021, $exe:expr, $msg:expr $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:32:22 [INFO] [stdout] | [INFO] [stdout] 32 | ($cfg:expr, $exe:expr, $msg: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] 32 | ($cfg:expr, $exe:expr_2021, $msg:expr $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 57 | #[cfg(nbsh_tokio_console)] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:32:33 [INFO] [stdout] | [INFO] [stdout] 32 | ($cfg:expr, $exe:expr, $msg: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] 32 | ($cfg:expr, $exe:expr, $msg:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:39:11 [INFO] [stdout] | [INFO] [stdout] 39 | ($cfg:expr, $exe:expr, $msg:expr, $($arg:tt)*) => { [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 | ($cfg:expr_2021, $exe:expr, $msg:expr, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:39:22 [INFO] [stdout] | [INFO] [stdout] 39 | ($cfg:expr, $exe:expr, $msg:expr, $($arg:tt)*) => { [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 | ($cfg:expr, $exe:expr_2021, $msg:expr, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [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] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:39:33 [INFO] [stdout] | [INFO] [stdout] 39 | ($cfg:expr, $exe:expr, $msg:expr, $($arg:tt)*) => { [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 | ($cfg:expr, $exe:expr, $msg:expr_2021, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/builtins/mod.rs:142:21 [INFO] [stdout] | [INFO] [stdout] 142 | ($bytes: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] 142 | ($bytes:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/runner/mod.rs:360:13 [INFO] [stdout] | [INFO] [stdout] 360 | ($e: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] 360 | ($e:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [lints.rust] [INFO] [stdout] warning: unexpected `cfg` condition name: `nbsh_tokio_console` [INFO] [stdout] --> src/main.rs:57:11 [INFO] [stdout] | [INFO] [stdout] 57 | #[cfg(nbsh_tokio_console)] [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(nbsh_tokio_console)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(nbsh_tokio_console)");` 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] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(nbsh_tokio_console)'] } [INFO] [stdout] warning[E0133]: call to unsafe function `runner::builtins::command::Cfg::pre_exec` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | self.cfg.pre_exec(f); [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/runner/builtins/command.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / pub unsafe fn pre_exec(&mut self, f: F) [INFO] [stdout] 44 | | where [INFO] [stdout] 45 | | F: 'static + FnMut() -> std::io::Result<()> + Send + Sync, [INFO] [stdout] | |__________________________________________________________________^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(nbsh_tokio_console)");` to the top of the `build.rs` [INFO] [stdout] warning[E0133]: call to unsafe function `std::os::fd::FromRawFd::from_raw_fd` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:300:18 [INFO] [stdout] | [INFO] [stdout] 300 | Self::In(std::fs::File::from_raw_fd(fd)) [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/runner/builtins/command.rs:299:5 [INFO] [stdout] | [INFO] [stdout] 299 | pub unsafe fn input(fd: std::os::unix::io::RawFd) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stdout] warning[E0133]: call to unsafe function `std::os::fd::FromRawFd::from_raw_fd` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:305:19 [INFO] [stdout] | [INFO] [stdout] 305 | Self::Out(std::fs::File::from_raw_fd(fd)) [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/runner/builtins/command.rs:304:5 [INFO] [stdout] | [INFO] [stdout] 304 | pub unsafe fn output(fd: std::os::unix::io::RawFd) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/mod.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | std::env::set_var(k, 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] = 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] 108 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 109 ~ unsafe { std::env::set_var(k, v) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: call to deprecated safe function `std::env::remove_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/mod.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | std::env::remove_var(k); [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] 126 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 127 ~ unsafe { std::env::remove_var(k) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: aborting due to 34 previous errors; 1 warning emitted [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/mod.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | std::env::set_var(var, val); [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] 185 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 186 ~ unsafe { std::env::set_var(var, val) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/mod.rs:179:29 [INFO] [stdout] | [INFO] [stdout] 179 | ... std::env::set_var(var, &val); [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] 179 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 180 ~ unsafe { std::env::set_var(var, &val) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stdout] warning: method `allow_with` is never used [INFO] [stdout] --> src/prelude.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub trait Result { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 24 | fn allow_with(self, allow_e: Self::E, default_t: Self::T) -> Self; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Original diagnostics will follow. [INFO] [stdout] warning: field `old_history` is never read [INFO] [stdout] --> src/shell/mod.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 78 | pub struct Shell { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 81 | old_history: old_history::History, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: field `entries` is never read [INFO] [stdout] --> src/shell/old_history.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct History { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 12 | entries: std::sync::Arc>>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `entry_count` is never used [INFO] [stdout] --> src/shell/old_history.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl History { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn entry_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `render` and `cmd` are never used [INFO] [stdout] --> src/shell/old_history.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl Entry { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] 60 | pub fn render( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn cmd(&self) -> &str { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/info.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | if let Ok(offset_str) = offset_str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/info.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | } 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] 56 ~ match offset_str { Ok(offset_str) => { [INFO] [stdout] 57 | let offset_str = String::from_utf8(offset_str.stdout).unwrap(); [INFO] [stdout] ... [INFO] [stdout] 63 | .unwrap_or(time::UtcOffset::UTC) [INFO] [stdout] 64 ~ } _ => { [INFO] [stdout] 65 | time::UtcOffset::UTC [INFO] [stdout] 66 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/mod.rs:415:11 [INFO] [stdout] | [INFO] [stdout] 415 | while let Some(res) = stream.next().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/mod.rs:496:5 [INFO] [stdout] | [INFO] [stdout] 496 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | if let Some(pre_exec) = self.pre_exec.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 87 ~ match self.pre_exec.take() { Some(pre_exec) => { [INFO] [stdout] 88 | // Safety: pre_exec can only have been set by calling the pre_exec [INFO] [stdout] ... [INFO] [stdout] 91 | unsafe { cmd.pre_exec(pre_exec) }; [INFO] [stdout] 92 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:193:16 [INFO] [stdout] | [INFO] [stdout] 193 | if let File::In(fh) = &*file { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:209:13 [INFO] [stdout] | [INFO] [stdout] 209 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 193 ~ match &*file { File::In(fh) => { [INFO] [stdout] 194 | // we have to read only a single character at a time here [INFO] [stdout] ... [INFO] [stdout] 208 | } [INFO] [stdout] 209 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:220:12 [INFO] [stdout] | [INFO] [stdout] 220 | if let Some(file) = self.stdout() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | } 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] 220 ~ match self.stdout() { Some(file) => { [INFO] [stdout] 221 | if let File::Out(fh) = &*file { [INFO] [stdout] ... [INFO] [stdout] 225 | } [INFO] [stdout] 226 ~ } _ => { [INFO] [stdout] 227 | Ok(()) [INFO] [stdout] 228 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:221:16 [INFO] [stdout] | [INFO] [stdout] 221 | if let File::Out(fh) = &*file { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:223:13 [INFO] [stdout] | [INFO] [stdout] 223 | } 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] 221 ~ match &*file { File::Out(fh) => { [INFO] [stdout] 222 | Ok((&*fh).write_all(buf)?) [INFO] [stdout] 223 ~ } _ => { [INFO] [stdout] 224 | Ok(()) [INFO] [stdout] 225 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 232 | if let Some(file) = self.stderr() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:238:9 [INFO] [stdout] | [INFO] [stdout] 238 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 232 ~ match self.stderr() { Some(file) => { [INFO] [stdout] 233 | if let File::Out(fh) = &*file { [INFO] [stdout] ... [INFO] [stdout] 237 | } [INFO] [stdout] 238 ~ } _ => { [INFO] [stdout] 239 | Ok(()) [INFO] [stdout] 240 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:233:16 [INFO] [stdout] | [INFO] [stdout] 233 | if let File::Out(fh) = &*file { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:235:13 [INFO] [stdout] | [INFO] [stdout] 235 | } 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] 233 ~ match &*file { File::Out(fh) => { [INFO] [stdout] 234 | Ok((&*fh).write_all(buf)?) [INFO] [stdout] 235 ~ } _ => { [INFO] [stdout] 236 | Ok(()) [INFO] [stdout] 237 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:245:16 [INFO] [stdout] | [INFO] [stdout] 245 | if let Ok(stdin) = std::sync::Arc::try_unwrap(stdin) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:254:13 [INFO] [stdout] | [INFO] [stdout] 254 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 245 ~ match std::sync::Arc::try_unwrap(stdin) { Ok(stdin) => { [INFO] [stdout] 246 | let stdin = stdin.into_raw_fd(); [INFO] [stdout] ... [INFO] [stdout] 253 | } [INFO] [stdout] 254 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:257:16 [INFO] [stdout] | [INFO] [stdout] 257 | if let Ok(stdout) = std::sync::Arc::try_unwrap(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 257 ~ match std::sync::Arc::try_unwrap(stdout) { Ok(stdout) => { [INFO] [stdout] 258 | let stdout = stdout.into_raw_fd(); [INFO] [stdout] ... [INFO] [stdout] 265 | } [INFO] [stdout] 266 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | if let Some(stderr) = self.fds.remove(&2) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 268 ~ match self.fds.remove(&2) { Some(stderr) => { [INFO] [stdout] 269 | if let Ok(stderr) = std::sync::Arc::try_unwrap(stderr) { [INFO] [stdout] ... [INFO] [stdout] 278 | } [INFO] [stdout] 279 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:269:16 [INFO] [stdout] | [INFO] [stdout] 269 | if let Ok(stderr) = std::sync::Arc::try_unwrap(stderr) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:278:13 [INFO] [stdout] | [INFO] [stdout] 278 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 269 ~ match std::sync::Arc::try_unwrap(stderr) { Ok(stderr) => { [INFO] [stdout] 270 | let stderr = stderr.into_raw_fd(); [INFO] [stdout] ... [INFO] [stdout] 277 | } [INFO] [stdout] 278 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:309:12 [INFO] [stdout] | [INFO] [stdout] 309 | if let Ok(file) = std::sync::Arc::try_unwrap(file) { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/runner/builtins/command.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 309 ~ match std::sync::Arc::try_unwrap(file) { Ok(file) => { [INFO] [stdout] 310 | if file.as_raw_fd() <= 2 { [INFO] [stdout] 311 | let _ = file.into_raw_fd(); [INFO] [stdout] 312 | } [INFO] [stdout] 313 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/mod.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 28 | while let Some(event) = event_r.recv().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/mod.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/event.rs:47:23 [INFO] [stdout] | [INFO] [stdout] 47 | while let Some(event) = input.recv().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/event.rs:49:17 [INFO] [stdout] | [INFO] [stdout] 49 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/history/entry.rs:369:15 [INFO] [stdout] | [INFO] [stdout] 369 | while let Some(res) = stream.next().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/history/entry.rs:389:9 [INFO] [stdout] | [INFO] [stdout] 389 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/history/pty.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | while let Some(res) = stream.next().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/history/pty.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:27:15 [INFO] [stdout] | [INFO] [stdout] 27 | while let Some(mut dir) = git_r.recv().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:28:19 [INFO] [stdout] | [INFO] [stdout] 28 | while let Ok(newer_dir) = git_r.try_recv() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:42:27 [INFO] [stdout] | [INFO] [stdout] 42 | while let Ok(event) = sync_watch_r.recv() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/inputs/git.rs:46:21 [INFO] [stdout] | [INFO] [stdout] 46 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/inputs/stdin.rs:11:19 [INFO] [stdout] | [INFO] [stdout] 11 | while let Some(key) = input.read_key().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^----------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/inputs/stdin.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:37:15 [INFO] [stdout] | [INFO] [stdout] 37 | while let Some(line) = stream.next().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:38:27 [INFO] [stdout] | [INFO] [stdout] 38 | let line = if let Ok(line) = line { [INFO] [stdout] | ^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | } 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] 38 ~ let line = match line { Ok(line) => { [INFO] [stdout] 39 | line [INFO] [stdout] 40 ~ } _ => { [INFO] [stdout] 41 | continue; [INFO] [stdout] 42 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:43:28 [INFO] [stdout] | [INFO] [stdout] 43 | let entry = if let Ok(entry) = line.parse() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/old_history.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 43 ~ let entry = match line.parse() { Ok(entry) => { [INFO] [stdout] 44 | entry [INFO] [stdout] 45 ~ } _ => { [INFO] [stdout] 46 | continue; [INFO] [stdout] 47 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 72 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.04s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking nbsh v0.1.0 (/tmp/fixit) [INFO] [stdout] warning: unused import: `File` [INFO] [stdout] --> src/runner/builtins/mod.rs:4:35 [INFO] [stdout] | [INFO] [stdout] 4 | pub use command::{Child, Command, File, Io}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `nbsh_tokio_console` [INFO] [stdout] --> src/main.rs:57:11 [INFO] [stdout] | [INFO] [stdout] 57 | #[cfg(nbsh_tokio_console)] [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(nbsh_tokio_console)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(nbsh_tokio_console)");` 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] warning: unused import: `File` [INFO] [stdout] --> src/runner/builtins/mod.rs:4:35 [INFO] [stdout] | [INFO] [stdout] 4 | pub use command::{Child, Command, File, Io}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `nbsh_tokio_console` [INFO] [stdout] --> src/main.rs:57:11 [INFO] [stdout] | [INFO] [stdout] 57 | #[cfg(nbsh_tokio_console)] [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(nbsh_tokio_console)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(nbsh_tokio_console)");` 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] warning[E0133]: call to unsafe function `runner::builtins::command::Cfg::pre_exec` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | self.cfg.pre_exec(f); [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/runner/builtins/command.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / pub unsafe fn pre_exec(&mut self, f: F) [INFO] [stdout] 44 | | where [INFO] [stdout] 45 | | F: 'static + FnMut() -> std::io::Result<()> + Send + Sync, [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 `std::os::fd::FromRawFd::from_raw_fd` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:300:18 [INFO] [stdout] | [INFO] [stdout] 300 | Self::In(std::fs::File::from_raw_fd(fd)) [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/runner/builtins/command.rs:299:5 [INFO] [stdout] | [INFO] [stdout] 299 | pub unsafe fn input(fd: std::os::unix::io::RawFd) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::os::fd::FromRawFd::from_raw_fd` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:305:19 [INFO] [stdout] | [INFO] [stdout] 305 | Self::Out(std::fs::File::from_raw_fd(fd)) [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/runner/builtins/command.rs:304:5 [INFO] [stdout] | [INFO] [stdout] 304 | pub unsafe fn output(fd: std::os::unix::io::RawFd) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/mod.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | std::env::set_var(k, 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/runner/builtins/mod.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | std::env::remove_var(k); [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/runner/builtins/mod.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | std::env::set_var(var, val); [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/runner/mod.rs:179:29 [INFO] [stdout] | [INFO] [stdout] 179 | ... std::env::set_var(var, &val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 4 previous errors; 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `nbsh` (bin "nbsh") due to 5 previous errors; 5 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning[E0133]: call to unsafe function `runner::builtins::command::Cfg::pre_exec` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | self.cfg.pre_exec(f); [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/runner/builtins/command.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | / pub unsafe fn pre_exec(&mut self, f: F) [INFO] [stdout] 44 | | where [INFO] [stdout] 45 | | F: 'static + FnMut() -> std::io::Result<()> + Send + Sync, [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 `std::os::fd::FromRawFd::from_raw_fd` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:300:18 [INFO] [stdout] | [INFO] [stdout] 300 | Self::In(std::fs::File::from_raw_fd(fd)) [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/runner/builtins/command.rs:299:5 [INFO] [stdout] | [INFO] [stdout] 299 | pub unsafe fn input(fd: std::os::unix::io::RawFd) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::os::fd::FromRawFd::from_raw_fd` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/command.rs:305:19 [INFO] [stdout] | [INFO] [stdout] 305 | Self::Out(std::fs::File::from_raw_fd(fd)) [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/runner/builtins/command.rs:304:5 [INFO] [stdout] | [INFO] [stdout] 304 | pub unsafe fn output(fd: std::os::unix::io::RawFd) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/runner/builtins/mod.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | std::env::set_var(k, 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/runner/builtins/mod.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | std::env::remove_var(k); [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/runner/builtins/mod.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | std::env::set_var(var, val); [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/runner/mod.rs:179:29 [INFO] [stdout] | [INFO] [stdout] 179 | ... std::env::set_var(var, &val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 4 previous errors; 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `nbsh` (bin "nbsh" test) due to 5 previous errors; 5 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" "03391372c1263021c6b077058a0d2a7dce4ecb12824dac5f81191f399657090b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "03391372c1263021c6b077058a0d2a7dce4ecb12824dac5f81191f399657090b", kill_on_drop: false }` [INFO] [stdout] 03391372c1263021c6b077058a0d2a7dce4ecb12824dac5f81191f399657090b