[INFO] fetching crate ncspot 1.1.2... [INFO] checking ncspot-1.1.2 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate ncspot 1.1.2 into /workspace/builds/worker-5-tc2/source [INFO] validating manifest of crates.io crate ncspot 1.1.2 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] removed /workspace/builds/worker-5-tc2/source/.cargo/config.toml [INFO] removed /workspace/builds/worker-5-tc2/source/rust-toolchain.toml [INFO] started tweaking crates.io crate ncspot 1.1.2 [INFO] finished tweaking crates.io crate ncspot 1.1.2 [INFO] tweaked toml for crates.io crate ncspot 1.1.2 written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate crates.io crate ncspot 1.1.2 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9ea0571204ba4432f52a93bd8757fde338c7fb7f6bb8d95d452ed9a0822838c2 [INFO] running `Command { std: "docker" "start" "-a" "9ea0571204ba4432f52a93bd8757fde338c7fb7f6bb8d95d452ed9a0822838c2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9ea0571204ba4432f52a93bd8757fde338c7fb7f6bb8d95d452ed9a0822838c2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9ea0571204ba4432f52a93bd8757fde338c7fb7f6bb8d95d452ed9a0822838c2", kill_on_drop: false }` [INFO] [stdout] 9ea0571204ba4432f52a93bd8757fde338c7fb7f6bb8d95d452ed9a0822838c2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] caa13f2f59cc6a2d3e13f0e46dec63e49cb08644c7192a1519aa5ddcc9dafc7c [INFO] running `Command { std: "docker" "start" "-a" "caa13f2f59cc6a2d3e13f0e46dec63e49cb08644c7192a1519aa5ddcc9dafc7c", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Fixed Cargo.toml (8 fixes) [INFO] [stderr] Compiling cc v1.1.5 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling libm v0.2.8 [INFO] [stderr] Checking indexmap v2.2.6 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking simd-adler32 v0.3.7 [INFO] [stderr] Checking fixedbitset v0.4.2 [INFO] [stderr] Checking bytes v1.6.1 [INFO] [stderr] Checking gimli v0.29.0 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Compiling serde v1.0.204 [INFO] [stderr] Compiling syn v2.0.71 [INFO] [stderr] Checking object v0.36.1 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking thread-id v4.2.1 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking miniz_oxide v0.7.4 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Compiling serde_json v1.0.120 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling protobuf v2.28.0 [INFO] [stderr] Checking parking v2.2.0 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Compiling thiserror v1.0.62 [INFO] [stderr] Checking atomic-waker v1.1.2 [INFO] [stderr] Checking petgraph v0.6.5 [INFO] [stderr] Compiling iana-time-zone v0.1.60 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Checking event-listener v5.3.1 [INFO] [stderr] Compiling semver v1.0.23 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Compiling openssl v0.10.64 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Checking num_threads v0.1.7 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling chrono v0.4.38 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling backtrace v0.3.73 [INFO] [stderr] Compiling openssl-sys v0.9.102 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Checking cipher v0.2.5 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking event-listener-strategy v0.5.2 [INFO] [stderr] Checking libloading v0.8.4 [INFO] [stderr] Compiling wayland-sys v0.31.4 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling native-tls v0.2.12 [INFO] [stderr] Compiling toml_datetime v0.6.6 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Compiling wayland-backend v0.3.6 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Compiling toml_edit v0.21.1 [INFO] [stderr] Checking http v1.1.0 [INFO] [stderr] Compiling libpulse-sys v1.21.0 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Checking subtle v2.4.1 [INFO] [stderr] Compiling glob v0.3.1 [INFO] [stderr] Checking crypto-mac v0.11.1 [INFO] [stderr] Checking aes-soft v0.6.4 [INFO] [stderr] Checking addr2line v0.22.0 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking headers-core v0.2.0 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Checking futures-lite v2.3.0 [INFO] [stderr] Compiling cookie v0.18.1 [INFO] [stderr] Compiling priority-queue v1.4.0 [INFO] [stderr] Compiling quick-xml v0.34.0 [INFO] [stderr] Checking scoped-tls v1.0.1 [INFO] [stderr] Compiling wayland-client v0.31.5 [INFO] [stderr] Checking downcast-rs v1.2.1 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking headers v0.3.9 [INFO] [stderr] Checking hmac v0.11.0 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking async-task v4.7.1 [INFO] [stderr] Compiling vergen v3.2.0 [INFO] [stderr] Compiling cfg_aliases v0.1.1 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Checking sha-1 v0.9.8 [INFO] [stderr] Checking pbkdf2 v0.8.0 [INFO] [stderr] Checking aes v0.6.0 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking async-lock v3.4.0 [INFO] [stderr] Checking async-channel v2.3.1 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking piper v0.2.3 [INFO] [stderr] Compiling librespot-core v0.4.2 [INFO] [stderr] Compiling wayland-scanner v0.31.4 [INFO] [stderr] Checking shannon v0.2.0 [INFO] [stderr] Checking uuid v1.10.0 [INFO] [stderr] Compiling libpulse-simple-sys v1.21.1 [INFO] [stderr] Compiling protobuf-codegen v2.28.0 [INFO] [stderr] Compiling proc-macro-crate v3.1.0 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking endi v1.1.0 [INFO] [stderr] Checking utf8parse v0.2.2 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Checking tower-layer v0.3.2 [INFO] [stderr] Checking anstyle-parse v0.2.4 [INFO] [stderr] Checking num v0.4.3 [INFO] [stderr] Checking owning_ref v0.4.1 [INFO] [stderr] Checking flate2 v1.0.30 [INFO] [stderr] Checking blocking v1.6.1 [INFO] [stderr] Checking num-bigint v0.2.6 [INFO] [stderr] Checking signal-hook v0.3.17 [INFO] [stderr] Checking ctr v0.6.0 [INFO] [stderr] Checking socks v0.3.4 [INFO] [stderr] Checking crossbeam-channel v0.5.13 [INFO] [stderr] Checking fdeflate v0.3.4 [INFO] [stderr] Checking anstyle-query v1.1.0 [INFO] [stderr] Checking xi-unicode v0.3.0 [INFO] [stderr] Checking is_terminal_polyfill v1.70.0 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Compiling zvariant_utils v2.0.0 [INFO] [stderr] Checking colorchoice v1.0.1 [INFO] [stderr] Checking anstyle v1.0.7 [INFO] [stderr] Compiling protobuf-codegen-pure v2.28.0 [INFO] [stderr] Checking png v0.17.13 [INFO] [stderr] Checking tree_magic_mini v3.1.5 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Checking aes-ctr v0.6.0 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking anstream v0.6.14 [INFO] [stderr] Checking async-fs v2.1.2 [INFO] [stderr] Checking num-rational v0.2.4 [INFO] [stderr] Checking num-complex v0.2.4 [INFO] [stderr] Compiling num-derive v0.3.3 [INFO] [stderr] Checking async-executor v1.13.0 [INFO] [stderr] Checking async-broadcast v0.7.1 [INFO] [stderr] Checking ogg v0.8.0 [INFO] [stderr] Checking ordered-stream v0.2.0 [INFO] [stderr] Checking xdg-home v1.2.0 [INFO] [stderr] Checking tempfile v3.10.1 [INFO] [stderr] Checking os_pipe v1.2.0 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Checking strsim v0.11.1 [INFO] [stderr] Checking winnow v0.6.13 [INFO] [stderr] Checking x11rb-protocol v0.13.1 [INFO] [stderr] Checking rustls-pki-types v1.7.0 [INFO] [stderr] Checking clap_lex v0.7.1 [INFO] [stderr] Checking bytemuck v1.16.1 [INFO] [stderr] Checking dirs-next v1.0.2 [INFO] [stderr] Checking lewton v0.10.2 [INFO] [stderr] Checking num v0.2.1 [INFO] [stderr] Checking rustls-pemfile v2.1.2 [INFO] [stderr] Checking crossterm v0.25.0 [INFO] [stderr] Checking clap_builder v4.5.9 [INFO] [stderr] Checking rand_distr v0.4.3 [INFO] [stderr] Checking image v0.25.1 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking rspotify-macros v0.13.2 [INFO] [stderr] Compiling ncspot v1.1.2 (/tmp/fixit) [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Checking half v1.8.3 [INFO] [stderr] Checking shell-words v1.1.0 [INFO] [stderr] Checking platform-dirs v0.3.0 [INFO] [stderr] Checking fern v0.6.2 [INFO] [stderr] Checking libpulse-binding v2.28.1 [INFO] [stderr] Compiling serde_derive v1.0.204 [INFO] [stderr] Compiling tokio-macros v2.3.0 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling thiserror-impl v1.0.62 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling pin-project-internal v1.1.5 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Compiling librespot-protocol v0.4.2 [INFO] [stderr] Compiling enumflags2_derive v0.7.10 [INFO] [stderr] Compiling enum-map-derive v0.17.0 [INFO] [stderr] Compiling zvariant_derive v4.1.2 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Compiling enumset_derive v0.8.1 [INFO] [stderr] Checking tokio v1.38.1 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Compiling async-trait v0.1.81 [INFO] [stderr] Checking wayland-protocols v0.31.2 [INFO] [stderr] Checking enum-map v2.7.3 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling derive-new v0.6.0 [INFO] [stderr] Compiling serde_repr v0.1.19 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Compiling zbus_macros v4.3.1 [INFO] [stderr] Checking enumset v1.1.3 [INFO] [stderr] Checking pin-project v1.1.5 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Compiling zerocopy-derive v0.6.6 [INFO] [stderr] Compiling maybe-async v0.2.10 [INFO] [stderr] Checking libpulse-simple-binding v2.28.1 [INFO] [stderr] Checking wayland-protocols-wlr v0.2.0 [INFO] [stderr] Checking polling v3.7.2 [INFO] [stderr] Checking regex v1.10.5 [INFO] [stderr] Checking cursive_core v0.3.7 [INFO] [stderr] Checking clap v4.5.9 [INFO] [stderr] Checking async-io v2.3.3 [INFO] [stderr] Checking parse_duration v2.1.1 [INFO] [stderr] Checking x11rb v0.13.1 [INFO] [stderr] Checking zerocopy v0.6.6 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking wl-clipboard-rs v0.8.1 [INFO] [stderr] Checking arboard v3.4.0 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking http-body-util v0.1.2 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking cursive_buffered_backend v0.6.1 [INFO] [stderr] Checking cursive v0.20.0 [INFO] [stderr] Checking enumflags2 v0.7.10 [INFO] [stderr] Checking serde_spanned v0.6.6 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking serde_cbor v0.11.2 [INFO] [stderr] Checking tokio-util v0.7.11 [INFO] [stderr] Checking hyper v0.14.30 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking toml_edit v0.22.15 [INFO] [stderr] Checking zvariant v4.1.2 [INFO] [stderr] Checking tokio-stream v0.1.15 [INFO] [stderr] Checking h2 v0.4.5 [INFO] [stderr] Checking cookie_store v0.21.0 [INFO] [stderr] Checking ureq v2.10.0 [INFO] [stderr] Checking rspotify-model v0.13.2 [INFO] [stderr] Checking rspotify-http v0.13.2 [INFO] [stderr] Checking toml v0.8.14 [INFO] [stderr] Checking hyper-proxy v0.9.1 [INFO] [stderr] Checking zbus_names v3.0.0 [INFO] [stderr] Checking zbus v4.3.1 [INFO] [stderr] Checking librespot-audio v0.4.2 [INFO] [stderr] Checking librespot-metadata v0.4.2 [INFO] [stderr] Checking librespot-playback v0.4.2 [INFO] [stderr] Checking hyper v1.4.1 [INFO] [stderr] Checking hyper-util v0.1.6 [INFO] [stderr] Checking rspotify v0.13.2 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.4 [INFO] [stderr] Checking notify-rust v4.11.0 [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `ncspot` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/theme.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/theme.rs:23:7 [INFO] [stderr] | [INFO] [stderr] 23 | ( $theme: expr_2021, $member: ident, $default: expr_2021 ) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/theme.rs:23:42 [INFO] [stderr] | [INFO] [stderr] 23 | ( $theme: expr_2021, $member: ident, $default: 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 2 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/theme.rs:23:15 [INFO] [stdout] | [INFO] [stdout] 23 | ( $theme: expr, $member: ident, $default: 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] 23 | ( $theme: expr_2021, $member: ident, $default: expr ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/theme.rs:23:47 [INFO] [stdout] | [INFO] [stdout] 23 | ( $theme: expr, $member: ident, $default: 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] 23 | ( $theme: expr, $member: ident, $default: expr_2021 ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | env::set_var("PULSE_PROP_application.name", "ncspot"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #27970 [INFO] [stdout] = note: `--force-warn deprecated-safe-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 206 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 207 ~ unsafe { env::set_var("PULSE_PROP_application.name", "ncspot") }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | env::set_var("PULSE_PROP_stream.description", "ncurses Spotify client"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #27970 [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 207 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 208 ~ unsafe { env::set_var("PULSE_PROP_stream.description", "ncurses Spotify client") }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | env::set_var("PULSE_PROP_media.role", "music"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #27970 [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 208 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 209 ~ unsafe { env::set_var("PULSE_PROP_media.role", "music") }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/application.rs:145:22 [INFO] [stdout] | [INFO] [stdout] 145 | let ipc = if let Ok(runtime_directory) = utils::create_runtime_directory() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/application.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | } 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] 145 ~ let ipc = match utils::create_runtime_directory() { Ok(runtime_directory) => { [INFO] [stdout] 146 | Some( [INFO] [stdout] ... [INFO] [stdout] 153 | ) [INFO] [stdout] 154 ~ } _ => { [INFO] [stdout] 155 | error!("failed to create IPC socket: no suitable user runtime directory found"); [INFO] [stdout] 156 | None [INFO] [stdout] 157 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/application.rs:233:24 [INFO] [stdout] | [INFO] [stdout] 233 | if let Some(data) = self.cursive.user_data::().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/application.rs:235:21 [INFO] [stdout] | [INFO] [stdout] 235 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 233 ~ match self.cursive.user_data::().cloned() { Some(data) => { [INFO] [stdout] 234 | data.cmd.handle(&mut self.cursive, Command::Quit); [INFO] [stdout] 235 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/application.rs:271:32 [INFO] [stdout] | [INFO] [stdout] 271 | ... if let Some(data) = self.cursive.user_data::().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/application.rs:276:29 [INFO] [stdout] | [INFO] [stdout] 276 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 271 ~ match self.cursive.user_data::().cloned() { Some(data) => { [INFO] [stdout] 272 | for cmd in commands { [INFO] [stdout] ... [INFO] [stdout] 275 | } [INFO] [stdout] 276 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/authentication.rs:48:11 [INFO] [stdout] | [INFO] [stdout] 48 | while let Err(error) = Spotify::test_credentials(configuration, credentials.clone()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/authentication.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/commands.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | if let Some(results) = view { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:261:21 [INFO] [stdout] | [INFO] [stdout] 261 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 259 ~ match view { Some(results) => { [INFO] [stdout] 260 | v.push_view(results.into_boxed_view_ext()) [INFO] [stdout] 261 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/commands.rs:335:24 [INFO] [stdout] | [INFO] [stdout] 335 | let local = if let Some(mut contextmenu) = s.find_name::("contextmenu") { [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] 336 | contextmenu.on_command(s, cmd)? [INFO] [stdout] 337 | } else if let Some(mut add_track_menu) = s.find_name::("addtrackmenu") { [INFO] [stdout] | ------------------------------------------------ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 338 | add_track_menu.on_command(s, cmd)? [INFO] [stdout] 339 | } else if let Some(mut select_artist) = s.find_name::("selectartist") { [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] 342 | s.find_name::("selectartistaction") [INFO] [stdout] | ----------------------------------------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:337:9 [INFO] [stdout] | [INFO] [stdout] 337 | } else if let Some(mut add_track_menu) = s.find_name::("addtrackmenu") { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | } else if let Some(mut select_artist) = s.find_name::("selectartist") { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:341:9 [INFO] [stdout] | [INFO] [stdout] 341 | } else if let Some(mut select_artist_action) = [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:345:9 [INFO] [stdout] | [INFO] [stdout] 345 | } 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] 335 ~ let local = match s.find_name::("contextmenu") { Some(mut contextmenu) => { [INFO] [stdout] 336 | contextmenu.on_command(s, cmd)? [INFO] [stdout] 337 ~ } _ => { match s.find_name::("addtrackmenu") { Some(mut add_track_menu) => { [INFO] [stdout] 338 | add_track_menu.on_command(s, cmd)? [INFO] [stdout] 339 ~ } _ => { match s.find_name::("selectartist") { Some(mut select_artist) => { [INFO] [stdout] 340 | select_artist.on_command(s, cmd)? [INFO] [stdout] 341 ~ } _ => { match s.find_name::("selectartistaction") [INFO] [stdout] 342 ~ { Some(mut select_artist_action) => { [INFO] [stdout] 343 | select_artist_action.on_command(s, cmd)? [INFO] [stdout] 344 ~ } _ => { [INFO] [stdout] 345 | s.on_layout(|siv, mut l| l.on_command(siv, cmd))? [INFO] [stdout] 346 ~ }}}}}}}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/commands.rs:349:12 [INFO] [stdout] | [INFO] [stdout] 349 | if let CommandResult::Consumed(output) = local { [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] 350 | Ok(output) [INFO] [stdout] 351 | } else if let CommandResult::Modal(modal) = local { [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] 354 | } else if let CommandResult::View(view) = local { [INFO] [stdout] | ----- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | } else if let CommandResult::Modal(modal) = local { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:354:9 [INFO] [stdout] | [INFO] [stdout] 354 | } else if let CommandResult::View(view) = local { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:360:9 [INFO] [stdout] | [INFO] [stdout] 360 | } 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] 349 ~ match local { CommandResult::Consumed(output) => { [INFO] [stdout] 350 | Ok(output) [INFO] [stdout] 351 ~ } _ => { match local { CommandResult::Modal(modal) => { [INFO] [stdout] 352 | s.add_layer(modal); [INFO] [stdout] 353 | Ok(None) [INFO] [stdout] 354 ~ } _ => { match local { CommandResult::View(view) => { [INFO] [stdout] 355 | s.call_on_name("main", move |v: &mut Layout| { [INFO] [stdout] ... [INFO] [stdout] 359 | Ok(None) [INFO] [stdout] 360 ~ } _ => { [INFO] [stdout] 361 | self.handle_default_commands(s, cmd) [INFO] [stdout] 362 ~ }}}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/commands.rs:382:16 [INFO] [stdout] | [INFO] [stdout] 382 | if let Some(data) = s.user_data::().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:386:13 [INFO] [stdout] | [INFO] [stdout] 386 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 382 ~ match s.user_data::().cloned() { Some(data) => { [INFO] [stdout] 383 | for command in commands.clone().into_iter() { [INFO] [stdout] 384 | data.cmd.handle(s, command); [INFO] [stdout] 385 | } [INFO] [stdout] 386 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/config.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | if let Err(e) = CBOR.write(path, &*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] --> src/config.rs:270:9 [INFO] [stdout] | [INFO] [stdout] 270 | } [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 CBOR.write(path, &*self.state()) { Err(e) => { [INFO] [stdout] 269 | error!("Could not save user state: {}", e); [INFO] [stdout] 270 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/library.rs:88:12 [INFO] [stdout] | [INFO] [stdout] 88 | if let Ok(contents) = std::fs::read_to_string(cache_path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/library.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 88 ~ match std::fs::read_to_string(cache_path) { Ok(contents) => { [INFO] [stdout] 89 | debug!("loading cache from {}", cache_path.display()); [INFO] [stdout] ... [INFO] [stdout] 108 | } [INFO] [stdout] 109 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/library.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 116 | if let Err(message) = serialize_result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/library.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 116 ~ match serialize_result { Err(message) => { [INFO] [stdout] 117 | error!("could not write cache: {message:?}"); [INFO] [stdout] 118 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/library.rs:583:16 [INFO] [stdout] | [INFO] [stdout] 583 | if let Some(playlist) = playlists.iter_mut().find(|p| p.id == updated.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] --> src/library.rs:585:13 [INFO] [stdout] | [INFO] [stdout] 585 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 583 ~ match playlists.iter_mut().find(|p| p.id == updated.id) { Some(playlist) => { [INFO] [stdout] 584 | *playlist = updated.clone(); [INFO] [stdout] 585 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/library.rs:782:16 [INFO] [stdout] | [INFO] [stdout] 782 | if let Some(i) = store.iter().position(|a| a.id == artist.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] --> src/library.rs:784:13 [INFO] [stdout] | [INFO] [stdout] 784 | } 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] 782 ~ match store.iter().position(|a| a.id == artist.id) { Some(i) => { [INFO] [stdout] 783 | store[i].is_followed = true; [INFO] [stdout] 784 ~ } _ => { [INFO] [stdout] 785 | let mut artist = artist.clone(); [INFO] [stdout] 786 | artist.is_followed = true; [INFO] [stdout] 787 | store.push(artist); [INFO] [stdout] 788 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/library.rs:818:16 [INFO] [stdout] | [INFO] [stdout] 818 | if let Some(i) = store.iter().position(|a| a.id == artist.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] --> src/library.rs:820:13 [INFO] [stdout] | [INFO] [stdout] 820 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 818 ~ match store.iter().position(|a| a.id == artist.id) { Some(i) => { [INFO] [stdout] 819 | store[i].is_followed = false; [INFO] [stdout] 820 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/panic.rs:19:16 [INFO] [stdout] | [INFO] [stdout] 19 | if let Ok(mut file) = File::create(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/panic.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 19 ~ match File::create(path) { Ok(mut file) => { [INFO] [stdout] 20 | writeln!(file, "{}", backtrace::Backtrace::force_capture()).unwrap_or_default(); [INFO] [stdout] 21 | writeln!(file, "{panic_info}").unwrap_or_default(); [INFO] [stdout] 22 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/queue.rs:186:16 [INFO] [stdout] | [INFO] [stdout] 186 | if let Some(order) = random_order.as_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/queue.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 186 ~ match random_order.as_mut() { Some(order) => { [INFO] [stdout] 187 | order.extend((q.len().saturating_sub(1))..(q.len() + tracks.len())); [INFO] [stdout] 188 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/queue.rs:264:12 [INFO] [stdout] | [INFO] [stdout] 264 | if let Some(o) = random_order.as_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/queue.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 264 ~ match random_order.as_mut() { Some(o) => { [INFO] [stdout] 265 | o.clear() [INFO] [stdout] 266 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/queue.rs:283:12 [INFO] [stdout] | [INFO] [stdout] 283 | if let Some(index) = *current { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/queue.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 283 ~ match *current { Some(index) => { [INFO] [stdout] 284 | if index == from { [INFO] [stdout] ... [INFO] [stdout] 290 | } [INFO] [stdout] 291 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/queue.rs:504:16 [INFO] [stdout] | [INFO] [stdout] 504 | if let Err(e) = crate::utils::download(u, path.clone()) { [INFO] [stdout] | ^^^^^^^^^^^^^--------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/queue.rs:506:13 [INFO] [stdout] | [INFO] [stdout] 506 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 504 ~ match crate::utils::download(u, path.clone()) { Err(e) => { [INFO] [stdout] 505 | log::error!("Failed to download cover: {}", e); [INFO] [stdout] 506 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify.rs:166:35 [INFO] [stdout] | [INFO] [stdout] 166 | let audio_cache_path = if let Some(false) = cfg.values().audio_cache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^------------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | } 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] 166 ~ let audio_cache_path = match cfg.values().audio_cache { Some(false) => { [INFO] [stdout] 167 | None [INFO] [stdout] 168 ~ } _ => { [INFO] [stdout] 169 | Some(librespot_cache_path.join("files")) [INFO] [stdout] 170 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify.rs:371:20 [INFO] [stdout] | [INFO] [stdout] 371 | if let Err(e) = channel.send(cmd) { [INFO] [stdout] | ^^^^^^^^^^^^^----------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify.rs:376:17 [INFO] [stdout] | [INFO] [stdout] 376 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 371 ~ match channel.send(cmd) { Err(e) => { [INFO] [stdout] 372 | error!( [INFO] [stdout] ... [INFO] [stdout] 375 | ); [INFO] [stdout] 376 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify.rs:421:16 [INFO] [stdout] | [INFO] [stdout] 421 | if let Some(mpris_manager) = self.mpris.lock().unwrap().as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify.rs:424:13 [INFO] [stdout] | [INFO] [stdout] 424 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 421 ~ match self.mpris.lock().unwrap().as_ref() { Some(mpris_manager) => { [INFO] [stdout] 422 | info!("updating MPRIS volume"); [INFO] [stdout] 423 | mpris_manager.send(MprisCommand::NotifyVolumeUpdate); [INFO] [stdout] 424 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 100 | if let Some(channel) = self.worker_channel.read().unwrap().as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | } 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] 100 ~ match self.worker_channel.read().unwrap().as_ref() { Some(channel) => { [INFO] [stdout] 101 | channel.send(cmd).unwrap(); [INFO] [stdout] ... [INFO] [stdout] 118 | })) [INFO] [stdout] 119 ~ } _ => { [INFO] [stdout] 120 | panic!("worker channel is not set"); [INFO] [stdout] 121 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:105:20 [INFO] [stdout] | [INFO] [stdout] 105 | if let Ok(Some(token)) = token_rx.recv() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | } 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] 105 ~ match token_rx.recv() { Ok(Some(token)) => { [INFO] [stdout] 106 | *api_token.lock().unwrap() = Some(Token { [INFO] [stdout] ... [INFO] [stdout] 114 | Utc::now() + ChronoDuration::try_seconds(token.expires_in.into()).unwrap(); [INFO] [stdout] 115 ~ } _ => { [INFO] [stdout] 116 | error!("Failed to update token"); [INFO] [stdout] 117 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:134:20 [INFO] [stdout] | [INFO] [stdout] 134 | if let HttpError::StatusCode(response) = error.as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:154:17 [INFO] [stdout] | [INFO] [stdout] 154 | } 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] 134 ~ match error.as_ref() { HttpError::StatusCode(response) => { [INFO] [stdout] 135 | match response.status() { [INFO] [stdout] ... [INFO] [stdout] 153 | } [INFO] [stdout] 154 ~ } _ => { [INFO] [stdout] 155 | None [INFO] [stdout] 156 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/artist.rs:41:24 [INFO] [stdout] | [INFO] [stdout] 41 | if let Ok(tracks) = spotify.api.artist_top_tracks(&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] --> src/ui/artist.rs:44:21 [INFO] [stdout] | [INFO] [stdout] 44 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 41 ~ match spotify.api.artist_top_tracks(&id) { Ok(tracks) => { [INFO] [stdout] 42 | top_tracks.write().unwrap().extend(tracks); [INFO] [stdout] 43 | library.trigger_redraw(); [INFO] [stdout] 44 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/artist.rs:56:24 [INFO] [stdout] | [INFO] [stdout] 56 | if let Ok(artists) = spotify.api.artist_related_artists(&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] --> src/ui/artist.rs:59:21 [INFO] [stdout] | [INFO] [stdout] 59 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 56 ~ match spotify.api.artist_related_artists(&id) { Ok(artists) => { [INFO] [stdout] 57 | related.write().unwrap().extend(artists); [INFO] [stdout] 58 | library.trigger_redraw(); [INFO] [stdout] 59 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:164:24 [INFO] [stdout] | [INFO] [stdout] 164 | if let Some(view) = moved_artist.clone().open(queue.clone(), library.clone()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 166 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 164 ~ match moved_artist.clone().open(queue.clone(), library.clone()) { Some(view) => { [INFO] [stdout] 165 | s.call_on_name("main", |v: &mut Layout| v.push_view(view)); [INFO] [stdout] 166 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:234:16 [INFO] [stdout] | [INFO] [stdout] 234 | if let Some(a) = action { [INFO] [stdout] | ^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 234 ~ match action { Some(a) => { [INFO] [stdout] 235 | content.add_item( [INFO] [stdout] ... [INFO] [stdout] 238 | ) [INFO] [stdout] 239 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:281:16 [INFO] [stdout] | [INFO] [stdout] 281 | if let Some(savestatus) = a.is_saved(&library) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:289:13 [INFO] [stdout] | [INFO] [stdout] 289 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 281 ~ match a.is_saved(&library) { Some(savestatus) => { [INFO] [stdout] 282 | content.add_item( [INFO] [stdout] ... [INFO] [stdout] 288 | ); [INFO] [stdout] 289 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:302:28 [INFO] [stdout] | [INFO] [stdout] 302 | if let Some(view) = item.open(queue, library) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:304:25 [INFO] [stdout] | [INFO] [stdout] 304 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 302 ~ match item.open(queue, library) { Some(view) => { [INFO] [stdout] 303 | s.call_on_name("main", move |v: &mut Layout| v.push_view(view)); [INFO] [stdout] 304 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:316:28 [INFO] [stdout] | [INFO] [stdout] 316 | if let Some(view) = item.to_owned().open_recommendations(queue, library) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:318:25 [INFO] [stdout] | [INFO] [stdout] 318 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 316 ~ match item.to_owned().open_recommendations(queue, library) { Some(view) => { [INFO] [stdout] 317 | s.call_on_name("main", move |v: &mut Layout| v.push_view(view)); [INFO] [stdout] 318 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:67:20 [INFO] [stdout] | [INFO] [stdout] 67 | if let Some(data) = s.user_data::().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:69:17 [INFO] [stdout] | [INFO] [stdout] 69 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 67 ~ match s.user_data::().cloned() { Some(data) => { [INFO] [stdout] 68 | data.cmd.handle(s, command); [INFO] [stdout] 69 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:77:28 [INFO] [stdout] | [INFO] [stdout] 77 | if let Some(data) = s.user_data::().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:81:25 [INFO] [stdout] | [INFO] [stdout] 81 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 77 ~ match s.user_data::().cloned() { Some(data) => { [INFO] [stdout] 78 | for cmd in commands { [INFO] [stdout] 79 | data.cmd.handle(s, cmd); [INFO] [stdout] 80 | } [INFO] [stdout] 81 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:370:20 [INFO] [stdout] | [INFO] [stdout] 370 | if let EventResult::Ignored = result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:386:17 [INFO] [stdout] | [INFO] [stdout] 386 | } 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] 370 ~ match result { EventResult::Ignored => { [INFO] [stdout] 371 | let command_key = self [INFO] [stdout] ... [INFO] [stdout] 385 | } [INFO] [stdout] 386 ~ } _ => { [INFO] [stdout] 387 | result [INFO] [stdout] 388 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:472:24 [INFO] [stdout] | [INFO] [stdout] 472 | if let Some(stack) = self.stack.get_mut(search_view_name) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:474:21 [INFO] [stdout] | [INFO] [stdout] 474 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 472 ~ match self.stack.get_mut(search_view_name) { Some(stack) => { [INFO] [stdout] 473 | stack.clear(); [INFO] [stdout] 474 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 186 | if let Some(listitem) = content.get_mut(self.selected) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 186 ~ match content.get_mut(self.selected) { Some(listitem) => { [INFO] [stdout] 187 | listitem.play(&self.queue); [INFO] [stdout] 188 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:408:32 [INFO] [stdout] | [INFO] [stdout] 408 | ... if let Some(target) = clicked_list_item { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:418:29 [INFO] [stdout] | [INFO] [stdout] 418 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 408 ~ match clicked_list_item { Some(target) => { [INFO] [stdout] 409 | if let Some(view) = [INFO] [stdout] ... [INFO] [stdout] 417 | } [INFO] [stdout] 418 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:409:36 [INFO] [stdout] | [INFO] [stdout] 409 | ... if let Some(view) = [INFO] [stdout] | __________________________^ [INFO] [stdout] 410 | | ... target.open(self.queue.clone(), self.library.clone()) [INFO] [stdout] | |___________________________----------------------------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:417:33 [INFO] [stdout] | [INFO] [stdout] 417 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 409 ~ match target.open(self.queue.clone(), self.library.clone()) [INFO] [stdout] 410 ~ { Some(view) => { [INFO] [stdout] 411 | return EventResult::Consumed(Some(Callback::from_fn_once( [INFO] [stdout] ... [INFO] [stdout] 415 | ))); [INFO] [stdout] 416 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:435:24 [INFO] [stdout] | [INFO] [stdout] 435 | if let Some(target) = { [INFO] [stdout] | ________________________^ - [INFO] [stdout] | |___________________________________________| [INFO] [stdout] 436 | || let content = self.content.read().unwrap(); [INFO] [stdout] 437 | || content.get(self.selected).map(|t| t.as_listitem()) [INFO] [stdout] 438 | || } { [INFO] [stdout] | ||_____________________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |_____________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:443:21 [INFO] [stdout] | [INFO] [stdout] 443 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 435 ~ match { [INFO] [stdout] 436 | let content = self.content.read().unwrap(); [INFO] [stdout] 437 | content.get(self.selected).map(|t| t.as_listitem()) [INFO] [stdout] 438 ~ } { Some(target) => { [INFO] [stdout] 439 | let contextmenu = ContextMenu::new(&*target, queue, library); [INFO] [stdout] ... [INFO] [stdout] 442 | }))); [INFO] [stdout] 443 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:531:24 [INFO] [stdout] | [INFO] [stdout] 531 | if let Some(track) = track.track() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:538:21 [INFO] [stdout] | [INFO] [stdout] 538 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 531 ~ match track.track() { Some(track) => { [INFO] [stdout] 532 | let dialog = ContextMenu::add_track_dialog( [INFO] [stdout] ... [INFO] [stdout] 537 | return Ok(CommandResult::Modal(Box::new(dialog))); [INFO] [stdout] 538 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:661:20 [INFO] [stdout] | [INFO] [stdout] 661 | if let Some(target) = target { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:670:17 [INFO] [stdout] | [INFO] [stdout] 670 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 661 ~ match target { Some(target) => { [INFO] [stdout] 662 | let view = target.open(queue.clone(), library.clone()); [INFO] [stdout] ... [INFO] [stdout] 669 | }; [INFO] [stdout] 670 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:674:20 [INFO] [stdout] | [INFO] [stdout] 674 | if let Some(item) = content.get_mut(self.selected) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-------^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:705:17 [INFO] [stdout] | [INFO] [stdout] 705 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 674 ~ match content.get_mut(self.selected) { Some(item) => { [INFO] [stdout] 675 | let queue = self.queue.clone(); [INFO] [stdout] ... [INFO] [stdout] 704 | } [INFO] [stdout] 705 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:680:32 [INFO] [stdout] | [INFO] [stdout] 680 | ... if let Some(album) = item.album(&queue) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:684:29 [INFO] [stdout] | [INFO] [stdout] 684 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 680 ~ match item.album(&queue) { Some(album) => { [INFO] [stdout] 681 | let view = [INFO] [stdout] 682 | AlbumView::new(queue, library, &album).into_boxed_view_ext(); [INFO] [stdout] 683 | return Ok(CommandResult::View(view)); [INFO] [stdout] 684 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:755:24 [INFO] [stdout] | [INFO] [stdout] 755 | if let Some(target) = target { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:764:21 [INFO] [stdout] | [INFO] [stdout] 764 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 755 ~ match target { Some(target) => { [INFO] [stdout] 756 | let view = target.open(queue.clone(), library.clone()); [INFO] [stdout] ... [INFO] [stdout] 763 | }; [INFO] [stdout] 764 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:780:20 [INFO] [stdout] | [INFO] [stdout] 780 | if let Some(mut target) = target { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:786:17 [INFO] [stdout] | [INFO] [stdout] 786 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 780 ~ match target { Some(mut target) => { [INFO] [stdout] 781 | let view = target.open_recommendations(queue, library); [INFO] [stdout] ... [INFO] [stdout] 785 | }; [INFO] [stdout] 786 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | if let Some(first_page) = fetch_page(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | } 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] 23 ~ match fetch_page(0) { Some(first_page) => { [INFO] [stdout] 24 | debug!( [INFO] [stdout] ... [INFO] [stdout] 36 | } [INFO] [stdout] 37 ~ } _ => { [INFO] [stdout] 38 | Self { [INFO] [stdout] ... [INFO] [stdout] 44 | } [INFO] [stdout] 45 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:72:16 [INFO] [stdout] | [INFO] [stdout] 72 | if let Some(next_page) = (self.fetch_page)(offset) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | } 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] 72 ~ match (self.fetch_page)(offset) { Some(next_page) => { [INFO] [stdout] 73 | *self.offset.write().unwrap() = next_page.offset; [INFO] [stdout] 74 | self.items.write().unwrap().extend(next_page.items.clone()); [INFO] [stdout] 75 | Some(next_page.items) [INFO] [stdout] 76 ~ } _ => { [INFO] [stdout] 77 | None [INFO] [stdout] 78 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:144:20 [INFO] [stdout] | [INFO] [stdout] 144 | if let Some(ref cb) = *cb { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:150:17 [INFO] [stdout] | [INFO] [stdout] 150 | } [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 *cb { Some(ref cb) => { [INFO] [stdout] 145 | debug!("calling paginator!"); [INFO] [stdout] ... [INFO] [stdout] 149 | library.trigger_redraw(); [INFO] [stdout] 150 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/statusbar.rs:191:12 [INFO] [stdout] | [INFO] [stdout] 191 | if let Some(t) = self.queue.get_current() { [INFO] [stdout] | ^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/statusbar.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 191 ~ match self.queue.get_current() { Some(t) => { [INFO] [stdout] 192 | printer.with_color(style_bar, |printer| { [INFO] [stdout] ... [INFO] [stdout] 196 | }); [INFO] [stdout] 197 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/statusbar.rs:228:24 [INFO] [stdout] | [INFO] [stdout] 228 | if let Some(playable) = self.queue.get_current() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/statusbar.rs:232:21 [INFO] [stdout] | [INFO] [stdout] 232 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 228 ~ match self.queue.get_current() { Some(playable) => { [INFO] [stdout] 229 | let f: f32 = position.x as f32 / self.last_size.x as f32; [INFO] [stdout] 230 | let new = playable.duration() as f32 * f; [INFO] [stdout] 231 | self.spotify.seek(new as u32); [INFO] [stdout] 232 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/tabbedview.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 140 | if let Some(tab) = self.tabs.get(self.selected) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/tabbedview.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | } [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.tabs.get(self.selected) { Some(tab) => { [INFO] [stdout] 141 | let printer = printer [INFO] [stdout] ... [INFO] [stdout] 145 | tab.draw(&printer); [INFO] [stdout] 146 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:346:12 [INFO] [stdout] | [INFO] [stdout] 346 | if let Some(current_track) = self.queue.get_current() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/mpris.rs:359:9 [INFO] [stdout] | [INFO] [stdout] 359 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 346 ~ match self.queue.get_current() { Some(current_track) => { [INFO] [stdout] 347 | let progress = self.spotify.get_current_progress(); [INFO] [stdout] ... [INFO] [stdout] 358 | } [INFO] [stdout] 359 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:363:12 [INFO] [stdout] | [INFO] [stdout] 363 | if let Some(current_track) = self.queue.get_current() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/mpris.rs:370:9 [INFO] [stdout] | [INFO] [stdout] 370 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 363 ~ match self.queue.get_current() { Some(current_track) => { [INFO] [stdout] 364 | let position = (position / 1000) as u32; [INFO] [stdout] ... [INFO] [stdout] 369 | } [INFO] [stdout] 370 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:390:20 [INFO] [stdout] | [INFO] [stdout] 390 | if let Ok(a) = self.spotify.api.album(&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] --> src/mpris.rs:401:17 [INFO] [stdout] | [INFO] [stdout] 401 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 390 ~ match self.spotify.api.album(&id) { Ok(a) => { [INFO] [stdout] 391 | if let Some(t) = &Album::from(&a).tracks { [INFO] [stdout] ... [INFO] [stdout] 400 | } [INFO] [stdout] 401 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:404:20 [INFO] [stdout] | [INFO] [stdout] 404 | if let Ok(t) = self.spotify.api.track(&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] --> src/mpris.rs:408:17 [INFO] [stdout] | [INFO] [stdout] 408 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 404 ~ match self.spotify.api.track(&id) { Ok(t) => { [INFO] [stdout] 405 | self.queue.clear(); [INFO] [stdout] 406 | self.queue.append(Playable::Track(Track::from(&t))); [INFO] [stdout] 407 | self.queue.play(0, false, false) [INFO] [stdout] 408 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:411:20 [INFO] [stdout] | [INFO] [stdout] 411 | if let Ok(p) = self.spotify.api.playlist(&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] --> src/mpris.rs:420:17 [INFO] [stdout] | [INFO] [stdout] 420 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 411 ~ match self.spotify.api.playlist(&id) { Ok(p) => { [INFO] [stdout] 412 | let mut playlist = Playlist::from(&p); [INFO] [stdout] ... [INFO] [stdout] 419 | } [INFO] [stdout] 420 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:423:20 [INFO] [stdout] | [INFO] [stdout] 423 | if let Ok(s) = self.spotify.api.show(&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] --> src/mpris.rs:439:17 [INFO] [stdout] | [INFO] [stdout] 439 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 423 ~ match self.spotify.api.show(&id) { Ok(s) => { [INFO] [stdout] 424 | let mut show: Show = (&s).into(); [INFO] [stdout] ... [INFO] [stdout] 438 | } [INFO] [stdout] 439 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:442:20 [INFO] [stdout] | [INFO] [stdout] 442 | if let Ok(e) = self.spotify.api.episode(&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] --> src/mpris.rs:446:17 [INFO] [stdout] | [INFO] [stdout] 446 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 442 ~ match self.spotify.api.episode(&id) { Ok(e) => { [INFO] [stdout] 443 | self.queue.clear(); [INFO] [stdout] 444 | self.queue.append(Playable::Episode(Episode::from(&e))); [INFO] [stdout] 445 | self.queue.play(0, false, false) [INFO] [stdout] 446 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:449:20 [INFO] [stdout] | [INFO] [stdout] 449 | if let Ok(a) = self.spotify.api.artist_top_tracks(&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] --> src/mpris.rs:458:17 [INFO] [stdout] | [INFO] [stdout] 458 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 449 ~ match self.spotify.api.artist_top_tracks(&id) { Ok(a) => { [INFO] [stdout] 450 | let should_shuffle = self.queue.get_shuffle(); [INFO] [stdout] ... [INFO] [stdout] 457 | self.queue.play(index, should_shuffle, should_shuffle) [INFO] [stdout] 458 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:499:16 [INFO] [stdout] | [INFO] [stdout] 499 | if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/mpris.rs:501:13 [INFO] [stdout] | [INFO] [stdout] 501 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 499 ~ match result { Err(e) => { [INFO] [stdout] 500 | log::error!("MPRIS error: {e}"); [INFO] [stdout] 501 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:543:12 [INFO] [stdout] | [INFO] [stdout] 543 | if let Err(e) = self.tx.send(command) { [INFO] [stdout] | ^^^^^^^^^^^^^-------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/mpris.rs:545:9 [INFO] [stdout] | [INFO] [stdout] 545 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 543 ~ match self.tx.send(command) { Err(e) => { [INFO] [stdout] 544 | log::warn!("Could not update MPRIS state: {e}"); [INFO] [stdout] 545 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 67 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `ncspot` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/theme.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/theme.rs:23:7 [INFO] [stderr] | [INFO] [stderr] 23 | ( $theme: expr_2021, $member: ident, $default: expr_2021 ) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/theme.rs:23:42 [INFO] [stderr] | [INFO] [stderr] 23 | ( $theme: expr_2021, $member: ident, $default: 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 2 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/theme.rs:23:15 [INFO] [stdout] | [INFO] [stdout] 23 | ( $theme: expr, $member: ident, $default: 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] 23 | ( $theme: expr_2021, $member: ident, $default: expr ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/theme.rs:23:47 [INFO] [stdout] | [INFO] [stdout] 23 | ( $theme: expr, $member: ident, $default: 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] 23 | ( $theme: expr, $member: ident, $default: expr_2021 ) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | env::set_var("PULSE_PROP_application.name", "ncspot"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #27970 [INFO] [stdout] = note: `--force-warn deprecated-safe-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 206 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 207 ~ unsafe { env::set_var("PULSE_PROP_application.name", "ncspot") }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | env::set_var("PULSE_PROP_stream.description", "ncurses Spotify client"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #27970 [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 207 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 208 ~ unsafe { env::set_var("PULSE_PROP_stream.description", "ncurses Spotify client") }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | env::set_var("PULSE_PROP_media.role", "music"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #27970 [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 208 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 209 ~ unsafe { env::set_var("PULSE_PROP_media.role", "music") }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/application.rs:145:22 [INFO] [stdout] | [INFO] [stdout] 145 | let ipc = if let Ok(runtime_directory) = utils::create_runtime_directory() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/application.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | } 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] 145 ~ let ipc = match utils::create_runtime_directory() { Ok(runtime_directory) => { [INFO] [stdout] 146 | Some( [INFO] [stdout] ... [INFO] [stdout] 153 | ) [INFO] [stdout] 154 ~ } _ => { [INFO] [stdout] 155 | error!("failed to create IPC socket: no suitable user runtime directory found"); [INFO] [stdout] 156 | None [INFO] [stdout] 157 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/application.rs:233:24 [INFO] [stdout] | [INFO] [stdout] 233 | if let Some(data) = self.cursive.user_data::().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/application.rs:235:21 [INFO] [stdout] | [INFO] [stdout] 235 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 233 ~ match self.cursive.user_data::().cloned() { Some(data) => { [INFO] [stdout] 234 | data.cmd.handle(&mut self.cursive, Command::Quit); [INFO] [stdout] 235 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/application.rs:271:32 [INFO] [stdout] | [INFO] [stdout] 271 | ... if let Some(data) = self.cursive.user_data::().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/application.rs:276:29 [INFO] [stdout] | [INFO] [stdout] 276 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 271 ~ match self.cursive.user_data::().cloned() { Some(data) => { [INFO] [stdout] 272 | for cmd in commands { [INFO] [stdout] ... [INFO] [stdout] 275 | } [INFO] [stdout] 276 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/authentication.rs:48:11 [INFO] [stdout] | [INFO] [stdout] 48 | while let Err(error) = Spotify::test_credentials(configuration, credentials.clone()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/authentication.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/commands.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | if let Some(results) = view { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:261:21 [INFO] [stdout] | [INFO] [stdout] 261 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 259 ~ match view { Some(results) => { [INFO] [stdout] 260 | v.push_view(results.into_boxed_view_ext()) [INFO] [stdout] 261 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/commands.rs:335:24 [INFO] [stdout] | [INFO] [stdout] 335 | let local = if let Some(mut contextmenu) = s.find_name::("contextmenu") { [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] 336 | contextmenu.on_command(s, cmd)? [INFO] [stdout] 337 | } else if let Some(mut add_track_menu) = s.find_name::("addtrackmenu") { [INFO] [stdout] | ------------------------------------------------ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 338 | add_track_menu.on_command(s, cmd)? [INFO] [stdout] 339 | } else if let Some(mut select_artist) = s.find_name::("selectartist") { [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] 342 | s.find_name::("selectartistaction") [INFO] [stdout] | ----------------------------------------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:337:9 [INFO] [stdout] | [INFO] [stdout] 337 | } else if let Some(mut add_track_menu) = s.find_name::("addtrackmenu") { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:339:9 [INFO] [stdout] | [INFO] [stdout] 339 | } else if let Some(mut select_artist) = s.find_name::("selectartist") { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:341:9 [INFO] [stdout] | [INFO] [stdout] 341 | } else if let Some(mut select_artist_action) = [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:345:9 [INFO] [stdout] | [INFO] [stdout] 345 | } 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] 335 ~ let local = match s.find_name::("contextmenu") { Some(mut contextmenu) => { [INFO] [stdout] 336 | contextmenu.on_command(s, cmd)? [INFO] [stdout] 337 ~ } _ => { match s.find_name::("addtrackmenu") { Some(mut add_track_menu) => { [INFO] [stdout] 338 | add_track_menu.on_command(s, cmd)? [INFO] [stdout] 339 ~ } _ => { match s.find_name::("selectartist") { Some(mut select_artist) => { [INFO] [stdout] 340 | select_artist.on_command(s, cmd)? [INFO] [stdout] 341 ~ } _ => { match s.find_name::("selectartistaction") [INFO] [stdout] 342 ~ { Some(mut select_artist_action) => { [INFO] [stdout] 343 | select_artist_action.on_command(s, cmd)? [INFO] [stdout] 344 ~ } _ => { [INFO] [stdout] 345 | s.on_layout(|siv, mut l| l.on_command(siv, cmd))? [INFO] [stdout] 346 ~ }}}}}}}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/commands.rs:349:12 [INFO] [stdout] | [INFO] [stdout] 349 | if let CommandResult::Consumed(output) = local { [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] 350 | Ok(output) [INFO] [stdout] 351 | } else if let CommandResult::Modal(modal) = local { [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] 354 | } else if let CommandResult::View(view) = local { [INFO] [stdout] | ----- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | } else if let CommandResult::Modal(modal) = local { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:354:9 [INFO] [stdout] | [INFO] [stdout] 354 | } else if let CommandResult::View(view) = local { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:360:9 [INFO] [stdout] | [INFO] [stdout] 360 | } 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] 349 ~ match local { CommandResult::Consumed(output) => { [INFO] [stdout] 350 | Ok(output) [INFO] [stdout] 351 ~ } _ => { match local { CommandResult::Modal(modal) => { [INFO] [stdout] 352 | s.add_layer(modal); [INFO] [stdout] 353 | Ok(None) [INFO] [stdout] 354 ~ } _ => { match local { CommandResult::View(view) => { [INFO] [stdout] 355 | s.call_on_name("main", move |v: &mut Layout| { [INFO] [stdout] ... [INFO] [stdout] 359 | Ok(None) [INFO] [stdout] 360 ~ } _ => { [INFO] [stdout] 361 | self.handle_default_commands(s, cmd) [INFO] [stdout] 362 ~ }}}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/commands.rs:382:16 [INFO] [stdout] | [INFO] [stdout] 382 | if let Some(data) = s.user_data::().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/commands.rs:386:13 [INFO] [stdout] | [INFO] [stdout] 386 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 382 ~ match s.user_data::().cloned() { Some(data) => { [INFO] [stdout] 383 | for command in commands.clone().into_iter() { [INFO] [stdout] 384 | data.cmd.handle(s, command); [INFO] [stdout] 385 | } [INFO] [stdout] 386 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/config.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | if let Err(e) = CBOR.write(path, &*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] --> src/config.rs:270:9 [INFO] [stdout] | [INFO] [stdout] 270 | } [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 CBOR.write(path, &*self.state()) { Err(e) => { [INFO] [stdout] 269 | error!("Could not save user state: {}", e); [INFO] [stdout] 270 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/library.rs:88:12 [INFO] [stdout] | [INFO] [stdout] 88 | if let Ok(contents) = std::fs::read_to_string(cache_path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/library.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 88 ~ match std::fs::read_to_string(cache_path) { Ok(contents) => { [INFO] [stdout] 89 | debug!("loading cache from {}", cache_path.display()); [INFO] [stdout] ... [INFO] [stdout] 108 | } [INFO] [stdout] 109 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/library.rs:116:12 [INFO] [stdout] | [INFO] [stdout] 116 | if let Err(message) = serialize_result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/library.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 116 ~ match serialize_result { Err(message) => { [INFO] [stdout] 117 | error!("could not write cache: {message:?}"); [INFO] [stdout] 118 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/library.rs:583:16 [INFO] [stdout] | [INFO] [stdout] 583 | if let Some(playlist) = playlists.iter_mut().find(|p| p.id == updated.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] --> src/library.rs:585:13 [INFO] [stdout] | [INFO] [stdout] 585 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 583 ~ match playlists.iter_mut().find(|p| p.id == updated.id) { Some(playlist) => { [INFO] [stdout] 584 | *playlist = updated.clone(); [INFO] [stdout] 585 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/library.rs:782:16 [INFO] [stdout] | [INFO] [stdout] 782 | if let Some(i) = store.iter().position(|a| a.id == artist.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] --> src/library.rs:784:13 [INFO] [stdout] | [INFO] [stdout] 784 | } 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] 782 ~ match store.iter().position(|a| a.id == artist.id) { Some(i) => { [INFO] [stdout] 783 | store[i].is_followed = true; [INFO] [stdout] 784 ~ } _ => { [INFO] [stdout] 785 | let mut artist = artist.clone(); [INFO] [stdout] 786 | artist.is_followed = true; [INFO] [stdout] 787 | store.push(artist); [INFO] [stdout] 788 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/library.rs:818:16 [INFO] [stdout] | [INFO] [stdout] 818 | if let Some(i) = store.iter().position(|a| a.id == artist.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] --> src/library.rs:820:13 [INFO] [stdout] | [INFO] [stdout] 820 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 818 ~ match store.iter().position(|a| a.id == artist.id) { Some(i) => { [INFO] [stdout] 819 | store[i].is_followed = false; [INFO] [stdout] 820 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/panic.rs:19:16 [INFO] [stdout] | [INFO] [stdout] 19 | if let Ok(mut file) = File::create(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/panic.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 19 ~ match File::create(path) { Ok(mut file) => { [INFO] [stdout] 20 | writeln!(file, "{}", backtrace::Backtrace::force_capture()).unwrap_or_default(); [INFO] [stdout] 21 | writeln!(file, "{panic_info}").unwrap_or_default(); [INFO] [stdout] 22 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/queue.rs:186:16 [INFO] [stdout] | [INFO] [stdout] 186 | if let Some(order) = random_order.as_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/queue.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 186 ~ match random_order.as_mut() { Some(order) => { [INFO] [stdout] 187 | order.extend((q.len().saturating_sub(1))..(q.len() + tracks.len())); [INFO] [stdout] 188 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/queue.rs:264:12 [INFO] [stdout] | [INFO] [stdout] 264 | if let Some(o) = random_order.as_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/queue.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 264 ~ match random_order.as_mut() { Some(o) => { [INFO] [stdout] 265 | o.clear() [INFO] [stdout] 266 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/queue.rs:283:12 [INFO] [stdout] | [INFO] [stdout] 283 | if let Some(index) = *current { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/queue.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 283 ~ match *current { Some(index) => { [INFO] [stdout] 284 | if index == from { [INFO] [stdout] ... [INFO] [stdout] 290 | } [INFO] [stdout] 291 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/queue.rs:504:16 [INFO] [stdout] | [INFO] [stdout] 504 | if let Err(e) = crate::utils::download(u, path.clone()) { [INFO] [stdout] | ^^^^^^^^^^^^^--------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/queue.rs:506:13 [INFO] [stdout] | [INFO] [stdout] 506 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 504 ~ match crate::utils::download(u, path.clone()) { Err(e) => { [INFO] [stdout] 505 | log::error!("Failed to download cover: {}", e); [INFO] [stdout] 506 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify.rs:166:35 [INFO] [stdout] | [INFO] [stdout] 166 | let audio_cache_path = if let Some(false) = cfg.values().audio_cache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^------------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | } 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] 166 ~ let audio_cache_path = match cfg.values().audio_cache { Some(false) => { [INFO] [stdout] 167 | None [INFO] [stdout] 168 ~ } _ => { [INFO] [stdout] 169 | Some(librespot_cache_path.join("files")) [INFO] [stdout] 170 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify.rs:371:20 [INFO] [stdout] | [INFO] [stdout] 371 | if let Err(e) = channel.send(cmd) { [INFO] [stdout] | ^^^^^^^^^^^^^----------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify.rs:376:17 [INFO] [stdout] | [INFO] [stdout] 376 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 371 ~ match channel.send(cmd) { Err(e) => { [INFO] [stdout] 372 | error!( [INFO] [stdout] ... [INFO] [stdout] 375 | ); [INFO] [stdout] 376 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify.rs:421:16 [INFO] [stdout] | [INFO] [stdout] 421 | if let Some(mpris_manager) = self.mpris.lock().unwrap().as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify.rs:424:13 [INFO] [stdout] | [INFO] [stdout] 424 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 421 ~ match self.mpris.lock().unwrap().as_ref() { Some(mpris_manager) => { [INFO] [stdout] 422 | info!("updating MPRIS volume"); [INFO] [stdout] 423 | mpris_manager.send(MprisCommand::NotifyVolumeUpdate); [INFO] [stdout] 424 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 100 | if let Some(channel) = self.worker_channel.read().unwrap().as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-----------------------------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | } 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] 100 ~ match self.worker_channel.read().unwrap().as_ref() { Some(channel) => { [INFO] [stdout] 101 | channel.send(cmd).unwrap(); [INFO] [stdout] ... [INFO] [stdout] 118 | })) [INFO] [stdout] 119 ~ } _ => { [INFO] [stdout] 120 | panic!("worker channel is not set"); [INFO] [stdout] 121 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:105:20 [INFO] [stdout] | [INFO] [stdout] 105 | if let Ok(Some(token)) = token_rx.recv() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:115:17 [INFO] [stdout] | [INFO] [stdout] 115 | } 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] 105 ~ match token_rx.recv() { Ok(Some(token)) => { [INFO] [stdout] 106 | *api_token.lock().unwrap() = Some(Token { [INFO] [stdout] ... [INFO] [stdout] 114 | Utc::now() + ChronoDuration::try_seconds(token.expires_in.into()).unwrap(); [INFO] [stdout] 115 ~ } _ => { [INFO] [stdout] 116 | error!("Failed to update token"); [INFO] [stdout] 117 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:134:20 [INFO] [stdout] | [INFO] [stdout] 134 | if let HttpError::StatusCode(response) = error.as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/spotify_api.rs:154:17 [INFO] [stdout] | [INFO] [stdout] 154 | } 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] 134 ~ match error.as_ref() { HttpError::StatusCode(response) => { [INFO] [stdout] 135 | match response.status() { [INFO] [stdout] ... [INFO] [stdout] 153 | } [INFO] [stdout] 154 ~ } _ => { [INFO] [stdout] 155 | None [INFO] [stdout] 156 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/artist.rs:41:24 [INFO] [stdout] | [INFO] [stdout] 41 | if let Ok(tracks) = spotify.api.artist_top_tracks(&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] --> src/ui/artist.rs:44:21 [INFO] [stdout] | [INFO] [stdout] 44 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 41 ~ match spotify.api.artist_top_tracks(&id) { Ok(tracks) => { [INFO] [stdout] 42 | top_tracks.write().unwrap().extend(tracks); [INFO] [stdout] 43 | library.trigger_redraw(); [INFO] [stdout] 44 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/artist.rs:56:24 [INFO] [stdout] | [INFO] [stdout] 56 | if let Ok(artists) = spotify.api.artist_related_artists(&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] --> src/ui/artist.rs:59:21 [INFO] [stdout] | [INFO] [stdout] 59 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 56 ~ match spotify.api.artist_related_artists(&id) { Ok(artists) => { [INFO] [stdout] 57 | related.write().unwrap().extend(artists); [INFO] [stdout] 58 | library.trigger_redraw(); [INFO] [stdout] 59 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:164:24 [INFO] [stdout] | [INFO] [stdout] 164 | if let Some(view) = moved_artist.clone().open(queue.clone(), library.clone()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 166 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 164 ~ match moved_artist.clone().open(queue.clone(), library.clone()) { Some(view) => { [INFO] [stdout] 165 | s.call_on_name("main", |v: &mut Layout| v.push_view(view)); [INFO] [stdout] 166 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:234:16 [INFO] [stdout] | [INFO] [stdout] 234 | if let Some(a) = action { [INFO] [stdout] | ^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 234 ~ match action { Some(a) => { [INFO] [stdout] 235 | content.add_item( [INFO] [stdout] ... [INFO] [stdout] 238 | ) [INFO] [stdout] 239 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:281:16 [INFO] [stdout] | [INFO] [stdout] 281 | if let Some(savestatus) = a.is_saved(&library) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:289:13 [INFO] [stdout] | [INFO] [stdout] 289 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 281 ~ match a.is_saved(&library) { Some(savestatus) => { [INFO] [stdout] 282 | content.add_item( [INFO] [stdout] ... [INFO] [stdout] 288 | ); [INFO] [stdout] 289 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:302:28 [INFO] [stdout] | [INFO] [stdout] 302 | if let Some(view) = item.open(queue, library) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:304:25 [INFO] [stdout] | [INFO] [stdout] 304 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 302 ~ match item.open(queue, library) { Some(view) => { [INFO] [stdout] 303 | s.call_on_name("main", move |v: &mut Layout| v.push_view(view)); [INFO] [stdout] 304 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:316:28 [INFO] [stdout] | [INFO] [stdout] 316 | if let Some(view) = item.to_owned().open_recommendations(queue, library) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/contextmenu.rs:318:25 [INFO] [stdout] | [INFO] [stdout] 318 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 316 ~ match item.to_owned().open_recommendations(queue, library) { Some(view) => { [INFO] [stdout] 317 | s.call_on_name("main", move |v: &mut Layout| v.push_view(view)); [INFO] [stdout] 318 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:67:20 [INFO] [stdout] | [INFO] [stdout] 67 | if let Some(data) = s.user_data::().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:69:17 [INFO] [stdout] | [INFO] [stdout] 69 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 67 ~ match s.user_data::().cloned() { Some(data) => { [INFO] [stdout] 68 | data.cmd.handle(s, command); [INFO] [stdout] 69 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:77:28 [INFO] [stdout] | [INFO] [stdout] 77 | if let Some(data) = s.user_data::().cloned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:81:25 [INFO] [stdout] | [INFO] [stdout] 81 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 77 ~ match s.user_data::().cloned() { Some(data) => { [INFO] [stdout] 78 | for cmd in commands { [INFO] [stdout] 79 | data.cmd.handle(s, cmd); [INFO] [stdout] 80 | } [INFO] [stdout] 81 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:370:20 [INFO] [stdout] | [INFO] [stdout] 370 | if let EventResult::Ignored = result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:386:17 [INFO] [stdout] | [INFO] [stdout] 386 | } 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] 370 ~ match result { EventResult::Ignored => { [INFO] [stdout] 371 | let command_key = self [INFO] [stdout] ... [INFO] [stdout] 385 | } [INFO] [stdout] 386 ~ } _ => { [INFO] [stdout] 387 | result [INFO] [stdout] 388 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:472:24 [INFO] [stdout] | [INFO] [stdout] 472 | if let Some(stack) = self.stack.get_mut(search_view_name) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/layout.rs:474:21 [INFO] [stdout] | [INFO] [stdout] 474 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 472 ~ match self.stack.get_mut(search_view_name) { Some(stack) => { [INFO] [stdout] 473 | stack.clear(); [INFO] [stdout] 474 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 186 | if let Some(listitem) = content.get_mut(self.selected) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 186 ~ match content.get_mut(self.selected) { Some(listitem) => { [INFO] [stdout] 187 | listitem.play(&self.queue); [INFO] [stdout] 188 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:408:32 [INFO] [stdout] | [INFO] [stdout] 408 | ... if let Some(target) = clicked_list_item { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:418:29 [INFO] [stdout] | [INFO] [stdout] 418 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 408 ~ match clicked_list_item { Some(target) => { [INFO] [stdout] 409 | if let Some(view) = [INFO] [stdout] ... [INFO] [stdout] 417 | } [INFO] [stdout] 418 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:409:36 [INFO] [stdout] | [INFO] [stdout] 409 | ... if let Some(view) = [INFO] [stdout] | __________________________^ [INFO] [stdout] 410 | | ... target.open(self.queue.clone(), self.library.clone()) [INFO] [stdout] | |___________________________----------------------------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:417:33 [INFO] [stdout] | [INFO] [stdout] 417 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 409 ~ match target.open(self.queue.clone(), self.library.clone()) [INFO] [stdout] 410 ~ { Some(view) => { [INFO] [stdout] 411 | return EventResult::Consumed(Some(Callback::from_fn_once( [INFO] [stdout] ... [INFO] [stdout] 415 | ))); [INFO] [stdout] 416 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:435:24 [INFO] [stdout] | [INFO] [stdout] 435 | if let Some(target) = { [INFO] [stdout] | ________________________^ - [INFO] [stdout] | |___________________________________________| [INFO] [stdout] 436 | || let content = self.content.read().unwrap(); [INFO] [stdout] 437 | || content.get(self.selected).map(|t| t.as_listitem()) [INFO] [stdout] 438 | || } { [INFO] [stdout] | ||_____________________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |_____________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:443:21 [INFO] [stdout] | [INFO] [stdout] 443 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 435 ~ match { [INFO] [stdout] 436 | let content = self.content.read().unwrap(); [INFO] [stdout] 437 | content.get(self.selected).map(|t| t.as_listitem()) [INFO] [stdout] 438 ~ } { Some(target) => { [INFO] [stdout] 439 | let contextmenu = ContextMenu::new(&*target, queue, library); [INFO] [stdout] ... [INFO] [stdout] 442 | }))); [INFO] [stdout] 443 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:531:24 [INFO] [stdout] | [INFO] [stdout] 531 | if let Some(track) = track.track() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:538:21 [INFO] [stdout] | [INFO] [stdout] 538 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 531 ~ match track.track() { Some(track) => { [INFO] [stdout] 532 | let dialog = ContextMenu::add_track_dialog( [INFO] [stdout] ... [INFO] [stdout] 537 | return Ok(CommandResult::Modal(Box::new(dialog))); [INFO] [stdout] 538 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:661:20 [INFO] [stdout] | [INFO] [stdout] 661 | if let Some(target) = target { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:670:17 [INFO] [stdout] | [INFO] [stdout] 670 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 661 ~ match target { Some(target) => { [INFO] [stdout] 662 | let view = target.open(queue.clone(), library.clone()); [INFO] [stdout] ... [INFO] [stdout] 669 | }; [INFO] [stdout] 670 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:674:20 [INFO] [stdout] | [INFO] [stdout] 674 | if let Some(item) = content.get_mut(self.selected) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^-------^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:705:17 [INFO] [stdout] | [INFO] [stdout] 705 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 674 ~ match content.get_mut(self.selected) { Some(item) => { [INFO] [stdout] 675 | let queue = self.queue.clone(); [INFO] [stdout] ... [INFO] [stdout] 704 | } [INFO] [stdout] 705 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:680:32 [INFO] [stdout] | [INFO] [stdout] 680 | ... if let Some(album) = item.album(&queue) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:684:29 [INFO] [stdout] | [INFO] [stdout] 684 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 680 ~ match item.album(&queue) { Some(album) => { [INFO] [stdout] 681 | let view = [INFO] [stdout] 682 | AlbumView::new(queue, library, &album).into_boxed_view_ext(); [INFO] [stdout] 683 | return Ok(CommandResult::View(view)); [INFO] [stdout] 684 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:755:24 [INFO] [stdout] | [INFO] [stdout] 755 | if let Some(target) = target { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:764:21 [INFO] [stdout] | [INFO] [stdout] 764 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 755 ~ match target { Some(target) => { [INFO] [stdout] 756 | let view = target.open(queue.clone(), library.clone()); [INFO] [stdout] ... [INFO] [stdout] 763 | }; [INFO] [stdout] 764 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:780:20 [INFO] [stdout] | [INFO] [stdout] 780 | if let Some(mut target) = target { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/listview.rs:786:17 [INFO] [stdout] | [INFO] [stdout] 786 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 780 ~ match target { Some(mut target) => { [INFO] [stdout] 781 | let view = target.open_recommendations(queue, library); [INFO] [stdout] ... [INFO] [stdout] 785 | }; [INFO] [stdout] 786 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | if let Some(first_page) = fetch_page(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | } 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] 23 ~ match fetch_page(0) { Some(first_page) => { [INFO] [stdout] 24 | debug!( [INFO] [stdout] ... [INFO] [stdout] 36 | } [INFO] [stdout] 37 ~ } _ => { [INFO] [stdout] 38 | Self { [INFO] [stdout] ... [INFO] [stdout] 44 | } [INFO] [stdout] 45 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:72:16 [INFO] [stdout] | [INFO] [stdout] 72 | if let Some(next_page) = (self.fetch_page)(offset) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:76:13 [INFO] [stdout] | [INFO] [stdout] 76 | } 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] 72 ~ match (self.fetch_page)(offset) { Some(next_page) => { [INFO] [stdout] 73 | *self.offset.write().unwrap() = next_page.offset; [INFO] [stdout] 74 | self.items.write().unwrap().extend(next_page.items.clone()); [INFO] [stdout] 75 | Some(next_page.items) [INFO] [stdout] 76 ~ } _ => { [INFO] [stdout] 77 | None [INFO] [stdout] 78 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:144:20 [INFO] [stdout] | [INFO] [stdout] 144 | if let Some(ref cb) = *cb { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/pagination.rs:150:17 [INFO] [stdout] | [INFO] [stdout] 150 | } [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 *cb { Some(ref cb) => { [INFO] [stdout] 145 | debug!("calling paginator!"); [INFO] [stdout] ... [INFO] [stdout] 149 | library.trigger_redraw(); [INFO] [stdout] 150 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/statusbar.rs:191:12 [INFO] [stdout] | [INFO] [stdout] 191 | if let Some(t) = self.queue.get_current() { [INFO] [stdout] | ^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/statusbar.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 191 ~ match self.queue.get_current() { Some(t) => { [INFO] [stdout] 192 | printer.with_color(style_bar, |printer| { [INFO] [stdout] ... [INFO] [stdout] 196 | }); [INFO] [stdout] 197 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/statusbar.rs:228:24 [INFO] [stdout] | [INFO] [stdout] 228 | if let Some(playable) = self.queue.get_current() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/statusbar.rs:232:21 [INFO] [stdout] | [INFO] [stdout] 232 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 228 ~ match self.queue.get_current() { Some(playable) => { [INFO] [stdout] 229 | let f: f32 = position.x as f32 / self.last_size.x as f32; [INFO] [stdout] 230 | let new = playable.duration() as f32 * f; [INFO] [stdout] 231 | self.spotify.seek(new as u32); [INFO] [stdout] 232 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui/tabbedview.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 140 | if let Some(tab) = self.tabs.get(self.selected) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui/tabbedview.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | } [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.tabs.get(self.selected) { Some(tab) => { [INFO] [stdout] 141 | let printer = printer [INFO] [stdout] ... [INFO] [stdout] 145 | tab.draw(&printer); [INFO] [stdout] 146 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:346:12 [INFO] [stdout] | [INFO] [stdout] 346 | if let Some(current_track) = self.queue.get_current() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/mpris.rs:359:9 [INFO] [stdout] | [INFO] [stdout] 359 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 346 ~ match self.queue.get_current() { Some(current_track) => { [INFO] [stdout] 347 | let progress = self.spotify.get_current_progress(); [INFO] [stdout] ... [INFO] [stdout] 358 | } [INFO] [stdout] 359 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:363:12 [INFO] [stdout] | [INFO] [stdout] 363 | if let Some(current_track) = self.queue.get_current() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/mpris.rs:370:9 [INFO] [stdout] | [INFO] [stdout] 370 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 363 ~ match self.queue.get_current() { Some(current_track) => { [INFO] [stdout] 364 | let position = (position / 1000) as u32; [INFO] [stdout] ... [INFO] [stdout] 369 | } [INFO] [stdout] 370 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:390:20 [INFO] [stdout] | [INFO] [stdout] 390 | if let Ok(a) = self.spotify.api.album(&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] --> src/mpris.rs:401:17 [INFO] [stdout] | [INFO] [stdout] 401 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 390 ~ match self.spotify.api.album(&id) { Ok(a) => { [INFO] [stdout] 391 | if let Some(t) = &Album::from(&a).tracks { [INFO] [stdout] ... [INFO] [stdout] 400 | } [INFO] [stdout] 401 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:404:20 [INFO] [stdout] | [INFO] [stdout] 404 | if let Ok(t) = self.spotify.api.track(&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] --> src/mpris.rs:408:17 [INFO] [stdout] | [INFO] [stdout] 408 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 404 ~ match self.spotify.api.track(&id) { Ok(t) => { [INFO] [stdout] 405 | self.queue.clear(); [INFO] [stdout] 406 | self.queue.append(Playable::Track(Track::from(&t))); [INFO] [stdout] 407 | self.queue.play(0, false, false) [INFO] [stdout] 408 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:411:20 [INFO] [stdout] | [INFO] [stdout] 411 | if let Ok(p) = self.spotify.api.playlist(&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] --> src/mpris.rs:420:17 [INFO] [stdout] | [INFO] [stdout] 420 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 411 ~ match self.spotify.api.playlist(&id) { Ok(p) => { [INFO] [stdout] 412 | let mut playlist = Playlist::from(&p); [INFO] [stdout] ... [INFO] [stdout] 419 | } [INFO] [stdout] 420 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:423:20 [INFO] [stdout] | [INFO] [stdout] 423 | if let Ok(s) = self.spotify.api.show(&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] --> src/mpris.rs:439:17 [INFO] [stdout] | [INFO] [stdout] 439 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 423 ~ match self.spotify.api.show(&id) { Ok(s) => { [INFO] [stdout] 424 | let mut show: Show = (&s).into(); [INFO] [stdout] ... [INFO] [stdout] 438 | } [INFO] [stdout] 439 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:442:20 [INFO] [stdout] | [INFO] [stdout] 442 | if let Ok(e) = self.spotify.api.episode(&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] --> src/mpris.rs:446:17 [INFO] [stdout] | [INFO] [stdout] 446 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 442 ~ match self.spotify.api.episode(&id) { Ok(e) => { [INFO] [stdout] 443 | self.queue.clear(); [INFO] [stdout] 444 | self.queue.append(Playable::Episode(Episode::from(&e))); [INFO] [stdout] 445 | self.queue.play(0, false, false) [INFO] [stdout] 446 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:449:20 [INFO] [stdout] | [INFO] [stdout] 449 | if let Ok(a) = self.spotify.api.artist_top_tracks(&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] --> src/mpris.rs:458:17 [INFO] [stdout] | [INFO] [stdout] 458 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 449 ~ match self.spotify.api.artist_top_tracks(&id) { Ok(a) => { [INFO] [stdout] 450 | let should_shuffle = self.queue.get_shuffle(); [INFO] [stdout] ... [INFO] [stdout] 457 | self.queue.play(index, should_shuffle, should_shuffle) [INFO] [stdout] 458 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:499:16 [INFO] [stdout] | [INFO] [stdout] 499 | if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/mpris.rs:501:13 [INFO] [stdout] | [INFO] [stdout] 501 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 499 ~ match result { Err(e) => { [INFO] [stdout] 500 | log::error!("MPRIS error: {e}"); [INFO] [stdout] 501 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/mpris.rs:543:12 [INFO] [stdout] | [INFO] [stdout] 543 | if let Err(e) = self.tx.send(command) { [INFO] [stdout] | ^^^^^^^^^^^^^-------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/mpris.rs:545:9 [INFO] [stdout] | [INFO] [stdout] 545 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 543 ~ match self.tx.send(command) { Err(e) => { [INFO] [stdout] 544 | log::warn!("Could not update MPRIS state: {e}"); [INFO] [stdout] 545 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 67 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.98s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling ncspot v1.1.2 (/tmp/fixit) [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | env::set_var("PULSE_PROP_application.name", "ncspot"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | env::set_var("PULSE_PROP_stream.description", "ncurses Spotify client"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | env::set_var("PULSE_PROP_media.role", "music"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | env::set_var("PULSE_PROP_application.name", "ncspot"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | env::set_var("PULSE_PROP_stream.description", "ncurses Spotify client"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/spotify.rs:208:13 [INFO] [stdout] | [INFO] [stdout] 208 | env::set_var("PULSE_PROP_media.role", "music"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 3 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `ncspot` (bin "ncspot") due to 4 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 3 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `ncspot` (bin "ncspot" test) due to 4 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" "caa13f2f59cc6a2d3e13f0e46dec63e49cb08644c7192a1519aa5ddcc9dafc7c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "caa13f2f59cc6a2d3e13f0e46dec63e49cb08644c7192a1519aa5ddcc9dafc7c", kill_on_drop: false }` [INFO] [stdout] caa13f2f59cc6a2d3e13f0e46dec63e49cb08644c7192a1519aa5ddcc9dafc7c