[INFO] fetching crate longshot 0.1.8... [INFO] checking longshot-0.1.8 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate longshot 0.1.8 into /workspace/builds/worker-5-tc2/source [INFO] validating manifest of crates.io crate longshot 0.1.8 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate longshot 0.1.8 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate longshot 0.1.8 [INFO] tweaked toml for crates.io crate longshot 0.1.8 written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate crates.io crate longshot 0.1.8 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 55e7b6cc419d1bfd4c4bef3b2290645f58043336e88736ffb85fc0b1377b8b5c [INFO] running `Command { std: "docker" "start" "-a" "55e7b6cc419d1bfd4c4bef3b2290645f58043336e88736ffb85fc0b1377b8b5c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "55e7b6cc419d1bfd4c4bef3b2290645f58043336e88736ffb85fc0b1377b8b5c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "55e7b6cc419d1bfd4c4bef3b2290645f58043336e88736ffb85fc0b1377b8b5c", kill_on_drop: false }` [INFO] [stdout] 55e7b6cc419d1bfd4c4bef3b2290645f58043336e88736ffb85fc0b1377b8b5c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b8e7d31daa414e8c3376a5373b5e9bd2be9ad78a64d089a82791d9f666812d6f [INFO] running `Command { std: "docker" "start" "-a" "b8e7d31daa414e8c3376a5373b5e9bd2be9ad78a64d089a82791d9f666812d6f", 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 proc-macro2 v1.0.76 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.152 [INFO] [stderr] Checking memchr v2.7.1 [INFO] [stderr] Checking pin-project-lite v0.2.13 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Checking futures-io v0.3.30 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Compiling pkg-config v0.3.28 [INFO] [stderr] Checking bytes v1.5.0 [INFO] [stderr] Compiling serde v1.0.195 [INFO] [stderr] Compiling parking_lot_core v0.9.9 [INFO] [stderr] Checking bitflags v2.4.1 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Compiling hashbrown v0.14.3 [INFO] [stderr] Compiling thiserror v1.0.56 [INFO] [stderr] Checking smallvec v1.11.2 [INFO] [stderr] Compiling semver v1.0.21 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Compiling rustix v0.38.30 [INFO] [stderr] Compiling winnow v0.5.34 [INFO] [stderr] Compiling toml_datetime v0.6.5 [INFO] [stderr] Checking utf8parse v0.2.1 [INFO] [stderr] Compiling async-trait v0.1.77 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Checking regex-syntax v0.8.2 [INFO] [stderr] Checking linux-raw-sys v0.4.12 [INFO] [stderr] Checking anstyle-parse v0.2.3 [INFO] [stderr] Checking xml-rs v0.8.19 [INFO] [stderr] Checking anstyle v1.0.4 [INFO] [stderr] Checking colorchoice v1.0.0 [INFO] [stderr] Checking anstyle-query v1.0.2 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Checking uuid v1.6.1 [INFO] [stderr] Compiling serde_json v1.0.111 [INFO] [stderr] Compiling libdbus-sys v0.2.5 [INFO] [stderr] Checking anstream v0.6.7 [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Compiling indexmap v2.1.0 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Checking clap_lex v0.6.0 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Compiling syn v2.0.48 [INFO] [stderr] Checking mio v0.8.10 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking socket2 v0.5.5 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Checking clap_builder v4.4.16 [INFO] [stderr] Compiling rstest_macros v0.18.2 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking ryu v1.0.16 [INFO] [stderr] Checking crc-catalog v2.4.0 [INFO] [stderr] Checking itoa v1.0.10 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking yansi v0.5.1 [INFO] [stderr] Checking crc v3.0.1 [INFO] [stderr] Checking colored v2.1.0 [INFO] [stderr] Checking itertools v0.12.0 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking is-terminal v0.4.10 [INFO] [stderr] Compiling relative-path v1.9.2 [INFO] [stderr] Checking tuples v1.15.0 [INFO] [stderr] Checking embed_plist v1.2.2 [INFO] [stderr] Checking futures-timer v3.0.2 [INFO] [stderr] Checking ariadne v0.1.5 [INFO] [stderr] Checking regex-automata v0.4.3 [INFO] [stderr] Checking const-decoder v0.3.0 [INFO] [stderr] Compiling toml_edit v0.21.0 [INFO] [stderr] Compiling proc-macro-crate v3.0.0 [INFO] [stderr] Checking regex v1.10.2 [INFO] [stderr] Checking env_logger v0.10.1 [INFO] [stderr] Checking pretty_env_logger v0.5.0 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling serde_derive v1.0.195 [INFO] [stderr] Compiling thiserror-impl v1.0.56 [INFO] [stderr] Compiling pin-project-internal v1.1.3 [INFO] [stderr] Compiling num_enum_derive v0.7.2 [INFO] [stderr] Compiling clap_derive v4.4.7 [INFO] [stderr] Compiling async-stream-impl v0.3.5 [INFO] [stderr] Checking tokio v1.35.1 [INFO] [stderr] Checking async-stream v0.3.5 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking pin-project v1.1.3 [INFO] [stderr] Checking num_enum v0.7.2 [INFO] [stderr] Checking clap v4.4.16 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking dbus v0.9.7 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking rstest v0.18.2 [INFO] [stderr] Checking tokio-util v0.7.10 [INFO] [stderr] Checking stream-cancel v0.8.2 [INFO] [stderr] Checking tokio-stream v0.1.14 [INFO] [stderr] Checking serde-xml-rs v0.6.0 [INFO] [stderr] Checking keepcalm v0.3.5 [INFO] [stderr] Checking dbus-tokio v0.7.6 [INFO] [stderr] Checking bluez-generated v0.3.0 [INFO] [stderr] Checking bluez-async v0.7.2 [INFO] [stderr] Checking btleplug v0.11.5 [INFO] [stderr] Checking longshot v0.1.8 (/tmp/fixit) [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `longshot` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/ecam/stdin_stream.rs [INFO] [stderr] * src/operations/ingredients.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/ecam/stdin_stream.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | ($name:literal, $tx:expr_2021, $async:block) => {{ [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/operations/ingredients.rs:138:28 [INFO] [stderr] | [INFO] [stderr] 138 | ($msg:literal, $ingredient:expr_2021, $r1:expr_2021, $r2: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/operations/ingredients.rs:138:51 [INFO] [stderr] | [INFO] [stderr] 138 | ($msg:literal, $ingredient:expr_2021, $r1:expr_2021, $r2: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/operations/ingredients.rs:138:66 [INFO] [stderr] | [INFO] [stderr] 138 | ($msg:literal, $ingredient:expr_2021, $r1:expr_2021, $r2: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: use of deprecated method `tuples::TupleTransposeResult::transpose`: use transpose1 [INFO] [stderr] --> src/ecam/stdin_stream.rs:132:61 [INFO] [stderr] | [INFO] [stderr] 132 | let x: Result<_, EcamError> = join!(a, b, c).map(|x| x).transpose(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors; 1 warning emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ecam/stdin_stream.rs:70:25 [INFO] [stdout] | [INFO] [stdout] 70 | ($name:literal, $tx:expr, $async:block) => {{ [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] 70 | ($name:literal, $tx:expr_2021, $async:block) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/operations/ingredients.rs:138:40 [INFO] [stdout] | [INFO] [stdout] 138 | ($msg:literal, $ingredient:expr, $r1:expr, $r2: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] 138 | ($msg:literal, $ingredient:expr_2021, $r1:expr, $r2:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/operations/ingredients.rs:138:50 [INFO] [stdout] | [INFO] [stdout] 138 | ($msg:literal, $ingredient:expr, $r1:expr, $r2: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] 138 | ($msg:literal, $ingredient:expr, $r1:expr_2021, $r2:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/operations/ingredients.rs:138:60 [INFO] [stdout] | [INFO] [stdout] 138 | ($msg:literal, $ingredient:expr, $r1:expr, $r2: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] 138 | ($msg:literal, $ingredient:expr, $r1:expr, $r2:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `tuples::TupleTransposeResult::transpose`: use transpose1 [INFO] [stdout] --> src/ecam/stdin_stream.rs:132:61 [INFO] [stdout] | [INFO] [stdout] 132 | let x: Result<_, EcamError> = join!(a, b, c).map(|x| x).transpose(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_bt.rs:59:50 [INFO] [stdout] | [INFO] [stdout] 59 | let ecam_peripheral = if let Some(ecam_peripheral) = [INFO] [stdout] | __________________________________________________^ [INFO] [stdout] 60 | | EcamPeripheral::validate(peripheral).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/ecam/ecam_bt.rs:63:25 [INFO] [stdout] | [INFO] [stdout] 63 | } 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] 59 ~ let ecam_peripheral = match EcamPeripheral::validate(peripheral).await? [INFO] [stdout] 60 ~ { Some(ecam_peripheral) => { [INFO] [stdout] 61 | ecam_peripheral [INFO] [stdout] 62 ~ } _ => { [INFO] [stdout] 63 | trace_packet!("Found peripheral, not a match: {:?}", raw_id); [INFO] [stdout] 64 | invalid_peripherals.insert(raw_id); [INFO] [stdout] 65 | continue; [INFO] [stdout] 66 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_bt.rs:105:16 [INFO] [stdout] | [INFO] [stdout] 105 | if let Ok(Some(p)) = Self::get_peripheral_matching(&adapter).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/ecam/ecam_bt.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 105 ~ match Self::get_peripheral_matching(&adapter).await { Ok(Some(p)) => { [INFO] [stdout] 106 | return Ok((p.local_name.clone(), EcamId::Name(p.id()))); [INFO] [stdout] 107 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_bt.rs:127:20 [INFO] [stdout] | [INFO] [stdout] 127 | if let Some(peripheral) = EcamPeripheral::validate(peripheral).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/ecam/ecam_bt.rs:129:17 [INFO] [stdout] | [INFO] [stdout] 129 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 127 ~ match EcamPeripheral::validate(peripheral).await? { Some(peripheral) => { [INFO] [stdout] 128 | return Ok(Some(peripheral)); [INFO] [stdout] 129 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_subprocess.rs:74:15 [INFO] [stdout] | [INFO] [stdout] 74 | while let Some(Ok(s)) = stdout.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/ecam/ecam_subprocess.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_subprocess.rs:89:15 [INFO] [stdout] | [INFO] [stdout] 89 | while let Some(Ok(s)) = stderr.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/ecam/ecam_subprocess.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 149 | if let Ok(alive) = self.0.lock() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | } 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] 149 ~ match self.0.lock() { Ok(alive) => { [INFO] [stdout] 150 | *alive [INFO] [stdout] 151 ~ } _ => { [INFO] [stdout] 152 | false [INFO] [stdout] 153 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 157 | if let Ok(mut alive) = self.0.lock() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 157 ~ match self.0.lock() { Ok(mut alive) => { [INFO] [stdout] 158 | if *alive { [INFO] [stdout] ... [INFO] [stdout] 161 | *alive = false; [INFO] [stdout] 162 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:243:15 [INFO] [stdout] | [INFO] [stdout] 243 | while let Ok(b) = driver.alive().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/ecam/ecam_wrapper.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:379:22 [INFO] [stdout] | [INFO] [stdout] 379 | let ret = if let Some(test) = rx.borrow().as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-----------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:381:9 [INFO] [stdout] | [INFO] [stdout] 381 | } 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] 379 ~ let ret = match rx.borrow().as_ref() { Some(test) => { [INFO] [stdout] 380 | Ok(EcamStatus::extract(test)) [INFO] [stdout] 381 ~ } _ => { [INFO] [stdout] 382 | Err(EcamError::Unknown) [INFO] [stdout] 383 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/packet_receiver.rs:25:19 [INFO] [stdout] | [INFO] [stdout] 25 | while let Some(m) = 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/ecam/packet_receiver.rs:27:13 [INFO] [stdout] | [INFO] [stdout] 27 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/packet_stream.rs:94:15 [INFO] [stdout] | [INFO] [stdout] 94 | while let Some(m) = n.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/ecam/packet_stream.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:73:19 [INFO] [stdout] | [INFO] [stdout] 73 | while let Ok(_) = tx.send(true) { [INFO] [stdout] | ^^^^^^^^^^^^--^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 110 | let a = spawn_loop!("alive", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 111 | | if !(ecam2.alive().await?) { [INFO] [stdout] 112 | | break; [INFO] [stdout] 113 | | } [INFO] [stdout] 114 | | tokio::time::sleep(Duration::from_millis(10)).await; [INFO] [stdout] 115 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | } [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 110 | let a = spawn_loop!("alive", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 111 | | if !(ecam2.alive().await?) { [INFO] [stdout] 112 | | break; [INFO] [stdout] 113 | | } [INFO] [stdout] 114 | | tokio::time::sleep(Duration::from_millis(10)).await; [INFO] [stdout] 115 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `spawn_loop` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:73:19 [INFO] [stdout] | [INFO] [stdout] 73 | while let Ok(_) = tx.send(true) { [INFO] [stdout] | ^^^^^^^^^^^^--^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 117 | let b = spawn_loop!("device read", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 118 | | if let Some(p) = ecam2.read().await? { [INFO] [stdout] 119 | | println!("{}", to_line(p)); [INFO] [stdout] 120 | | } else { [INFO] [stdout] 121 | | break; [INFO] [stdout] 122 | | } [INFO] [stdout] 123 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | } [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 117 | let b = spawn_loop!("device read", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 118 | | if let Some(p) = ecam2.read().await? { [INFO] [stdout] 119 | | println!("{}", to_line(p)); [INFO] [stdout] 120 | | } else { [INFO] [stdout] 121 | | break; [INFO] [stdout] 122 | | } [INFO] [stdout] 123 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `spawn_loop` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:118:12 [INFO] [stdout] | [INFO] [stdout] 118 | if let Some(p) = ecam2.read().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/ecam/stdin_stream.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | } 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] 118 ~ match ecam2.read().await? { Some(p) => { [INFO] [stdout] 119 | println!("{}", to_line(p)); [INFO] [stdout] 120 ~ } _ => { [INFO] [stdout] 121 | break; [INFO] [stdout] 122 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:73:19 [INFO] [stdout] | [INFO] [stdout] 73 | while let Ok(_) = tx.send(true) { [INFO] [stdout] | ^^^^^^^^^^^^--^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 124 | let c = spawn_loop!("stdio read", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 125 | | if let Some(value) = bt_out.next().await { [INFO] [stdout] 126 | | ecam.write(value).await?; [INFO] [stdout] 127 | | } else { [INFO] [stdout] 128 | | break; [INFO] [stdout] 129 | | } [INFO] [stdout] 130 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | } [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 124 | let c = spawn_loop!("stdio read", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 125 | | if let Some(value) = bt_out.next().await { [INFO] [stdout] 126 | | ecam.write(value).await?; [INFO] [stdout] 127 | | } else { [INFO] [stdout] 128 | | break; [INFO] [stdout] 129 | | } [INFO] [stdout] 130 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `spawn_loop` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 125 | if let Some(value) = bt_out.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/ecam/stdin_stream.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | } 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] 125 ~ match bt_out.next().await { Some(value) => { [INFO] [stdout] 126 | ecam.write(value).await?; [INFO] [stdout] 127 ~ } _ => { [INFO] [stdout] 128 | break; [INFO] [stdout] 129 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/operations/parameter.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | while let Some(packet) = tap.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/operations/parameter.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/protocol/machine_enum.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | if let Ok(value) = T::try_from(value) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/protocol/machine_enum.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 41 ~ match T::try_from(value) { Ok(value) => { [INFO] [stdout] 42 | MachineEnum::Value(value) [INFO] [stdout] 43 ~ } _ => { [INFO] [stdout] 44 | MachineEnum::Unknown(value) [INFO] [stdout] 45 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 23 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `longshot` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/ecam/stdin_stream.rs [INFO] [stderr] * src/operations/ingredients.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/ecam/stdin_stream.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | ($name:literal, $tx:expr_2021, $async:block) => {{ [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/operations/ingredients.rs:138:28 [INFO] [stderr] | [INFO] [stderr] 138 | ($msg:literal, $ingredient:expr_2021, $r1:expr_2021, $r2: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/operations/ingredients.rs:138:51 [INFO] [stderr] | [INFO] [stderr] 138 | ($msg:literal, $ingredient:expr_2021, $r1:expr_2021, $r2: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/operations/ingredients.rs:138:66 [INFO] [stderr] | [INFO] [stderr] 138 | ($msg:literal, $ingredient:expr_2021, $r1:expr_2021, $r2: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: use of deprecated method `tuples::TupleTransposeResult::transpose`: use transpose1 [INFO] [stderr] --> src/ecam/stdin_stream.rs:132:61 [INFO] [stderr] | [INFO] [stderr] 132 | let x: Result<_, EcamError> = join!(a, b, c).map(|x| x).transpose(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors; 1 warning emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ecam/stdin_stream.rs:70:25 [INFO] [stdout] | [INFO] [stdout] 70 | ($name:literal, $tx:expr, $async:block) => {{ [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] 70 | ($name:literal, $tx:expr_2021, $async:block) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/operations/ingredients.rs:138:40 [INFO] [stdout] | [INFO] [stdout] 138 | ($msg:literal, $ingredient:expr, $r1:expr, $r2: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] 138 | ($msg:literal, $ingredient:expr_2021, $r1:expr, $r2:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/operations/ingredients.rs:138:50 [INFO] [stdout] | [INFO] [stdout] 138 | ($msg:literal, $ingredient:expr, $r1:expr, $r2: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] 138 | ($msg:literal, $ingredient:expr, $r1:expr_2021, $r2:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/operations/ingredients.rs:138:60 [INFO] [stdout] | [INFO] [stdout] 138 | ($msg:literal, $ingredient:expr, $r1:expr, $r2: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] 138 | ($msg:literal, $ingredient:expr, $r1:expr, $r2:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `tuples::TupleTransposeResult::transpose`: use transpose1 [INFO] [stdout] --> src/ecam/stdin_stream.rs:132:61 [INFO] [stdout] | [INFO] [stdout] 132 | let x: Result<_, EcamError> = join!(a, b, c).map(|x| x).transpose(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_bt.rs:59:50 [INFO] [stdout] | [INFO] [stdout] 59 | let ecam_peripheral = if let Some(ecam_peripheral) = [INFO] [stdout] | __________________________________________________^ [INFO] [stdout] 60 | | EcamPeripheral::validate(peripheral).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/ecam/ecam_bt.rs:63:25 [INFO] [stdout] | [INFO] [stdout] 63 | } 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] 59 ~ let ecam_peripheral = match EcamPeripheral::validate(peripheral).await? [INFO] [stdout] 60 ~ { Some(ecam_peripheral) => { [INFO] [stdout] 61 | ecam_peripheral [INFO] [stdout] 62 ~ } _ => { [INFO] [stdout] 63 | trace_packet!("Found peripheral, not a match: {:?}", raw_id); [INFO] [stdout] 64 | invalid_peripherals.insert(raw_id); [INFO] [stdout] 65 | continue; [INFO] [stdout] 66 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_bt.rs:105:16 [INFO] [stdout] | [INFO] [stdout] 105 | if let Ok(Some(p)) = Self::get_peripheral_matching(&adapter).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/ecam/ecam_bt.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 105 ~ match Self::get_peripheral_matching(&adapter).await { Ok(Some(p)) => { [INFO] [stdout] 106 | return Ok((p.local_name.clone(), EcamId::Name(p.id()))); [INFO] [stdout] 107 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_bt.rs:127:20 [INFO] [stdout] | [INFO] [stdout] 127 | if let Some(peripheral) = EcamPeripheral::validate(peripheral).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/ecam/ecam_bt.rs:129:17 [INFO] [stdout] | [INFO] [stdout] 129 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 127 ~ match EcamPeripheral::validate(peripheral).await? { Some(peripheral) => { [INFO] [stdout] 128 | return Ok(Some(peripheral)); [INFO] [stdout] 129 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_subprocess.rs:74:15 [INFO] [stdout] | [INFO] [stdout] 74 | while let Some(Ok(s)) = stdout.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/ecam/ecam_subprocess.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_subprocess.rs:89:15 [INFO] [stdout] | [INFO] [stdout] 89 | while let Some(Ok(s)) = stderr.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/ecam/ecam_subprocess.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 149 | if let Ok(alive) = self.0.lock() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | } 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] 149 ~ match self.0.lock() { Ok(alive) => { [INFO] [stdout] 150 | *alive [INFO] [stdout] 151 ~ } _ => { [INFO] [stdout] 152 | false [INFO] [stdout] 153 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 157 | if let Ok(mut alive) = self.0.lock() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 157 ~ match self.0.lock() { Ok(mut alive) => { [INFO] [stdout] 158 | if *alive { [INFO] [stdout] ... [INFO] [stdout] 161 | *alive = false; [INFO] [stdout] 162 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:243:15 [INFO] [stdout] | [INFO] [stdout] 243 | while let Ok(b) = driver.alive().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/ecam/ecam_wrapper.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:379:22 [INFO] [stdout] | [INFO] [stdout] 379 | let ret = if let Some(test) = rx.borrow().as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-----------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/ecam_wrapper.rs:381:9 [INFO] [stdout] | [INFO] [stdout] 381 | } 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] 379 ~ let ret = match rx.borrow().as_ref() { Some(test) => { [INFO] [stdout] 380 | Ok(EcamStatus::extract(test)) [INFO] [stdout] 381 ~ } _ => { [INFO] [stdout] 382 | Err(EcamError::Unknown) [INFO] [stdout] 383 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/packet_receiver.rs:25:19 [INFO] [stdout] | [INFO] [stdout] 25 | while let Some(m) = 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/ecam/packet_receiver.rs:27:13 [INFO] [stdout] | [INFO] [stdout] 27 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/packet_stream.rs:94:15 [INFO] [stdout] | [INFO] [stdout] 94 | while let Some(m) = n.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/ecam/packet_stream.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:73:19 [INFO] [stdout] | [INFO] [stdout] 73 | while let Ok(_) = tx.send(true) { [INFO] [stdout] | ^^^^^^^^^^^^--^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 110 | let a = spawn_loop!("alive", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 111 | | if !(ecam2.alive().await?) { [INFO] [stdout] 112 | | break; [INFO] [stdout] 113 | | } [INFO] [stdout] 114 | | tokio::time::sleep(Duration::from_millis(10)).await; [INFO] [stdout] 115 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | } [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 110 | let a = spawn_loop!("alive", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 111 | | if !(ecam2.alive().await?) { [INFO] [stdout] 112 | | break; [INFO] [stdout] 113 | | } [INFO] [stdout] 114 | | tokio::time::sleep(Duration::from_millis(10)).await; [INFO] [stdout] 115 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `spawn_loop` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:73:19 [INFO] [stdout] | [INFO] [stdout] 73 | while let Ok(_) = tx.send(true) { [INFO] [stdout] | ^^^^^^^^^^^^--^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 117 | let b = spawn_loop!("device read", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 118 | | if let Some(p) = ecam2.read().await? { [INFO] [stdout] 119 | | println!("{}", to_line(p)); [INFO] [stdout] 120 | | } else { [INFO] [stdout] 121 | | break; [INFO] [stdout] 122 | | } [INFO] [stdout] 123 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | } [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 117 | let b = spawn_loop!("device read", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 118 | | if let Some(p) = ecam2.read().await? { [INFO] [stdout] 119 | | println!("{}", to_line(p)); [INFO] [stdout] 120 | | } else { [INFO] [stdout] 121 | | break; [INFO] [stdout] 122 | | } [INFO] [stdout] 123 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `spawn_loop` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:118:12 [INFO] [stdout] | [INFO] [stdout] 118 | if let Some(p) = ecam2.read().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/ecam/stdin_stream.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | } 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] 118 ~ match ecam2.read().await? { Some(p) => { [INFO] [stdout] 119 | println!("{}", to_line(p)); [INFO] [stdout] 120 ~ } _ => { [INFO] [stdout] 121 | break; [INFO] [stdout] 122 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:73:19 [INFO] [stdout] | [INFO] [stdout] 73 | while let Ok(_) = tx.send(true) { [INFO] [stdout] | ^^^^^^^^^^^^--^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 124 | let c = spawn_loop!("stdio read", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 125 | | if let Some(value) = bt_out.next().await { [INFO] [stdout] 126 | | ecam.write(value).await?; [INFO] [stdout] 127 | | } else { [INFO] [stdout] 128 | | break; [INFO] [stdout] 129 | | } [INFO] [stdout] 130 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | } [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 124 | let c = spawn_loop!("stdio read", tx, { [INFO] [stdout] | _____________- [INFO] [stdout] 125 | | if let Some(value) = bt_out.next().await { [INFO] [stdout] 126 | | ecam.write(value).await?; [INFO] [stdout] 127 | | } else { [INFO] [stdout] 128 | | break; [INFO] [stdout] 129 | | } [INFO] [stdout] 130 | | }); [INFO] [stdout] | |______- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `spawn_loop` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ecam/stdin_stream.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 125 | if let Some(value) = bt_out.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/ecam/stdin_stream.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | } 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] 125 ~ match bt_out.next().await { Some(value) => { [INFO] [stdout] 126 | ecam.write(value).await?; [INFO] [stdout] 127 ~ } _ => { [INFO] [stdout] 128 | break; [INFO] [stdout] 129 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/operations/parameter.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | while let Some(packet) = tap.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/operations/parameter.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/protocol/machine_enum.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | if let Ok(value) = T::try_from(value) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/protocol/machine_enum.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 41 ~ match T::try_from(value) { Ok(value) => { [INFO] [stdout] 42 | MachineEnum::Value(value) [INFO] [stdout] 43 ~ } _ => { [INFO] [stdout] 44 | MachineEnum::Unknown(value) [INFO] [stdout] 45 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 23 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating examples/bt_scan.rs from 2021 edition to 2024 [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.63s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking longshot v0.1.8 (/tmp/fixit) [INFO] [stdout] error[E0597]: `peripheral` does not live long enough [INFO] [stdout] --> src/ecam/ecam_bt.rs:75:42 [INFO] [stdout] | [INFO] [stdout] 71 | let peripheral = [INFO] [stdout] | ---------- binding `peripheral` declared here [INFO] [stdout] ... [INFO] [stdout] 75 | Box::pin(peripheral.notifications().await?), [INFO] [stdout] | ^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] | argument requires that `peripheral` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 87 | } [INFO] [stdout] | - `peripheral` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `peripheral` because it is borrowed [INFO] [stdout] --> src/ecam/ecam_bt.rs:82:37 [INFO] [stdout] | [INFO] [stdout] 71 | ... let peripheral = [INFO] [stdout] | ---------- binding `peripheral` declared here [INFO] [stdout] ... [INFO] [stdout] 75 | ... Box::pin(peripheral.notifications().await?), [INFO] [stdout] | -------------------------- [INFO] [stdout] | | [INFO] [stdout] | borrow of `peripheral` occurs here [INFO] [stdout] | argument requires that `peripheral` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 82 | ... peripheral, [INFO] [stdout] | ^^^^^^^^^^ move out of `peripheral` occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `peripheral` does not live long enough [INFO] [stdout] --> src/ecam/ecam_bt.rs:75:42 [INFO] [stdout] | [INFO] [stdout] 71 | let peripheral = [INFO] [stdout] | ---------- binding `peripheral` declared here [INFO] [stdout] ... [INFO] [stdout] 75 | Box::pin(peripheral.notifications().await?), [INFO] [stdout] | ^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] | argument requires that `peripheral` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 87 | } [INFO] [stdout] | - `peripheral` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0505]: cannot move out of `peripheral` because it is borrowed [INFO] [stdout] --> src/ecam/ecam_bt.rs:82:37 [INFO] [stdout] | [INFO] [stdout] 71 | ... let peripheral = [INFO] [stdout] | ---------- binding `peripheral` declared here [INFO] [stdout] ... [INFO] [stdout] 75 | ... Box::pin(peripheral.notifications().await?), [INFO] [stdout] | -------------------------- [INFO] [stdout] | | [INFO] [stdout] | borrow of `peripheral` occurs here [INFO] [stdout] | argument requires that `peripheral` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 82 | ... peripheral, [INFO] [stdout] | ^^^^^^^^^^ move out of `peripheral` occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `tuples::TupleTransposeResult::transpose`: use transpose1 [INFO] [stdout] --> src/ecam/stdin_stream.rs:132:61 [INFO] [stdout] | [INFO] [stdout] 132 | let x: Result<_, EcamError> = join!(a, b, c).map(|x| x).transpose(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `tuples::TupleTransposeResult::transpose`: use transpose1 [INFO] [stdout] --> src/ecam/stdin_stream.rs:132:61 [INFO] [stdout] | [INFO] [stdout] 132 | let x: Result<_, EcamError> = join!(a, b, c).map(|x| x).transpose(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `ecam` does not live long enough [INFO] [stdout] --> src/operations/parameter.rs:8:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub async fn read_parameter(ecam: Ecam, param: u16, len: u8) -> Result<(), EcamError> { [INFO] [stdout] | ---- binding `ecam` declared here [INFO] [stdout] 8 | let mut tap = ecam.packet_tap().await?; [INFO] [stdout] | ^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] | argument requires that `ecam` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 34 | } [INFO] [stdout] | - `ecam` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `ecam` does not live long enough [INFO] [stdout] --> src/operations/parameter.rs:8:19 [INFO] [stdout] | [INFO] [stdout] 7 | pub async fn read_parameter(ecam: Ecam, param: u16, len: u8) -> Result<(), EcamError> { [INFO] [stdout] | ---- binding `ecam` declared here [INFO] [stdout] 8 | let mut tap = ecam.packet_tap().await?; [INFO] [stdout] | ^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] | argument requires that `ecam` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 34 | } [INFO] [stdout] | - `ecam` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 3 previous errors; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0505, E0597. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0505`. [INFO] [stdout] [INFO] [stderr] error: could not compile `longshot` (lib) due to 4 previous errors; 1 warning emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 3 previous errors; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0505, E0597. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0505`. [INFO] [stdout] [INFO] [stderr] error: could not compile `longshot` (lib test) due to 4 previous errors; 1 warning emitted [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "b8e7d31daa414e8c3376a5373b5e9bd2be9ad78a64d089a82791d9f666812d6f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b8e7d31daa414e8c3376a5373b5e9bd2be9ad78a64d089a82791d9f666812d6f", kill_on_drop: false }` [INFO] [stdout] b8e7d31daa414e8c3376a5373b5e9bd2be9ad78a64d089a82791d9f666812d6f