[INFO] cloning repository https://github.com/Garmelon/cove [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Garmelon/cove" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGarmelon%2Fcove", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGarmelon%2Fcove'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7aba041c9f90dda045c50ac36276d2843002f44a [INFO] checking Garmelon/cove/7aba041c9f90dda045c50ac36276d2843002f44a against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGarmelon%2Fcove" "/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/Garmelon/cove 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/Garmelon/cove [INFO] finished tweaking git repo https://github.com/Garmelon/cove [INFO] tweaked toml for git repo https://github.com/Garmelon/cove written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/Garmelon/cove already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6ad8c745487521522d0674fbe05986979d4b7c50b8112479ee209c26f675d9c3 [INFO] running `Command { std: "docker" "start" "-a" "6ad8c745487521522d0674fbe05986979d4b7c50b8112479ee209c26f675d9c3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6ad8c745487521522d0674fbe05986979d4b7c50b8112479ee209c26f675d9c3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6ad8c745487521522d0674fbe05986979d4b7c50b8112479ee209c26f675d9c3", kill_on_drop: false }` [INFO] [stdout] 6ad8c745487521522d0674fbe05986979d4b7c50b8112479ee209c26f675d9c3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9c3e600718605e7ab455ce75509f36f2ea330ca9ca2befe2ea9b9139a5938df4 [INFO] running `Command { std: "docker" "start" "-a" "9c3e600718605e7ab455ce75509f36f2ea330ca9ca2befe2ea9b9139a5938df4", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating cove/Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Migrating cove-config/Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Migrating cove-input/Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Migrating cove-macro/Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling proc-macro2 v1.0.83 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling serde v1.0.202 [INFO] [stderr] Checking log v0.4.21 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling cc v1.0.98 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Checking bitflags v2.5.0 [INFO] [stderr] Compiling typenum v1.17.0 [INFO] [stderr] Checking zerocopy v0.7.34 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Compiling thiserror v1.0.61 [INFO] [stderr] Compiling signal-hook v0.3.17 [INFO] [stderr] Checking itoa v1.0.11 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Checking rustls-pki-types v1.7.0 [INFO] [stderr] Checking bytes v1.6.0 [INFO] [stderr] Checking tinyvec_macros v0.1.1 [INFO] [stderr] Checking tinyvec v1.6.0 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking untrusted v0.9.0 [INFO] [stderr] Checking pin-project-lite v0.2.14 [INFO] [stderr] Compiling memchr v2.7.2 [INFO] [stderr] Compiling regex-syntax v0.8.3 [INFO] [stderr] Checking powerfmt v0.2.0 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling rustls v0.22.4 [INFO] [stderr] Checking fastrand v2.1.0 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Checking home v0.5.9 [INFO] [stderr] Checking either v1.12.0 [INFO] [stderr] Checking unicode-width v0.1.12 [INFO] [stderr] Checking unicode-segmentation v1.11.0 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Checking zeroize v1.7.0 [INFO] [stderr] Checking equivalent v1.0.1 [INFO] [stderr] Checking utf8parse v0.2.1 [INFO] [stderr] Compiling case v1.0.0 [INFO] [stderr] Checking unicode-linebreak v0.1.5 [INFO] [stderr] Checking subtle v2.5.0 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Compiling pkg-config v0.3.30 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Compiling httparse v1.8.0 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling syn v2.0.65 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking parking_lot v0.12.2 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Compiling regex-automata v0.4.6 [INFO] [stderr] Checking indexmap v2.2.6 [INFO] [stderr] Checking tempfile v3.10.1 [INFO] [stderr] Checking which v4.4.2 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking ordered-float v2.10.1 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking edit v0.1.5 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Checking anstyle-parse v0.2.4 [INFO] [stderr] Checking colorchoice v1.0.1 [INFO] [stderr] Checking is_terminal_polyfill v1.70.0 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking anstyle-query v1.0.3 [INFO] [stderr] Checking winnow v0.6.8 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking anstyle v1.0.7 [INFO] [stderr] Checking cpufeatures v0.2.12 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking http v1.1.0 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking anstream v0.6.14 [INFO] [stderr] Checking url v2.5.0 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rustls-pemfile v2.1.2 [INFO] [stderr] Compiling cookie v0.18.1 [INFO] [stderr] Checking data-encoding v2.6.0 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling const_fn v0.4.10 [INFO] [stderr] Checking clap_lex v0.7.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling serde_json v1.0.117 [INFO] [stderr] Checking openssl-probe v0.1.5 [INFO] [stderr] Checking utf-8 v0.7.6 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Checking strsim v0.11.1 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking rustls-native-certs v0.7.0 [INFO] [stderr] Checking hashlink v0.9.1 [INFO] [stderr] Checking clap_builder v4.5.2 [INFO] [stderr] Checking is-docker v0.2.0 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Checking fallible-iterator v0.3.0 [INFO] [stderr] Checking fallible-streaming-iterator v0.1.9 [INFO] [stderr] Checking ryu v1.0.18 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking is-wsl v0.4.0 [INFO] [stderr] Checking pathdiff v0.2.1 [INFO] [stderr] Checking directories v5.0.1 [INFO] [stderr] Checking open v5.1.3 [INFO] [stderr] Checking linkify v0.10.0 [INFO] [stderr] Compiling regex v1.10.4 [INFO] [stderr] Checking tz-rs v0.6.14 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Compiling libsqlite3-sys v0.28.0 [INFO] [stderr] Checking cove-macro v0.8.3 (/tmp/fixit/cove-macro) [INFO] [stderr] Migrating cove-macro/src/lib.rs from 2021 edition to 2024 [INFO] [stderr] Fixed cove-macro/src/util.rs (3 fixes) [INFO] [stderr] Fixed cove-macro/src/key_group.rs (1 fix) [INFO] [stderr] Fixed cove-macro/src/document.rs (3 fixes) [INFO] [stderr] Compiling caseless v0.2.1 [INFO] [stderr] Compiling serde_derive v1.0.202 [INFO] [stderr] Compiling thiserror-impl v1.0.61 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling async-trait v0.1.80 [INFO] [stderr] Compiling clap_derive v4.5.4 [INFO] [stderr] Checking tokio v1.37.0 [INFO] [stderr] Checking clap v4.5.4 [INFO] [stderr] Checking tokio-stream v0.1.15 [INFO] [stderr] Checking rustls-webpki v0.102.4 [INFO] [stderr] Checking toss v0.2.3 (https://github.com/Garmelon/toss.git?tag=v0.2.3#b1d7221b) [INFO] [stderr] Checking serde-value v0.7.0 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Checking toml_datetime v0.6.6 [INFO] [stderr] Checking serde_spanned v0.6.6 [INFO] [stderr] Checking toml_edit v0.22.13 [INFO] [stderr] Checking serde_either v0.2.1 [INFO] [stderr] Checking tungstenite v0.21.0 [INFO] [stderr] Checking tokio-rustls v0.25.0 [INFO] [stderr] Checking cove-input v0.8.3 (/tmp/fixit/cove-input) [INFO] [stderr] Migrating cove-input/src/lib.rs from 2021 edition to 2024 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking tokio-tungstenite v0.21.0 [INFO] [stderr] Checking toml v0.8.13 [INFO] [stderr] Checking cove-config v0.8.3 (/tmp/fixit/cove-config) [INFO] [stderr] Migrating cove-config/src/lib.rs from 2021 edition to 2024 [INFO] [stderr] Checking euphoxide v0.5.1 (https://github.com/Garmelon/euphoxide.git?tag=v0.5.1#0256329f) [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `cove_config` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * cove-config/src/keys.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] --> cove-config/src/keys.rs:9:39 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn $name:ident => [ $($key:expr_2021),* ]; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 1 previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove-config/src/keys.rs:9:44 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn $name:ident => [ $($key: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] 9 | pub fn $name:ident => [ $($key:expr_2021),* ]; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `cove_config` [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove-config/src/keys.rs:9:44 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn $name:ident => [ $($key: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] 9 | pub fn $name:ident => [ $($key:expr_2021),* ]; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * cove-config/src/keys.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] --> cove-config/src/keys.rs:9:39 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn $name:ident => [ $($key:expr_2021),* ]; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 1 previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stderr] Checking rusqlite v0.31.0 [INFO] [stderr] Checking vault v0.4.0 (https://github.com/Garmelon/vault.git?tag=v0.4.0#a53254d2) [INFO] [stderr] Checking cove v0.8.3 (/tmp/fixit/cove) [INFO] [stderr] Migrating cove/src/main.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `cove` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * cove/src/macros.rs [INFO] [stderr] * cove/src/ui/euph/inspect.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] --> cove/src/macros.rs:2:6 [INFO] [stderr] | [INFO] [stderr] 2 | ($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] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> cove/src/ui/euph/inspect.rs:15:20 [INFO] [stderr] | [INFO] [stderr] 15 | ( $text:ident, $name:expr_2021, $val:expr_2021 ) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> cove/src/ui/euph/inspect.rs:15:37 [INFO] [stderr] | [INFO] [stderr] 15 | ( $text:ident, $name:expr_2021, $val:expr_2021 ) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> cove/src/ui/euph/inspect.rs:20:20 [INFO] [stderr] | [INFO] [stderr] 20 | ( $text:ident, $name:expr_2021, $val:expr_2021, debug ) => { [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] --> cove/src/ui/euph/inspect.rs:20:37 [INFO] [stderr] | [INFO] [stderr] 20 | ( $text:ident, $name:expr_2021, $val:expr_2021, debug ) => { [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] --> cove/src/ui/euph/inspect.rs:25:20 [INFO] [stderr] | [INFO] [stderr] 25 | ( $text:ident, $name:expr_2021, $val:expr_2021, optional ) => { [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] --> cove/src/ui/euph/inspect.rs:25:37 [INFO] [stderr] | [INFO] [stderr] 25 | ( $text:ident, $name:expr_2021, $val:expr_2021, optional ) => { [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] --> cove/src/ui/euph/inspect.rs:38:20 [INFO] [stderr] | [INFO] [stderr] 38 | ( $text:ident, $name:expr_2021, $val:expr_2021, yes or no ) => { [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] --> cove/src/ui/euph/inspect.rs:38:37 [INFO] [stderr] | [INFO] [stderr] 38 | ( $text:ident, $name:expr_2021, $val:expr_2021, yes or no ) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 9 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/macros.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | ($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] = 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] 2 | ($e: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] --> cove/src/ui/euph/inspect.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | ( $text:ident, $name:expr, $val:expr ) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 15 | ( $text:ident, $name:expr_2021, $val:expr ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:15:37 [INFO] [stdout] | [INFO] [stdout] 15 | ( $text:ident, $name:expr, $val:expr ) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 15 | ( $text:ident, $name:expr, $val: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] --> cove/src/ui/euph/inspect.rs:20:26 [INFO] [stdout] | [INFO] [stdout] 20 | ( $text:ident, $name:expr, $val:expr, debug ) => { [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] 20 | ( $text:ident, $name:expr_2021, $val:expr, debug ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:20:37 [INFO] [stdout] | [INFO] [stdout] 20 | ( $text:ident, $name:expr, $val:expr, debug ) => { [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] 20 | ( $text:ident, $name:expr, $val:expr_2021, debug ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:25:26 [INFO] [stdout] | [INFO] [stdout] 25 | ( $text:ident, $name:expr, $val:expr, optional ) => { [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] 25 | ( $text:ident, $name:expr_2021, $val:expr, optional ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:25:37 [INFO] [stdout] | [INFO] [stdout] 25 | ( $text:ident, $name:expr, $val:expr, optional ) => { [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] 25 | ( $text:ident, $name:expr, $val:expr_2021, optional ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | ( $text:ident, $name:expr, $val:expr, yes or no ) => { [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 | ( $text:ident, $name:expr_2021, $val:expr, yes or no ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:38:37 [INFO] [stdout] | [INFO] [stdout] 38 | ( $text:ident, $name:expr, $val:expr, yes or no ) => { [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 | ( $text:ident, $name:expr, $val:expr_2021, yes or no ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `msg`, `oldest_msg_id`, `oldest_unseen_msg_id`, and `unseen_msgs_count` are never used [INFO] [stdout] --> cove/src/store.rs:137:14 [INFO] [stdout] | [INFO] [stdout] 134 | pub trait MsgStore { [INFO] [stdout] | -------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 137 | async fn msg(&self, id: &M::Id) -> Result, Self::Error>; [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | async fn oldest_msg_id(&self) -> Result, Self::Error>; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | async fn oldest_unseen_msg_id(&self) -> Result, Self::Error>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | async fn unseen_msgs_count(&self) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `-W dead-code` implied by `-W unused` [INFO] [stdout] = help: to override `-W unused` add `#[allow(dead_code)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `into_blocks` is never used [INFO] [stdout] --> cove/src/ui/chat/renderer.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub trait Renderer { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 17 | fn into_blocks(self) -> Blocks; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/euph/room.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | if let State::Connected(_, state) = &self.state { [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] --> cove/src/euph/room.rs:215:9 [INFO] [stdout] | [INFO] [stdout] 215 | } 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] 210 ~ match &self.state { State::Connected(_, state) => { [INFO] [stdout] 211 | Some(match state { [INFO] [stdout] ... [INFO] [stdout] 214 | }) [INFO] [stdout] 215 ~ } _ => { [INFO] [stdout] 216 | None [INFO] [stdout] 217 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/euph/room.rs:314:16 [INFO] [stdout] | [INFO] [stdout] 314 | if let Ok(reply) = reply.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] --> cove/src/euph/room.rs:316:13 [INFO] [stdout] | [INFO] [stdout] 316 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 314 ~ match reply.await { Ok(reply) => { [INFO] [stdout] 315 | let _ = tx.send(reply.0.id); [INFO] [stdout] 316 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/store.rs:61:16 [INFO] [stdout] | [INFO] [stdout] 61 | if let Some(parent) = msg.parent() { [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] --> cove/src/store.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 61 ~ match msg.parent() { Some(parent) => { [INFO] [stdout] 62 | children.entry(parent).or_default().push(msg.id()); [INFO] [stdout] 63 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/store.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 107 | if let Some(parent) = self.parent(id) { [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] --> cove/src/store.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | } 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] 107 ~ match self.parent(id) { Some(parent) => { [INFO] [stdout] 108 | self.children(&parent) [INFO] [stdout] 109 ~ } _ => { [INFO] [stdout] 110 | None [INFO] [stdout] 111 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 140 | if let Cursor::Pseudo { .. } = &self.cursor { [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] --> cove/src/ui/chat.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 140 ~ match &self.cursor { Cursor::Pseudo { .. } => { [INFO] [stdout] 141 | self.tree.send_successful(&id); [INFO] [stdout] 142 | self.cursor = Cursor::Msg(id); [INFO] [stdout] 143 | self.editor.clear(); [INFO] [stdout] 144 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 149 | if let Cursor::Pseudo { coming_from, .. } = &self.cursor { [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] --> cove/src/ui/chat.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | } [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.cursor { Cursor::Pseudo { coming_from, .. } => { [INFO] [stdout] 150 | self.cursor = match coming_from { [INFO] [stdout] ... [INFO] [stdout] 153 | }; [INFO] [stdout] 154 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | if let Some(parent) = tree.parent(id) { [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] --> cove/src/ui/chat/cursor.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | } 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] 27 ~ match tree.parent(id) { Some(parent) => { [INFO] [stdout] 28 | *id = parent; [INFO] [stdout] 29 | true [INFO] [stdout] 30 ~ } _ => { [INFO] [stdout] 31 | false [INFO] [stdout] 32 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:47:24 [INFO] [stdout] | [INFO] [stdout] 47 | let moved = if let Some(prev_sibling) = tree.prev_sibling(id) { [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] --> cove/src/ui/chat/cursor.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | } else if tree.parent(id).is_none() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 47 ~ let moved = match tree.prev_sibling(id) { Some(prev_sibling) => { [INFO] [stdout] 48 | *id = prev_sibling; [INFO] [stdout] 49 | true [INFO] [stdout] 50 ~ } _ => if tree.parent(id).is_none() { [INFO] [stdout] 51 | // We're at the root of our tree, so we need to move to the root of [INFO] [stdout] ... [INFO] [stdout] 61 | false [INFO] [stdout] 62 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:53:16 [INFO] [stdout] | [INFO] [stdout] 53 | if let Some(prev_root_id) = store.prev_root_id(tree.root()).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] --> cove/src/ui/chat/cursor.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | } 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] 53 ~ match store.prev_root_id(tree.root()).await? { Some(prev_root_id) => { [INFO] [stdout] 54 | *tree = store.tree(&prev_root_id).await?; [INFO] [stdout] 55 | *id = prev_root_id; [INFO] [stdout] 56 | true [INFO] [stdout] 57 ~ } _ => { [INFO] [stdout] 58 | false [INFO] [stdout] 59 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:78:24 [INFO] [stdout] | [INFO] [stdout] 78 | let moved = if let Some(next_sibling) = tree.next_sibling(id) { [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] --> cove/src/ui/chat/cursor.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | } else if tree.parent(id).is_none() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 78 ~ let moved = match tree.next_sibling(id) { Some(next_sibling) => { [INFO] [stdout] 79 | *id = next_sibling; [INFO] [stdout] 80 | true [INFO] [stdout] 81 ~ } _ => if tree.parent(id).is_none() { [INFO] [stdout] 82 | // We're at the root of our tree, so we need to move to the root of [INFO] [stdout] ... [INFO] [stdout] 92 | false [INFO] [stdout] 93 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:84:16 [INFO] [stdout] | [INFO] [stdout] 84 | if let Some(next_root_id) = store.next_root_id(tree.root()).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] --> cove/src/ui/chat/cursor.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | } 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] 84 ~ match store.next_root_id(tree.root()).await? { Some(next_root_id) => { [INFO] [stdout] 85 | *tree = store.tree(&next_root_id).await?; [INFO] [stdout] 86 | *id = next_root_id; [INFO] [stdout] 87 | true [INFO] [stdout] 88 ~ } _ => { [INFO] [stdout] 89 | false [INFO] [stdout] 90 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:205:20 [INFO] [stdout] | [INFO] [stdout] 205 | if let Some(prev_id) = store.older_msg_id(id).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] --> cove/src/ui/chat/cursor.rs:207:17 [INFO] [stdout] | [INFO] [stdout] 207 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 205 ~ match store.older_msg_id(id).await? { Some(prev_id) => { [INFO] [stdout] 206 | *id = prev_id; [INFO] [stdout] 207 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:210:20 [INFO] [stdout] | [INFO] [stdout] 210 | if let Some(id) = store.newest_msg_id().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] --> cove/src/ui/chat/cursor.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 210 ~ match store.newest_msg_id().await? { Some(id) => { [INFO] [stdout] 211 | *self = Self::Msg(id); [INFO] [stdout] 212 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:226:20 [INFO] [stdout] | [INFO] [stdout] 226 | if let Some(prev_id) = store.newer_msg_id(id).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] --> cove/src/ui/chat/cursor.rs:228:17 [INFO] [stdout] | [INFO] [stdout] 228 | } 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] 226 ~ match store.newer_msg_id(id).await? { Some(prev_id) => { [INFO] [stdout] 227 | *id = prev_id; [INFO] [stdout] 228 ~ } _ => { [INFO] [stdout] 229 | *self = Self::Bottom; [INFO] [stdout] 230 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:247:20 [INFO] [stdout] | [INFO] [stdout] 247 | if let Some(prev_id) = store.older_unseen_msg_id(id).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] --> cove/src/ui/chat/cursor.rs:249:17 [INFO] [stdout] | [INFO] [stdout] 249 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 247 ~ match store.older_unseen_msg_id(id).await? { Some(prev_id) => { [INFO] [stdout] 248 | *id = prev_id; [INFO] [stdout] 249 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:252:20 [INFO] [stdout] | [INFO] [stdout] 252 | if let Some(id) = store.newest_unseen_msg_id().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] --> cove/src/ui/chat/cursor.rs:254:17 [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] 252 ~ match store.newest_unseen_msg_id().await? { Some(id) => { [INFO] [stdout] 253 | *self = Self::Msg(id); [INFO] [stdout] 254 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:268:20 [INFO] [stdout] | [INFO] [stdout] 268 | if let Some(prev_id) = store.newer_unseen_msg_id(id).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] --> cove/src/ui/chat/cursor.rs:270:17 [INFO] [stdout] | [INFO] [stdout] 270 | } 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] 268 ~ match store.newer_unseen_msg_id(id).await? { Some(prev_id) => { [INFO] [stdout] 269 | *id = prev_id; [INFO] [stdout] 270 ~ } _ => { [INFO] [stdout] 271 | *self = Self::Bottom; [INFO] [stdout] 272 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:296:20 [INFO] [stdout] | [INFO] [stdout] 296 | if let Some(parent_id) = path.parent_segments().last() { [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] --> cove/src/ui/chat/cursor.rs:298:17 [INFO] [stdout] | [INFO] [stdout] 298 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 296 ~ match path.parent_segments().last() { Some(parent_id) => { [INFO] [stdout] 297 | *id = parent_id.clone(); [INFO] [stdout] 298 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:334:20 [INFO] [stdout] | [INFO] [stdout] 334 | if let Some(last_root_id) = store.last_root_id().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] --> cove/src/ui/chat/cursor.rs:336:17 [INFO] [stdout] | [INFO] [stdout] 336 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 334 ~ match store.last_root_id().await? { Some(last_root_id) => { [INFO] [stdout] 335 | *self = Self::Msg(last_root_id); [INFO] [stdout] 336 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:350:20 [INFO] [stdout] | [INFO] [stdout] 350 | if let Some(children) = tree.children(parent) { [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] --> cove/src/ui/chat/cursor.rs:354:17 [INFO] [stdout] | [INFO] [stdout] 354 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 350 ~ match tree.children(parent) { Some(children) => { [INFO] [stdout] 351 | if let Some(last_child) = children.last() { [INFO] [stdout] 352 | *self = Self::Msg(last_child.clone()); [INFO] [stdout] 353 | } [INFO] [stdout] 354 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:394:20 [INFO] [stdout] | [INFO] [stdout] 394 | if let Some(last_root_id) = store.last_root_id().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] --> cove/src/ui/chat/cursor.rs:399:17 [INFO] [stdout] | [INFO] [stdout] 399 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 394 ~ match store.last_root_id().await? { Some(last_root_id) => { [INFO] [stdout] 395 | let tree = store.tree(&last_root_id).await?; [INFO] [stdout] ... [INFO] [stdout] 398 | *self = Self::Msg(id); [INFO] [stdout] 399 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:480:27 [INFO] [stdout] | [INFO] [stdout] 480 | } else if let Some(parent) = tree.parent(id) { [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] --> cove/src/ui/chat/cursor.rs:487:17 [INFO] [stdout] | [INFO] [stdout] 487 | } 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] 480 ~ } else { match tree.parent(id) { Some(parent) => { [INFO] [stdout] 481 | // A reply to a message without younger siblings should be [INFO] [stdout] ... [INFO] [stdout] 486 | parent [INFO] [stdout] 487 ~ } _ => { [INFO] [stdout] 488 | // When replying to a top-level message, it makes sense to [INFO] [stdout] 489 | // avoid creating unnecessary new threads. [INFO] [stdout] 490 | id.clone() [INFO] [stdout] 491 ~ }}})) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:516:27 [INFO] [stdout] | [INFO] [stdout] 516 | } else if let Some(parent) = tree.parent(id) { [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] --> cove/src/ui/chat/cursor.rs:519:17 [INFO] [stdout] | [INFO] [stdout] 519 | } 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] 516 ~ } else { match tree.parent(id) { Some(parent) => { [INFO] [stdout] 517 | // The opposite of replying normally [INFO] [stdout] 518 | parent [INFO] [stdout] 519 ~ } _ => { [INFO] [stdout] 520 | // The same as replying normally, still to avoid creating [INFO] [stdout] 521 | // unnecessary new threads [INFO] [stdout] 522 | id.clone() [INFO] [stdout] 523 ~ }}})) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree.rs:176:20 [INFO] [stdout] | [INFO] [stdout] 176 | if let Some(msg) = self.store.tree(id).await?.msg(id) { [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] --> cove/src/ui/chat/tree.rs:178:17 [INFO] [stdout] | [INFO] [stdout] 178 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 176 ~ match self.store.tree(id).await?.msg(id) { Some(msg) => { [INFO] [stdout] 177 | self.store.set_seen(id, !msg.seen()).await?; [INFO] [stdout] 178 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree.rs:378:12 [INFO] [stdout] | [INFO] [stdout] 378 | if let Cursor::Pseudo { .. } = self.last_cursor { [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] --> cove/src/ui/chat/tree.rs:380:9 [INFO] [stdout] | [INFO] [stdout] 380 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 378 ~ match self.last_cursor { Cursor::Pseudo { .. } => { [INFO] [stdout] 379 | self.last_cursor = Cursor::Msg(id.clone()); [INFO] [stdout] 380 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:306:23 [INFO] [stdout] | [INFO] [stdout] 306 | while let Some(parent_id) = tree.parent(&id) { [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] --> cove/src/ui/chat/tree/renderer.rs:309:17 [INFO] [stdout] | [INFO] [stdout] 309 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, Block::Id>>)>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:429:10 [INFO] [stdout] | [INFO] [stdout] 429 | ) -> impl Iterator, Block>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:99:6 [INFO] [stdout] | [INFO] [stdout] 99 | impl<'a, M, S> TreeRenderer<'a, M, S> [INFO] [stdout] | ^^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 429 | ) -> impl Iterator, Block>)> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:468:31 [INFO] [stdout] | [INFO] [stdout] 468 | let prev_root_id = if let Some(top_root_id) = &self.top_root_id { [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] --> cove/src/ui/chat/tree/renderer.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | } 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] 468 ~ let prev_root_id = match &self.top_root_id { Some(top_root_id) => { [INFO] [stdout] 469 | self.store.prev_root_id(top_root_id).await? [INFO] [stdout] 470 ~ } _ => { [INFO] [stdout] 471 | self.store.last_root_id().await? [INFO] [stdout] 472 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:474:12 [INFO] [stdout] | [INFO] [stdout] 474 | if let Some(prev_root_id) = prev_root_id { [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] --> cove/src/ui/chat/tree/renderer.rs:479:9 [INFO] [stdout] | [INFO] [stdout] 479 | } 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] 474 ~ match prev_root_id { Some(prev_root_id) => { [INFO] [stdout] 475 | let tree = self.store.tree(&prev_root_id).await?; [INFO] [stdout] ... [INFO] [stdout] 478 | self.top_root_id = Some(prev_root_id); [INFO] [stdout] 479 ~ } _ => { [INFO] [stdout] 480 | self.blocks.end_top(); [INFO] [stdout] 481 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:493:12 [INFO] [stdout] | [INFO] [stdout] 493 | if let Some(next_root_id) = next_root_id { [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] --> cove/src/ui/chat/tree/renderer.rs:498:9 [INFO] [stdout] | [INFO] [stdout] 498 | } 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] 493 ~ match next_root_id { Some(next_root_id) => { [INFO] [stdout] 494 | let tree = self.store.tree(&next_root_id).await?; [INFO] [stdout] ... [INFO] [stdout] 497 | self.bottom_root_id = Some(next_root_id); [INFO] [stdout] 498 ~ } _ => { [INFO] [stdout] 499 | let blocks = self.layout_bottom(); [INFO] [stdout] ... [INFO] [stdout] 502 | self.bottom_root_id = None; [INFO] [stdout] 503 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/account.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | fn widget(&self) -> impl Widget { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/account.rs:69:15 [INFO] [stdout] | [INFO] [stdout] 69 | fn widget(&self) -> impl Widget { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 69 | fn widget(&self) -> impl Widget + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:94:49 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn session_widget(session: &SessionInfo) -> impl Widget { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:94:32 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn session_widget(session: &SessionInfo) -> impl Widget { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 94 | pub fn session_widget(session: &SessionInfo) -> impl Widget + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:111:41 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn message_widget(msg: &Message) -> impl Widget { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:111:28 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn message_widget(msg: &Message) -> impl Widget { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 111 | pub fn message_widget(msg: &Message) -> impl Widget + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/links.rs:104:16 [INFO] [stdout] | [INFO] [stdout] 104 | if let Err(error) = open::that(&link) { [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] --> cove/src/ui/euph/links.rs:106:13 [INFO] [stdout] | [INFO] [stdout] 106 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 104 ~ match open::that(&link) { Err(error) => { [INFO] [stdout] 105 | return PopupResult::ErrorOpeningLink { link, error }; [INFO] [stdout] 106 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/nick_list.rs:17:6 [INFO] [stdout] | [INFO] [stdout] 17 | ) -> impl Widget + 'a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/nick_list.rs:15:13 [INFO] [stdout] | [INFO] [stdout] 15 | joined: &Joined, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 17 | ) -> impl Widget + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/popup.rs:15:64 [INFO] [stdout] | [INFO] [stdout] 15 | fn server_error_widget(description: &str, reason: &str) -> impl Widget { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/popup.rs:15:41 [INFO] [stdout] | [INFO] [stdout] 15 | fn server_error_widget(description: &str, reason: &str) -> impl Widget { [INFO] [stdout] | ^ ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 15 | fn server_error_widget(description: &str, reason: &str) -> impl Widget + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/popup.rs:26:29 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn widget(&self) -> impl Widget { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/popup.rs:26:19 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn widget(&self) -> impl Widget { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 26 | pub fn widget(&self) -> impl Widget + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(room) = &self.room { [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] --> cove/src/ui/euph/room.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | } 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] 128 ~ match &self.room { Some(room) => { [INFO] [stdout] 129 | Some(room.state()) [INFO] [stdout] 130 ~ } _ => { [INFO] [stdout] 131 | None [INFO] [stdout] 132 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | if let Some(room) = &self.room { [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] --> cove/src/ui/euph/room.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 144 ~ match &self.room { Some(room) => { [INFO] [stdout] 145 | if room.stopped() { [INFO] [stdout] 146 | self.room = None; [INFO] [stdout] 147 | } [INFO] [stdout] 148 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:156:12 [INFO] [stdout] | [INFO] [stdout] 156 | if let Some(id_rx) = &mut self.last_msg_sent { [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] --> cove/src/ui/euph/room.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 156 ~ match &mut self.last_msg_sent { Some(id_rx) => { [INFO] [stdout] 157 | match id_rx.try_recv() { [INFO] [stdout] ... [INFO] [stdout] 167 | } [INFO] [stdout] 168 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:345:20 [INFO] [stdout] | [INFO] [stdout] 345 | if let Some(room) = &self.room { [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] --> cove/src/ui/euph/room.rs:351:17 [INFO] [stdout] | [INFO] [stdout] 351 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 345 ~ match &self.room { Some(room) => { [INFO] [stdout] 346 | match room.send(parent, content) { [INFO] [stdout] ... [INFO] [stdout] 350 | return true; [INFO] [stdout] 351 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:415:20 [INFO] [stdout] | [INFO] [stdout] 415 | if let Some(msg) = logging_unwrap!(self.vault().full_msg(*id).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] --> cove/src/ui/euph/room.rs:417:17 [INFO] [stdout] | [INFO] [stdout] 417 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:424:20 [INFO] [stdout] | [INFO] [stdout] 424 | if let Some(msg) = logging_unwrap!(self.vault().msg(*id).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] --> cove/src/ui/euph/room.rs:426:17 [INFO] [stdout] | [INFO] [stdout] 426 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:536:26 [INFO] [stdout] | [INFO] [stdout] 536 | let handled = if let Event::Packet(_, packet, _) = &event { [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] --> cove/src/ui/euph/room.rs:541:9 [INFO] [stdout] | [INFO] [stdout] 541 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 536 ~ let handled = match &event { Event::Packet(_, packet, _) => { [INFO] [stdout] 537 | match &packet.content { [INFO] [stdout] ... [INFO] [stdout] 540 | } [INFO] [stdout] 541 ~ } _ => { [INFO] [stdout] 542 | // The room state changes, which always means a redraw. [INFO] [stdout] 543 | true [INFO] [stdout] 544 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/key_bindings.rs:72:6 [INFO] [stdout] | [INFO] [stdout] 72 | ) -> impl Widget + 'a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/key_bindings.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | config: &Config, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 72 | ) -> impl Widget + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/rooms.rs:179:12 [INFO] [stdout] | [INFO] [stdout] 179 | if let Some(room) = self.euph_rooms.get_mut(room) { [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] --> cove/src/ui/rooms.rs:181:9 [INFO] [stdout] | [INFO] [stdout] 181 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 179 ~ match self.euph_rooms.get_mut(room) { Some(room) => { [INFO] [stdout] 180 | room.disconnect(); [INFO] [stdout] 181 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/rooms.rs:558:20 [INFO] [stdout] | [INFO] [stdout] 558 | if let Some(room) = self.euph_rooms.get_mut(name) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> cove/src/ui/rooms.rs:566:17 [INFO] [stdout] | [INFO] [stdout] 566 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 558 ~ match self.euph_rooms.get_mut(name) { Some(room) => { [INFO] [stdout] 559 | if room.handle_input_event(event, keys).await { [INFO] [stdout] ... [INFO] [stdout] 565 | } [INFO] [stdout] 566 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 128 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 110 ~ match &self.cursor { Some(cursor) => { [INFO] [stdout] 111 | let first_visible_line_idx = self.offset; [INFO] [stdout] ... [INFO] [stdout] 127 | } [INFO] [stdout] 128 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:125:16 [INFO] [stdout] | [INFO] [stdout] 125 | if let Some(new_cursor) = new_cursor { [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] --> cove/src/ui/widgets/list.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | } [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 new_cursor { Some(new_cursor) => { [INFO] [stdout] 126 | self.cursor = Some(new_cursor); [INFO] [stdout] 127 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 137 | if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 137 ~ match &self.cursor { Some(cursor) => { [INFO] [stdout] 138 | // As long as height > 0, min <= max is true [INFO] [stdout] ... [INFO] [stdout] 141 | self.offset = self.offset.clamp(min, max); [INFO] [stdout] 142 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 192 | if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 192 ~ match &self.cursor { Some(cursor) => { [INFO] [stdout] 193 | let height: usize = self.last_height.into(); [INFO] [stdout] 194 | self.scroll_to(cursor.idx.saturating_sub(height / 2)); [INFO] [stdout] 195 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:200:12 [INFO] [stdout] | [INFO] [stdout] 200 | if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:204:9 [INFO] [stdout] | [INFO] [stdout] 204 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 200 ~ match &self.cursor { Some(cursor) => { [INFO] [stdout] 201 | if let Some(new_cursor) = self.selectable_before_index(cursor.idx) { [INFO] [stdout] 202 | self.move_cursor_to(new_cursor); [INFO] [stdout] 203 | } [INFO] [stdout] 204 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:201:16 [INFO] [stdout] | [INFO] [stdout] 201 | if let Some(new_cursor) = self.selectable_before_index(cursor.idx) { [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] --> cove/src/ui/widgets/list.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 201 ~ match self.selectable_before_index(cursor.idx) { Some(new_cursor) => { [INFO] [stdout] 202 | self.move_cursor_to(new_cursor); [INFO] [stdout] 203 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:209:12 [INFO] [stdout] | [INFO] [stdout] 209 | if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 209 ~ match &self.cursor { Some(cursor) => { [INFO] [stdout] 210 | if let Some(new_cursor) = self.selectable_after_index(cursor.idx) { [INFO] [stdout] 211 | self.move_cursor_to(new_cursor); [INFO] [stdout] 212 | } [INFO] [stdout] 213 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:210:16 [INFO] [stdout] | [INFO] [stdout] 210 | if let Some(new_cursor) = self.selectable_after_index(cursor.idx) { [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] --> cove/src/ui/widgets/list.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 210 ~ match self.selectable_after_index(cursor.idx) { Some(new_cursor) => { [INFO] [stdout] 211 | self.move_cursor_to(new_cursor); [INFO] [stdout] 212 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:218:12 [INFO] [stdout] | [INFO] [stdout] 218 | if let Some(new_cursor) = self.first_selectable() { [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] --> cove/src/ui/widgets/list.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 218 ~ match self.first_selectable() { Some(new_cursor) => { [INFO] [stdout] 219 | self.move_cursor_to(new_cursor); [INFO] [stdout] 220 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:225:12 [INFO] [stdout] | [INFO] [stdout] 225 | if let Some(new_cursor) = self.last_selectable() { [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] --> cove/src/ui/widgets/list.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 225 ~ match self.last_selectable() { Some(new_cursor) => { [INFO] [stdout] 226 | self.move_cursor_to(new_cursor); [INFO] [stdout] 227 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:243:29 [INFO] [stdout] | [INFO] [stdout] 243 | let new_cursor = if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:247:9 [INFO] [stdout] | [INFO] [stdout] 247 | } 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] 243 ~ let new_cursor = match &self.cursor { Some(cursor) => { [INFO] [stdout] 244 | self.selectable_of_id(&cursor.id) [INFO] [stdout] 245 | .or_else(|| self.selectable_at_or_before_index(cursor.idx)) [INFO] [stdout] 246 | .or_else(|| self.selectable_at_or_after_index(cursor.idx)) [INFO] [stdout] 247 ~ } _ => { [INFO] [stdout] 248 | self.first_selectable() [INFO] [stdout] 249 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:251:12 [INFO] [stdout] | [INFO] [stdout] 251 | if let Some(new_cursor) = new_cursor { [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] --> cove/src/ui/widgets/list.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | } 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] 251 ~ match new_cursor { Some(new_cursor) => { [INFO] [stdout] 252 | self.move_cursor_to(new_cursor); [INFO] [stdout] 253 ~ } _ => { [INFO] [stdout] 254 | self.cursor = None; [INFO] [stdout] 255 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 70 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `cove` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * cove/src/macros.rs [INFO] [stderr] * cove/src/ui/euph/inspect.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] --> cove/src/macros.rs:2:6 [INFO] [stderr] | [INFO] [stderr] 2 | ($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] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> cove/src/ui/euph/inspect.rs:15:20 [INFO] [stderr] | [INFO] [stderr] 15 | ( $text:ident, $name:expr_2021, $val:expr_2021 ) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> cove/src/ui/euph/inspect.rs:15:37 [INFO] [stderr] | [INFO] [stderr] 15 | ( $text:ident, $name:expr_2021, $val:expr_2021 ) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> cove/src/ui/euph/inspect.rs:20:20 [INFO] [stderr] | [INFO] [stderr] 20 | ( $text:ident, $name:expr_2021, $val:expr_2021, debug ) => { [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] --> cove/src/ui/euph/inspect.rs:20:37 [INFO] [stderr] | [INFO] [stderr] 20 | ( $text:ident, $name:expr_2021, $val:expr_2021, debug ) => { [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] --> cove/src/ui/euph/inspect.rs:25:20 [INFO] [stderr] | [INFO] [stderr] 25 | ( $text:ident, $name:expr_2021, $val:expr_2021, optional ) => { [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] --> cove/src/ui/euph/inspect.rs:25:37 [INFO] [stderr] | [INFO] [stderr] 25 | ( $text:ident, $name:expr_2021, $val:expr_2021, optional ) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [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] --> cove/src/macros.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | ($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] = 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] 2 | ($e:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> cove/src/ui/euph/inspect.rs:38:20 [INFO] [stderr] | [INFO] [stderr] 38 | ( $text:ident, $name:expr_2021, $val:expr_2021, yes or no ) => { [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] --> cove/src/ui/euph/inspect.rs:38:37 [INFO] [stderr] | [INFO] [stderr] 38 | ( $text:ident, $name:expr_2021, $val:expr_2021, yes or no ) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 9 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | ( $text:ident, $name:expr, $val:expr ) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 15 | ( $text:ident, $name:expr_2021, $val:expr ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:15:37 [INFO] [stdout] | [INFO] [stdout] 15 | ( $text:ident, $name:expr, $val:expr ) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 15 | ( $text:ident, $name:expr, $val: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] --> cove/src/ui/euph/inspect.rs:20:26 [INFO] [stdout] | [INFO] [stdout] 20 | ( $text:ident, $name:expr, $val:expr, debug ) => { [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] 20 | ( $text:ident, $name:expr_2021, $val:expr, debug ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:20:37 [INFO] [stdout] | [INFO] [stdout] 20 | ( $text:ident, $name:expr, $val:expr, debug ) => { [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] 20 | ( $text:ident, $name:expr, $val:expr_2021, debug ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:25:26 [INFO] [stdout] | [INFO] [stdout] 25 | ( $text:ident, $name:expr, $val:expr, optional ) => { [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] 25 | ( $text:ident, $name:expr_2021, $val:expr, optional ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:25:37 [INFO] [stdout] | [INFO] [stdout] 25 | ( $text:ident, $name:expr, $val:expr, optional ) => { [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] 25 | ( $text:ident, $name:expr, $val:expr_2021, optional ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | ( $text:ident, $name:expr, $val:expr, yes or no ) => { [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 | ( $text:ident, $name:expr_2021, $val:expr, yes or no ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:38:37 [INFO] [stdout] | [INFO] [stdout] 38 | ( $text:ident, $name:expr, $val:expr, yes or no ) => { [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 | ( $text:ident, $name:expr, $val:expr_2021, yes or no ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `msg`, `oldest_msg_id`, `oldest_unseen_msg_id`, and `unseen_msgs_count` are never used [INFO] [stdout] --> cove/src/store.rs:137:14 [INFO] [stdout] | [INFO] [stdout] 134 | pub trait MsgStore { [INFO] [stdout] | -------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 137 | async fn msg(&self, id: &M::Id) -> Result, Self::Error>; [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | async fn oldest_msg_id(&self) -> Result, Self::Error>; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | async fn oldest_unseen_msg_id(&self) -> Result, Self::Error>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | async fn unseen_msgs_count(&self) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `-W dead-code` implied by `-W unused` [INFO] [stdout] = help: to override `-W unused` add `#[allow(dead_code)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `into_blocks` is never used [INFO] [stdout] --> cove/src/ui/chat/renderer.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub trait Renderer { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 17 | fn into_blocks(self) -> Blocks; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/euph/room.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | if let State::Connected(_, state) = &self.state { [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] --> cove/src/euph/room.rs:215:9 [INFO] [stdout] | [INFO] [stdout] 215 | } 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] 210 ~ match &self.state { State::Connected(_, state) => { [INFO] [stdout] 211 | Some(match state { [INFO] [stdout] ... [INFO] [stdout] 214 | }) [INFO] [stdout] 215 ~ } _ => { [INFO] [stdout] 216 | None [INFO] [stdout] 217 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/euph/room.rs:314:16 [INFO] [stdout] | [INFO] [stdout] 314 | if let Ok(reply) = reply.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] --> cove/src/euph/room.rs:316:13 [INFO] [stdout] | [INFO] [stdout] 316 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 314 ~ match reply.await { Ok(reply) => { [INFO] [stdout] 315 | let _ = tx.send(reply.0.id); [INFO] [stdout] 316 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/store.rs:61:16 [INFO] [stdout] | [INFO] [stdout] 61 | if let Some(parent) = msg.parent() { [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] --> cove/src/store.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 61 ~ match msg.parent() { Some(parent) => { [INFO] [stdout] 62 | children.entry(parent).or_default().push(msg.id()); [INFO] [stdout] 63 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/store.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 107 | if let Some(parent) = self.parent(id) { [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] --> cove/src/store.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | } 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] 107 ~ match self.parent(id) { Some(parent) => { [INFO] [stdout] 108 | self.children(&parent) [INFO] [stdout] 109 ~ } _ => { [INFO] [stdout] 110 | None [INFO] [stdout] 111 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 140 | if let Cursor::Pseudo { .. } = &self.cursor { [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] --> cove/src/ui/chat.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 140 ~ match &self.cursor { Cursor::Pseudo { .. } => { [INFO] [stdout] 141 | self.tree.send_successful(&id); [INFO] [stdout] 142 | self.cursor = Cursor::Msg(id); [INFO] [stdout] 143 | self.editor.clear(); [INFO] [stdout] 144 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 149 | if let Cursor::Pseudo { coming_from, .. } = &self.cursor { [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] --> cove/src/ui/chat.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | } [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.cursor { Cursor::Pseudo { coming_from, .. } => { [INFO] [stdout] 150 | self.cursor = match coming_from { [INFO] [stdout] ... [INFO] [stdout] 153 | }; [INFO] [stdout] 154 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | if let Some(parent) = tree.parent(id) { [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] --> cove/src/ui/chat/cursor.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | } 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] 27 ~ match tree.parent(id) { Some(parent) => { [INFO] [stdout] 28 | *id = parent; [INFO] [stdout] 29 | true [INFO] [stdout] 30 ~ } _ => { [INFO] [stdout] 31 | false [INFO] [stdout] 32 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:47:24 [INFO] [stdout] | [INFO] [stdout] 47 | let moved = if let Some(prev_sibling) = tree.prev_sibling(id) { [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] --> cove/src/ui/chat/cursor.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | } else if tree.parent(id).is_none() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 47 ~ let moved = match tree.prev_sibling(id) { Some(prev_sibling) => { [INFO] [stdout] 48 | *id = prev_sibling; [INFO] [stdout] 49 | true [INFO] [stdout] 50 ~ } _ => if tree.parent(id).is_none() { [INFO] [stdout] 51 | // We're at the root of our tree, so we need to move to the root of [INFO] [stdout] ... [INFO] [stdout] 61 | false [INFO] [stdout] 62 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:53:16 [INFO] [stdout] | [INFO] [stdout] 53 | if let Some(prev_root_id) = store.prev_root_id(tree.root()).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] --> cove/src/ui/chat/cursor.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | } 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] 53 ~ match store.prev_root_id(tree.root()).await? { Some(prev_root_id) => { [INFO] [stdout] 54 | *tree = store.tree(&prev_root_id).await?; [INFO] [stdout] 55 | *id = prev_root_id; [INFO] [stdout] 56 | true [INFO] [stdout] 57 ~ } _ => { [INFO] [stdout] 58 | false [INFO] [stdout] 59 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:78:24 [INFO] [stdout] | [INFO] [stdout] 78 | let moved = if let Some(next_sibling) = tree.next_sibling(id) { [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] --> cove/src/ui/chat/cursor.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | } else if tree.parent(id).is_none() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 78 ~ let moved = match tree.next_sibling(id) { Some(next_sibling) => { [INFO] [stdout] 79 | *id = next_sibling; [INFO] [stdout] 80 | true [INFO] [stdout] 81 ~ } _ => if tree.parent(id).is_none() { [INFO] [stdout] 82 | // We're at the root of our tree, so we need to move to the root of [INFO] [stdout] ... [INFO] [stdout] 92 | false [INFO] [stdout] 93 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:84:16 [INFO] [stdout] | [INFO] [stdout] 84 | if let Some(next_root_id) = store.next_root_id(tree.root()).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] --> cove/src/ui/chat/cursor.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | } 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] 84 ~ match store.next_root_id(tree.root()).await? { Some(next_root_id) => { [INFO] [stdout] 85 | *tree = store.tree(&next_root_id).await?; [INFO] [stdout] 86 | *id = next_root_id; [INFO] [stdout] 87 | true [INFO] [stdout] 88 ~ } _ => { [INFO] [stdout] 89 | false [INFO] [stdout] 90 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:205:20 [INFO] [stdout] | [INFO] [stdout] 205 | if let Some(prev_id) = store.older_msg_id(id).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] --> cove/src/ui/chat/cursor.rs:207:17 [INFO] [stdout] | [INFO] [stdout] 207 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 205 ~ match store.older_msg_id(id).await? { Some(prev_id) => { [INFO] [stdout] 206 | *id = prev_id; [INFO] [stdout] 207 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:210:20 [INFO] [stdout] | [INFO] [stdout] 210 | if let Some(id) = store.newest_msg_id().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] --> cove/src/ui/chat/cursor.rs:212:17 [INFO] [stdout] | [INFO] [stdout] 212 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 210 ~ match store.newest_msg_id().await? { Some(id) => { [INFO] [stdout] 211 | *self = Self::Msg(id); [INFO] [stdout] 212 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:226:20 [INFO] [stdout] | [INFO] [stdout] 226 | if let Some(prev_id) = store.newer_msg_id(id).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] --> cove/src/ui/chat/cursor.rs:228:17 [INFO] [stdout] | [INFO] [stdout] 228 | } 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] 226 ~ match store.newer_msg_id(id).await? { Some(prev_id) => { [INFO] [stdout] 227 | *id = prev_id; [INFO] [stdout] 228 ~ } _ => { [INFO] [stdout] 229 | *self = Self::Bottom; [INFO] [stdout] 230 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:247:20 [INFO] [stdout] | [INFO] [stdout] 247 | if let Some(prev_id) = store.older_unseen_msg_id(id).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] --> cove/src/ui/chat/cursor.rs:249:17 [INFO] [stdout] | [INFO] [stdout] 249 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 247 ~ match store.older_unseen_msg_id(id).await? { Some(prev_id) => { [INFO] [stdout] 248 | *id = prev_id; [INFO] [stdout] 249 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:252:20 [INFO] [stdout] | [INFO] [stdout] 252 | if let Some(id) = store.newest_unseen_msg_id().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] --> cove/src/ui/chat/cursor.rs:254:17 [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] 252 ~ match store.newest_unseen_msg_id().await? { Some(id) => { [INFO] [stdout] 253 | *self = Self::Msg(id); [INFO] [stdout] 254 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:268:20 [INFO] [stdout] | [INFO] [stdout] 268 | if let Some(prev_id) = store.newer_unseen_msg_id(id).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] --> cove/src/ui/chat/cursor.rs:270:17 [INFO] [stdout] | [INFO] [stdout] 270 | } 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] 268 ~ match store.newer_unseen_msg_id(id).await? { Some(prev_id) => { [INFO] [stdout] 269 | *id = prev_id; [INFO] [stdout] 270 ~ } _ => { [INFO] [stdout] 271 | *self = Self::Bottom; [INFO] [stdout] 272 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:296:20 [INFO] [stdout] | [INFO] [stdout] 296 | if let Some(parent_id) = path.parent_segments().last() { [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] --> cove/src/ui/chat/cursor.rs:298:17 [INFO] [stdout] | [INFO] [stdout] 298 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 296 ~ match path.parent_segments().last() { Some(parent_id) => { [INFO] [stdout] 297 | *id = parent_id.clone(); [INFO] [stdout] 298 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:334:20 [INFO] [stdout] | [INFO] [stdout] 334 | if let Some(last_root_id) = store.last_root_id().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] --> cove/src/ui/chat/cursor.rs:336:17 [INFO] [stdout] | [INFO] [stdout] 336 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 334 ~ match store.last_root_id().await? { Some(last_root_id) => { [INFO] [stdout] 335 | *self = Self::Msg(last_root_id); [INFO] [stdout] 336 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:350:20 [INFO] [stdout] | [INFO] [stdout] 350 | if let Some(children) = tree.children(parent) { [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] --> cove/src/ui/chat/cursor.rs:354:17 [INFO] [stdout] | [INFO] [stdout] 354 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 350 ~ match tree.children(parent) { Some(children) => { [INFO] [stdout] 351 | if let Some(last_child) = children.last() { [INFO] [stdout] 352 | *self = Self::Msg(last_child.clone()); [INFO] [stdout] 353 | } [INFO] [stdout] 354 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:394:20 [INFO] [stdout] | [INFO] [stdout] 394 | if let Some(last_root_id) = store.last_root_id().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] --> cove/src/ui/chat/cursor.rs:399:17 [INFO] [stdout] | [INFO] [stdout] 399 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 394 ~ match store.last_root_id().await? { Some(last_root_id) => { [INFO] [stdout] 395 | let tree = store.tree(&last_root_id).await?; [INFO] [stdout] ... [INFO] [stdout] 398 | *self = Self::Msg(id); [INFO] [stdout] 399 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:480:27 [INFO] [stdout] | [INFO] [stdout] 480 | } else if let Some(parent) = tree.parent(id) { [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] --> cove/src/ui/chat/cursor.rs:487:17 [INFO] [stdout] | [INFO] [stdout] 487 | } 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] 480 ~ } else { match tree.parent(id) { Some(parent) => { [INFO] [stdout] 481 | // A reply to a message without younger siblings should be [INFO] [stdout] ... [INFO] [stdout] 486 | parent [INFO] [stdout] 487 ~ } _ => { [INFO] [stdout] 488 | // When replying to a top-level message, it makes sense to [INFO] [stdout] 489 | // avoid creating unnecessary new threads. [INFO] [stdout] 490 | id.clone() [INFO] [stdout] 491 ~ }}})) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/cursor.rs:516:27 [INFO] [stdout] | [INFO] [stdout] 516 | } else if let Some(parent) = tree.parent(id) { [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] --> cove/src/ui/chat/cursor.rs:519:17 [INFO] [stdout] | [INFO] [stdout] 519 | } 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] 516 ~ } else { match tree.parent(id) { Some(parent) => { [INFO] [stdout] 517 | // The opposite of replying normally [INFO] [stdout] 518 | parent [INFO] [stdout] 519 ~ } _ => { [INFO] [stdout] 520 | // The same as replying normally, still to avoid creating [INFO] [stdout] 521 | // unnecessary new threads [INFO] [stdout] 522 | id.clone() [INFO] [stdout] 523 ~ }}})) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree.rs:176:20 [INFO] [stdout] | [INFO] [stdout] 176 | if let Some(msg) = self.store.tree(id).await?.msg(id) { [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] --> cove/src/ui/chat/tree.rs:178:17 [INFO] [stdout] | [INFO] [stdout] 178 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 176 ~ match self.store.tree(id).await?.msg(id) { Some(msg) => { [INFO] [stdout] 177 | self.store.set_seen(id, !msg.seen()).await?; [INFO] [stdout] 178 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree.rs:378:12 [INFO] [stdout] | [INFO] [stdout] 378 | if let Cursor::Pseudo { .. } = self.last_cursor { [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] --> cove/src/ui/chat/tree.rs:380:9 [INFO] [stdout] | [INFO] [stdout] 380 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 378 ~ match self.last_cursor { Cursor::Pseudo { .. } => { [INFO] [stdout] 379 | self.last_cursor = Cursor::Msg(id.clone()); [INFO] [stdout] 380 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:306:23 [INFO] [stdout] | [INFO] [stdout] 306 | while let Some(parent_id) = tree.parent(&id) { [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] --> cove/src/ui/chat/tree/renderer.rs:309:17 [INFO] [stdout] | [INFO] [stdout] 309 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator, Block::Id>>)>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:429:10 [INFO] [stdout] | [INFO] [stdout] 429 | ) -> impl Iterator, Block>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:99:6 [INFO] [stdout] | [INFO] [stdout] 99 | impl<'a, M, S> TreeRenderer<'a, M, S> [INFO] [stdout] | ^^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 429 | ) -> impl Iterator, Block>)> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:468:31 [INFO] [stdout] | [INFO] [stdout] 468 | let prev_root_id = if let Some(top_root_id) = &self.top_root_id { [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] --> cove/src/ui/chat/tree/renderer.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | } 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] 468 ~ let prev_root_id = match &self.top_root_id { Some(top_root_id) => { [INFO] [stdout] 469 | self.store.prev_root_id(top_root_id).await? [INFO] [stdout] 470 ~ } _ => { [INFO] [stdout] 471 | self.store.last_root_id().await? [INFO] [stdout] 472 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:474:12 [INFO] [stdout] | [INFO] [stdout] 474 | if let Some(prev_root_id) = prev_root_id { [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] --> cove/src/ui/chat/tree/renderer.rs:479:9 [INFO] [stdout] | [INFO] [stdout] 479 | } 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] 474 ~ match prev_root_id { Some(prev_root_id) => { [INFO] [stdout] 475 | let tree = self.store.tree(&prev_root_id).await?; [INFO] [stdout] ... [INFO] [stdout] 478 | self.top_root_id = Some(prev_root_id); [INFO] [stdout] 479 ~ } _ => { [INFO] [stdout] 480 | self.blocks.end_top(); [INFO] [stdout] 481 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/chat/tree/renderer.rs:493:12 [INFO] [stdout] | [INFO] [stdout] 493 | if let Some(next_root_id) = next_root_id { [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] --> cove/src/ui/chat/tree/renderer.rs:498:9 [INFO] [stdout] | [INFO] [stdout] 498 | } 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] 493 ~ match next_root_id { Some(next_root_id) => { [INFO] [stdout] 494 | let tree = self.store.tree(&next_root_id).await?; [INFO] [stdout] ... [INFO] [stdout] 497 | self.bottom_root_id = Some(next_root_id); [INFO] [stdout] 498 ~ } _ => { [INFO] [stdout] 499 | let blocks = self.layout_bottom(); [INFO] [stdout] ... [INFO] [stdout] 502 | self.bottom_root_id = None; [INFO] [stdout] 503 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/account.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | fn widget(&self) -> impl Widget { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/account.rs:69:15 [INFO] [stdout] | [INFO] [stdout] 69 | fn widget(&self) -> impl Widget { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 69 | fn widget(&self) -> impl Widget + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:94:49 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn session_widget(session: &SessionInfo) -> impl Widget { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:94:32 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn session_widget(session: &SessionInfo) -> impl Widget { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 94 | pub fn session_widget(session: &SessionInfo) -> impl Widget + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:111:41 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn message_widget(msg: &Message) -> impl Widget { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/inspect.rs:111:28 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn message_widget(msg: &Message) -> impl Widget { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 111 | pub fn message_widget(msg: &Message) -> impl Widget + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/links.rs:104:16 [INFO] [stdout] | [INFO] [stdout] 104 | if let Err(error) = open::that(&link) { [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] --> cove/src/ui/euph/links.rs:106:13 [INFO] [stdout] | [INFO] [stdout] 106 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 104 ~ match open::that(&link) { Err(error) => { [INFO] [stdout] 105 | return PopupResult::ErrorOpeningLink { link, error }; [INFO] [stdout] 106 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/nick_list.rs:17:6 [INFO] [stdout] | [INFO] [stdout] 17 | ) -> impl Widget + 'a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/nick_list.rs:15:13 [INFO] [stdout] | [INFO] [stdout] 15 | joined: &Joined, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 17 | ) -> impl Widget + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/popup.rs:15:64 [INFO] [stdout] | [INFO] [stdout] 15 | fn server_error_widget(description: &str, reason: &str) -> impl Widget { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/popup.rs:15:41 [INFO] [stdout] | [INFO] [stdout] 15 | fn server_error_widget(description: &str, reason: &str) -> impl Widget { [INFO] [stdout] | ^ ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 15 | fn server_error_widget(description: &str, reason: &str) -> impl Widget + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/euph/popup.rs:26:29 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn widget(&self) -> impl Widget { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/euph/popup.rs:26:19 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn widget(&self) -> impl Widget { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 26 | pub fn widget(&self) -> impl Widget + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(room) = &self.room { [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] --> cove/src/ui/euph/room.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | } 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] 128 ~ match &self.room { Some(room) => { [INFO] [stdout] 129 | Some(room.state()) [INFO] [stdout] 130 ~ } _ => { [INFO] [stdout] 131 | None [INFO] [stdout] 132 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 144 | if let Some(room) = &self.room { [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] --> cove/src/ui/euph/room.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 144 ~ match &self.room { Some(room) => { [INFO] [stdout] 145 | if room.stopped() { [INFO] [stdout] 146 | self.room = None; [INFO] [stdout] 147 | } [INFO] [stdout] 148 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:156:12 [INFO] [stdout] | [INFO] [stdout] 156 | if let Some(id_rx) = &mut self.last_msg_sent { [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] --> cove/src/ui/euph/room.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 156 ~ match &mut self.last_msg_sent { Some(id_rx) => { [INFO] [stdout] 157 | match id_rx.try_recv() { [INFO] [stdout] ... [INFO] [stdout] 167 | } [INFO] [stdout] 168 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:345:20 [INFO] [stdout] | [INFO] [stdout] 345 | if let Some(room) = &self.room { [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] --> cove/src/ui/euph/room.rs:351:17 [INFO] [stdout] | [INFO] [stdout] 351 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 345 ~ match &self.room { Some(room) => { [INFO] [stdout] 346 | match room.send(parent, content) { [INFO] [stdout] ... [INFO] [stdout] 350 | return true; [INFO] [stdout] 351 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:415:20 [INFO] [stdout] | [INFO] [stdout] 415 | if let Some(msg) = logging_unwrap!(self.vault().full_msg(*id).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] --> cove/src/ui/euph/room.rs:417:17 [INFO] [stdout] | [INFO] [stdout] 417 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:424:20 [INFO] [stdout] | [INFO] [stdout] 424 | if let Some(msg) = logging_unwrap!(self.vault().msg(*id).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] --> cove/src/ui/euph/room.rs:426:17 [INFO] [stdout] | [INFO] [stdout] 426 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/euph/room.rs:536:26 [INFO] [stdout] | [INFO] [stdout] 536 | let handled = if let Event::Packet(_, packet, _) = &event { [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] --> cove/src/ui/euph/room.rs:541:9 [INFO] [stdout] | [INFO] [stdout] 541 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 536 ~ let handled = match &event { Event::Packet(_, packet, _) => { [INFO] [stdout] 537 | match &packet.content { [INFO] [stdout] ... [INFO] [stdout] 540 | } [INFO] [stdout] 541 ~ } _ => { [INFO] [stdout] 542 | // The room state changes, which always means a redraw. [INFO] [stdout] 543 | true [INFO] [stdout] 544 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Widget + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> cove/src/ui/key_bindings.rs:72:6 [INFO] [stdout] | [INFO] [stdout] 72 | ) -> impl Widget + 'a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> cove/src/ui/key_bindings.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | config: &Config, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 72 | ) -> impl Widget + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/rooms.rs:179:12 [INFO] [stdout] | [INFO] [stdout] 179 | if let Some(room) = self.euph_rooms.get_mut(room) { [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] --> cove/src/ui/rooms.rs:181:9 [INFO] [stdout] | [INFO] [stdout] 181 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 179 ~ match self.euph_rooms.get_mut(room) { Some(room) => { [INFO] [stdout] 180 | room.disconnect(); [INFO] [stdout] 181 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/rooms.rs:558:20 [INFO] [stdout] | [INFO] [stdout] 558 | if let Some(room) = self.euph_rooms.get_mut(name) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> cove/src/ui/rooms.rs:566:17 [INFO] [stdout] | [INFO] [stdout] 566 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 558 ~ match self.euph_rooms.get_mut(name) { Some(room) => { [INFO] [stdout] 559 | if room.handle_input_event(event, keys).await { [INFO] [stdout] ... [INFO] [stdout] 565 | } [INFO] [stdout] 566 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 128 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 110 ~ match &self.cursor { Some(cursor) => { [INFO] [stdout] 111 | let first_visible_line_idx = self.offset; [INFO] [stdout] ... [INFO] [stdout] 127 | } [INFO] [stdout] 128 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:125:16 [INFO] [stdout] | [INFO] [stdout] 125 | if let Some(new_cursor) = new_cursor { [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] --> cove/src/ui/widgets/list.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | } [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 new_cursor { Some(new_cursor) => { [INFO] [stdout] 126 | self.cursor = Some(new_cursor); [INFO] [stdout] 127 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 137 | if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 137 ~ match &self.cursor { Some(cursor) => { [INFO] [stdout] 138 | // As long as height > 0, min <= max is true [INFO] [stdout] ... [INFO] [stdout] 141 | self.offset = self.offset.clamp(min, max); [INFO] [stdout] 142 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 192 | if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 192 ~ match &self.cursor { Some(cursor) => { [INFO] [stdout] 193 | let height: usize = self.last_height.into(); [INFO] [stdout] 194 | self.scroll_to(cursor.idx.saturating_sub(height / 2)); [INFO] [stdout] 195 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:200:12 [INFO] [stdout] | [INFO] [stdout] 200 | if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:204:9 [INFO] [stdout] | [INFO] [stdout] 204 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 200 ~ match &self.cursor { Some(cursor) => { [INFO] [stdout] 201 | if let Some(new_cursor) = self.selectable_before_index(cursor.idx) { [INFO] [stdout] 202 | self.move_cursor_to(new_cursor); [INFO] [stdout] 203 | } [INFO] [stdout] 204 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:201:16 [INFO] [stdout] | [INFO] [stdout] 201 | if let Some(new_cursor) = self.selectable_before_index(cursor.idx) { [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] --> cove/src/ui/widgets/list.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 201 ~ match self.selectable_before_index(cursor.idx) { Some(new_cursor) => { [INFO] [stdout] 202 | self.move_cursor_to(new_cursor); [INFO] [stdout] 203 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:209:12 [INFO] [stdout] | [INFO] [stdout] 209 | if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 209 ~ match &self.cursor { Some(cursor) => { [INFO] [stdout] 210 | if let Some(new_cursor) = self.selectable_after_index(cursor.idx) { [INFO] [stdout] 211 | self.move_cursor_to(new_cursor); [INFO] [stdout] 212 | } [INFO] [stdout] 213 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:210:16 [INFO] [stdout] | [INFO] [stdout] 210 | if let Some(new_cursor) = self.selectable_after_index(cursor.idx) { [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] --> cove/src/ui/widgets/list.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 210 ~ match self.selectable_after_index(cursor.idx) { Some(new_cursor) => { [INFO] [stdout] 211 | self.move_cursor_to(new_cursor); [INFO] [stdout] 212 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:218:12 [INFO] [stdout] | [INFO] [stdout] 218 | if let Some(new_cursor) = self.first_selectable() { [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] --> cove/src/ui/widgets/list.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 218 ~ match self.first_selectable() { Some(new_cursor) => { [INFO] [stdout] 219 | self.move_cursor_to(new_cursor); [INFO] [stdout] 220 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:225:12 [INFO] [stdout] | [INFO] [stdout] 225 | if let Some(new_cursor) = self.last_selectable() { [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] --> cove/src/ui/widgets/list.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 225 ~ match self.last_selectable() { Some(new_cursor) => { [INFO] [stdout] 226 | self.move_cursor_to(new_cursor); [INFO] [stdout] 227 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:243:29 [INFO] [stdout] | [INFO] [stdout] 243 | let new_cursor = if let Some(cursor) = &self.cursor { [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] --> cove/src/ui/widgets/list.rs:247:9 [INFO] [stdout] | [INFO] [stdout] 247 | } 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] 243 ~ let new_cursor = match &self.cursor { Some(cursor) => { [INFO] [stdout] 244 | self.selectable_of_id(&cursor.id) [INFO] [stdout] 245 | .or_else(|| self.selectable_at_or_before_index(cursor.idx)) [INFO] [stdout] 246 | .or_else(|| self.selectable_at_or_after_index(cursor.idx)) [INFO] [stdout] 247 ~ } _ => { [INFO] [stdout] 248 | self.first_selectable() [INFO] [stdout] 249 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> cove/src/ui/widgets/list.rs:251:12 [INFO] [stdout] | [INFO] [stdout] 251 | if let Some(new_cursor) = new_cursor { [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] --> cove/src/ui/widgets/list.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | } 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] 251 ~ match new_cursor { Some(new_cursor) => { [INFO] [stdout] 252 | self.move_cursor_to(new_cursor); [INFO] [stdout] 253 ~ } _ => { [INFO] [stdout] 254 | self.cursor = None; [INFO] [stdout] 255 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 70 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 07s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling cove-macro v0.8.3 (/tmp/fixit/cove-macro) [INFO] [stderr] Checking cove-input v0.8.3 (/tmp/fixit/cove-input) [INFO] [stderr] Checking cove-config v0.8.3 (/tmp/fixit/cove-config) [INFO] [stderr] Checking cove v0.8.3 (/tmp/fixit/cove) [INFO] [stdout] error[E0502]: cannot borrow `self.chat` as mutable because it is also borrowed as immutable [INFO] [stdout] --> cove/src/ui/euph/room.rs:217:17 [INFO] [stdout] | [INFO] [stdout] 214 | let status_widget = self.status_widget(room_state).await; [INFO] [stdout] | ------------------------------ [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 217 | &mut self.chat, [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.nick_list` as mutable because it is also borrowed as immutable [INFO] [stdout] --> cove/src/ui/euph/room.rs:219:17 [INFO] [stdout] | [INFO] [stdout] 214 | let status_widget = self.status_widget(room_state).await; [INFO] [stdout] | ------------------------------ [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 219 | &mut self.nick_list, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.chat` as mutable because it is also borrowed as immutable [INFO] [stdout] --> cove/src/ui/euph/room.rs:223:52 [INFO] [stdout] | [INFO] [stdout] 214 | let status_widget = self.status_widget(room_state).await; [INFO] [stdout] | ------------------------------ [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 223 | None => Self::widget_without_nick_list(&mut self.chat, status_widget), [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.state` as mutable because it is also borrowed as immutable [INFO] [stdout] --> cove/src/ui/euph/room.rs:228:15 [INFO] [stdout] | [INFO] [stdout] 214 | let status_widget = self.status_widget(room_state).await; [INFO] [stdout] | ------------------------------ [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 228 | match &mut self.state { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> cove/src/ui/euph/room.rs:214:29 [INFO] [stdout] | [INFO] [stdout] 210 | pub async fn widget(&mut self) -> BoxedAsync<'_, UiError> { [INFO] [stdout] | --------- [INFO] [stdout] | | [INFO] [stdout] | `self` is a reference that is only valid in the method body [INFO] [stdout] | let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 214 | let status_widget = self.status_widget(room_state).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `self` escapes the method body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.chat` as mutable because it is also borrowed as immutable [INFO] [stdout] --> cove/src/ui/euph/room.rs:217:17 [INFO] [stdout] | [INFO] [stdout] 214 | let status_widget = self.status_widget(room_state).await; [INFO] [stdout] | ------------------------------ [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 217 | &mut self.chat, [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.nick_list` as mutable because it is also borrowed as immutable [INFO] [stdout] --> cove/src/ui/euph/room.rs:219:17 [INFO] [stdout] | [INFO] [stdout] 214 | let status_widget = self.status_widget(room_state).await; [INFO] [stdout] | ------------------------------ [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 219 | &mut self.nick_list, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.chat` as mutable because it is also borrowed as immutable [INFO] [stdout] --> cove/src/ui/euph/room.rs:223:52 [INFO] [stdout] | [INFO] [stdout] 214 | let status_widget = self.status_widget(room_state).await; [INFO] [stdout] | ------------------------------ [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 223 | None => Self::widget_without_nick_list(&mut self.chat, status_widget), [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.state` as mutable because it is also borrowed as immutable [INFO] [stdout] --> cove/src/ui/euph/room.rs:228:15 [INFO] [stdout] | [INFO] [stdout] 214 | let status_widget = self.status_widget(room_state).await; [INFO] [stdout] | ------------------------------ [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `*self` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 228 | match &mut self.state { [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> cove/src/ui/euph/room.rs:214:29 [INFO] [stdout] | [INFO] [stdout] 210 | pub async fn widget(&mut self) -> BoxedAsync<'_, UiError> { [INFO] [stdout] | --------- [INFO] [stdout] | | [INFO] [stdout] | `self` is a reference that is only valid in the method body [INFO] [stdout] | let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 214 | let status_widget = self.status_widget(room_state).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `self` escapes the method body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*frame` as mutable more than once at a time [INFO] [stdout] --> cove/src/ui/chat/tree.rs:464:13 [INFO] [stdout] | [INFO] [stdout] 449 | frame.widthdb(), [INFO] [stdout] | ----- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 462 | for (range, block) in renderer.into_visible_blocks() { [INFO] [stdout] | ------------------------------ a temporary with access to the first borrow is created here ... [INFO] [stdout] 463 | let widget = block.into_widget(); [INFO] [stdout] 464 | frame.push(Pos::new(0, range.top), widget.size()); [INFO] [stdout] | ^^^^^ second mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 467 | } [INFO] [stdout] | - ... and the first borrow might be used here, when that temporary is dropped and runs the destructor for type `impl Iterator, Block::Id>>)>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*frame` as mutable more than once at a time [INFO] [stdout] --> cove/src/ui/chat/tree.rs:465:34 [INFO] [stdout] | [INFO] [stdout] 449 | frame.widthdb(), [INFO] [stdout] | ----- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 462 | for (range, block) in renderer.into_visible_blocks() { [INFO] [stdout] | ------------------------------ a temporary with access to the first borrow is created here ... [INFO] [stdout] ... [INFO] [stdout] 465 | widget.desync().draw(frame).await.infallible(); [INFO] [stdout] | ^^^^^ second mutable borrow occurs here [INFO] [stdout] 466 | frame.pop(); [INFO] [stdout] 467 | } [INFO] [stdout] | - ... and the first borrow might be used here, when that temporary is dropped and runs the destructor for type `impl Iterator, Block::Id>>)>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*frame` as mutable more than once at a time [INFO] [stdout] --> cove/src/ui/chat/tree.rs:466:13 [INFO] [stdout] | [INFO] [stdout] 449 | frame.widthdb(), [INFO] [stdout] | ----- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 462 | for (range, block) in renderer.into_visible_blocks() { [INFO] [stdout] | ------------------------------ first borrow later used here [INFO] [stdout] ... [INFO] [stdout] 466 | frame.pop(); [INFO] [stdout] | ^^^^^ second mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*frame` as mutable more than once at a time [INFO] [stdout] --> cove/src/ui/chat/tree.rs:464:13 [INFO] [stdout] | [INFO] [stdout] 449 | frame.widthdb(), [INFO] [stdout] | ----- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 462 | for (range, block) in renderer.into_visible_blocks() { [INFO] [stdout] | ------------------------------ a temporary with access to the first borrow is created here ... [INFO] [stdout] 463 | let widget = block.into_widget(); [INFO] [stdout] 464 | frame.push(Pos::new(0, range.top), widget.size()); [INFO] [stdout] | ^^^^^ second mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 467 | } [INFO] [stdout] | - ... and the first borrow might be used here, when that temporary is dropped and runs the destructor for type `impl Iterator, Block::Id>>)>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*frame` as mutable more than once at a time [INFO] [stdout] --> cove/src/ui/chat/tree.rs:465:34 [INFO] [stdout] | [INFO] [stdout] 449 | frame.widthdb(), [INFO] [stdout] | ----- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 462 | for (range, block) in renderer.into_visible_blocks() { [INFO] [stdout] | ------------------------------ a temporary with access to the first borrow is created here ... [INFO] [stdout] ... [INFO] [stdout] 465 | widget.desync().draw(frame).await.infallible(); [INFO] [stdout] | ^^^^^ second mutable borrow occurs here [INFO] [stdout] 466 | frame.pop(); [INFO] [stdout] 467 | } [INFO] [stdout] | - ... and the first borrow might be used here, when that temporary is dropped and runs the destructor for type `impl Iterator, Block::Id>>)>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*frame` as mutable more than once at a time [INFO] [stdout] --> cove/src/ui/chat/tree.rs:466:13 [INFO] [stdout] | [INFO] [stdout] 449 | frame.widthdb(), [INFO] [stdout] | ----- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 462 | for (range, block) in renderer.into_visible_blocks() { [INFO] [stdout] | ------------------------------ first borrow later used here [INFO] [stdout] ... [INFO] [stdout] 466 | frame.pop(); [INFO] [stdout] | ^^^^^ second mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 8 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0499, E0502, E0521. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0499`. [INFO] [stdout] [INFO] [stderr] error: could not compile `cove` (bin "cove" test) due to 9 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 8 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0499, E0502, E0521. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0499`. [INFO] [stdout] [INFO] [stderr] error: could not compile `cove` (bin "cove") due to 9 previous errors [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "9c3e600718605e7ab455ce75509f36f2ea330ca9ca2befe2ea9b9139a5938df4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9c3e600718605e7ab455ce75509f36f2ea330ca9ca2befe2ea9b9139a5938df4", kill_on_drop: false }` [INFO] [stdout] 9c3e600718605e7ab455ce75509f36f2ea330ca9ca2befe2ea9b9139a5938df4