[INFO] cloning repository https://github.com/KittydaCat/autofy [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KittydaCat/autofy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKittydaCat%2Fautofy", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKittydaCat%2Fautofy'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0d6648f7231ce02e6fab8bed51a37143bf2b7613 [INFO] testing KittydaCat/autofy against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKittydaCat%2Fautofy" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/KittydaCat/autofy [INFO] finished tweaking git repo https://github.com/KittydaCat/autofy [INFO] tweaked toml for git repo https://github.com/KittydaCat/autofy written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/KittydaCat/autofy on toolchain 1.99.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 217 packages to highest Rust 1.99.0-beta.1 compatible versions [INFO] [stderr] Adding crossterm v0.28.1 (available: v0.29.0) [INFO] [stderr] Adding generic-array v0.14.7 (available: v0.14.9) [INFO] [stderr] Adding itertools v0.14.0 (available: v0.15.0) [INFO] [stderr] Adding ratatui v0.29.0 (available: v0.30.2) [INFO] [stderr] Adding rspotify v0.14.0 (available: v0.16.1) [INFO] [stderr] Adding unicode-width v0.2.0 (available: v0.2.2) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa [INFO] running `Command { std: "docker" "start" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling syn v3.0.4 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling smallvec v1.16.0 [INFO] [stderr] Compiling litemap v0.8.3 [INFO] [stderr] Compiling writeable v0.6.4 [INFO] [stderr] Compiling icu_properties_data v2.3.0 [INFO] [stderr] Compiling icu_normalizer_data v2.3.0 [INFO] [stderr] Compiling find-msvc-tools v0.1.11 [INFO] [stderr] Compiling log v0.4.34 [INFO] [stderr] Compiling memchr v2.8.3 [INFO] [stderr] Compiling rustversion v1.0.23 [INFO] [stderr] Compiling num-conv v0.2.2 [INFO] [stderr] Compiling time-core v0.1.9 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling cookie v0.18.2 [INFO] [stderr] Compiling cc v1.4.4 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling time-macros v0.2.32 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rustls v0.23.43 [INFO] [stderr] Compiling indexmap v2.14.1 [INFO] [stderr] Compiling webpki-roots v1.0.9 [INFO] [stderr] Compiling thread_local v1.1.10 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling object v0.37.3 [INFO] [stderr] Compiling either v1.18.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling webpki-roots v0.26.11 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling socks v0.3.4 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.2.3 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling serde_json v1.0.151 [INFO] [stderr] Compiling eyre v0.6.14 [INFO] [stderr] Compiling instability v0.3.13 [INFO] [stderr] Compiling gimli v0.32.3 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling color-spantrace v0.3.0 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling zerofrom v0.1.8 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Compiling yoke v0.8.3 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling maybe-async v0.2.11 [INFO] [stderr] Compiling tracing-error v0.2.1 [INFO] [stderr] Compiling indenter v0.3.4 [INFO] [stderr] Compiling rustc-demangle v0.1.28 [INFO] [stderr] Compiling time v0.3.55 [INFO] [stderr] Compiling unicode-segmentation v1.13.3 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling owo-colors v4.4.0 [INFO] [stderr] Compiling compact_str v0.8.2 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling rspotify-macros v0.14.0 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling darling_core v0.24.1 [INFO] [stderr] Compiling addr2line v0.25.1 [INFO] [stderr] Compiling zerovec-derive v0.11.6 [INFO] [stderr] Compiling displaydoc v0.2.7 [INFO] [stderr] Compiling serde_derive v1.0.229 [INFO] [stderr] Compiling thiserror-impl v2.0.20 [INFO] [stderr] Compiling zerotrie v0.2.5 [INFO] [stderr] Compiling thiserror v2.0.20 [INFO] [stderr] Compiling zerovec v0.11.8 [INFO] [stderr] Compiling tinystr v0.8.4 [INFO] [stderr] Compiling potential_utf v0.1.6 [INFO] [stderr] Compiling icu_collections v2.3.0 [INFO] [stderr] Compiling icu_locale_core v2.3.0 [INFO] [stderr] Compiling darling_macro v0.24.1 [INFO] [stderr] Compiling backtrace v0.3.76 [INFO] [stderr] Compiling darling v0.24.1 [INFO] [stderr] Compiling icu_provider v2.3.1 [INFO] [stderr] Compiling serde v1.0.229 [INFO] [stderr] Compiling icu_properties v2.3.0 [INFO] [stderr] Compiling icu_normalizer v2.3.0 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling color-eyre v0.6.5 [INFO] [stderr] Compiling chrono v0.4.45 [INFO] [stderr] Compiling idna_adapter v1.2.2 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling rspotify-model v0.14.0 [INFO] [stderr] Compiling cookie_store v0.21.1 [INFO] [stderr] Compiling webbrowser v1.2.4 [INFO] [stderr] Compiling rustls-webpki v0.103.15 [INFO] [stderr] Compiling ureq v2.12.1 [INFO] [stderr] Compiling rspotify-http v0.14.0 [INFO] [stderr] Compiling rspotify v0.14.0 [INFO] [stderr] Compiling Autofy v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `AuthCodeSpotify`, `Credentials`, `OAuth`, and `scopes` [INFO] [stdout] --> src/main.rs:3:16 [INFO] [stdout] | [INFO] [stdout] 3 | use rspotify::{scopes, AuthCodeSpotify, Credentials, OAuth}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rspotify::prelude::OAuthClient` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use rspotify::prelude::OAuthClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Pipe`, `Playlist`, `Source`, and `update_spotify` [INFO] [stdout] --> src/main.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::backend::{Playlist, Pipe, Source, update_spotify}; [INFO] [stdout] | ^^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Frame` [INFO] [stdout] --> src/frontend.rs:3:32 [INFO] [stdout] | [INFO] [stdout] 3 | use ratatui::{DefaultTerminal, Frame}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StatefulWidget` [INFO] [stdout] --> src/frontend.rs:6:31 [INFO] [stdout] | [INFO] [stdout] 6 | use ratatui::prelude::{Color, StatefulWidget, Style, Widget}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HighlightSpacing` and `List` [INFO] [stdout] --> src/frontend.rs:7:40 [INFO] [stdout] | [INFO] [stdout] 7 | use ratatui::widgets::{Block, Borders, HighlightSpacing, List, ListItem, ListState}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `song` [INFO] [stdout] --> src/backend.rs:96:23 [INFO] [stdout] | [INFO] [stdout] 96 | fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_song` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `client` [INFO] [stdout] --> src/backend.rs:96:42 [INFO] [stdout] | [INFO] [stdout] 96 | fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/backend.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | let mut songs_to_add = songs.iter() [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/frontend.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | x => {dbg!(code);} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/frontend.rs:350:21 [INFO] [stdout] | [INFO] [stdout] 350 | fn render(self, area: Rect, buf: &mut Buffer) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buf` [INFO] [stdout] --> src/frontend.rs:350:33 [INFO] [stdout] | [INFO] [stdout] 350 | fn render(self, area: Rect, buf: &mut Buffer) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_buf` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `main_block` [INFO] [stdout] --> src/frontend.rs:351:13 [INFO] [stdout] | [INFO] [stdout] 351 | let main_block = Block::new() [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_block` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PREFIX` is never used [INFO] [stdout] --> src/backend.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const PREFIX: &str = "Autofy"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `sources`, and `is_shadow` are never read [INFO] [stdout] --> src/backend.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Playlist { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 10 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | pub(crate) sources: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 12 | // allow_duplicates: bool, // will be assumed false for now [INFO] [stdout] 13 | pub(crate) is_shadow: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Playlist` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_songs` is never used [INFO] [stdout] --> src/backend.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 16 | impl Playlist { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 17 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `source`, `filters`, and `name` are never read [INFO] [stdout] --> src/backend.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct Pipe { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 34 | pub source: Source, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 35 | pub filters: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 36 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Pipe` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_songs` is never used [INFO] [stdout] --> src/backend.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 39 | impl Pipe { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 40 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Songs`, `AutoPlaylist`, `Playlist`, and `Album` are never constructed [INFO] [stdout] --> src/backend.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum Source { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 56 | // this just seems like a playlist might be able to be shared [INFO] [stdout] 57 | Songs {raw_imports: Vec>, name: String}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 58 | [INFO] [stdout] 59 | AutoPlaylist(Playlist), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 60 | Playlist(model::PlaylistId<'static>), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 61 | Album(model::AlbumId<'static>), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Source` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_songs` is never used [INFO] [stdout] --> src/backend.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 64 | impl Source { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 65 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `name` and `matches` are never used [INFO] [stdout] --> src/backend.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 90 | impl Filter { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 91 | [INFO] [stdout] 92 | pub(crate) fn name(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_spotify` is never used [INFO] [stdout] --> src/backend.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn update_spotify(playlists: &[Playlist], client: &AuthCodeSpotify, user_id: UserId) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_auth` is never used [INFO] [stdout] --> src/backend.rs:171:8 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn get_auth() -> color_eyre::Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/backend.rs:191:8 [INFO] [stdout] | [INFO] [stdout] 191 | pub fn main() -> color_eyre::Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `playlists_list_state` is never read [INFO] [stdout] --> src/frontend.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 14 | EditingPlaylists { [INFO] [stdout] | ---------------- field in this variant [INFO] [stdout] 15 | playlists_list_state: ListState, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EditingSources` and `EditingFilters` are never constructed [INFO] [stdout] --> src/frontend.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 12 | enum Screen{ [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 20 | EditingSources { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | EditingFilters { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `demote` and `promote` are never used [INFO] [stdout] --> src/frontend.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 32 | impl Screen { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 33 | [INFO] [stdout] 34 | fn demote(self) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | fn promote(self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `playlists` and `screen` are never read [INFO] [stdout] --> src/frontend.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 111 | struct App { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 112 | playlists: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 113 | screen: Screen, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `App` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_items` and `get_items2` are never used [INFO] [stdout] --> src/frontend.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 120 | impl App { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 162 | fn get_items(&self) -> [Option>;3] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | fn get_items2(&self) -> [Option<(ListState, Vec)>;3] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/backend.rs:17:18 [INFO] [stdout] | [INFO] [stdout] 17 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 17 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/backend.rs:40:18 [INFO] [stdout] | [INFO] [stdout] 40 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 40 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/backend.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 65 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 65 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/frontend.rs:162:18 [INFO] [stdout] | [INFO] [stdout] 162 | fn get_items(&self) -> [Option>;3] { [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 162 | fn get_items(&self) -> [Option>>;3] { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/frontend.rs:269:19 [INFO] [stdout] | [INFO] [stdout] 269 | fn get_items2(&self) -> [Option<(ListState, Vec)>;3] { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 269 | fn get_items2(&self) -> [Option<(ListState, Vec>)>;3] { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 1m 31s [INFO] running `Command { std: "docker" "inspect" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling Autofy v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `AuthCodeSpotify`, `Credentials`, `OAuth`, and `scopes` [INFO] [stdout] --> src/main.rs:3:16 [INFO] [stdout] | [INFO] [stdout] 3 | use rspotify::{scopes, AuthCodeSpotify, Credentials, OAuth}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rspotify::prelude::OAuthClient` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use rspotify::prelude::OAuthClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Pipe`, `Playlist`, `Source`, and `update_spotify` [INFO] [stdout] --> src/main.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::backend::{Playlist, Pipe, Source, update_spotify}; [INFO] [stdout] | ^^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Frame` [INFO] [stdout] --> src/frontend.rs:3:32 [INFO] [stdout] | [INFO] [stdout] 3 | use ratatui::{DefaultTerminal, Frame}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StatefulWidget` [INFO] [stdout] --> src/frontend.rs:6:31 [INFO] [stdout] | [INFO] [stdout] 6 | use ratatui::prelude::{Color, StatefulWidget, Style, Widget}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HighlightSpacing` and `List` [INFO] [stdout] --> src/frontend.rs:7:40 [INFO] [stdout] | [INFO] [stdout] 7 | use ratatui::widgets::{Block, Borders, HighlightSpacing, List, ListItem, ListState}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `song` [INFO] [stdout] --> src/backend.rs:96:23 [INFO] [stdout] | [INFO] [stdout] 96 | fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_song` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `client` [INFO] [stdout] --> src/backend.rs:96:42 [INFO] [stdout] | [INFO] [stdout] 96 | fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/backend.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | let mut songs_to_add = songs.iter() [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/frontend.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | x => {dbg!(code);} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/frontend.rs:350:21 [INFO] [stdout] | [INFO] [stdout] 350 | fn render(self, area: Rect, buf: &mut Buffer) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buf` [INFO] [stdout] --> src/frontend.rs:350:33 [INFO] [stdout] | [INFO] [stdout] 350 | fn render(self, area: Rect, buf: &mut Buffer) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_buf` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `main_block` [INFO] [stdout] --> src/frontend.rs:351:13 [INFO] [stdout] | [INFO] [stdout] 351 | let main_block = Block::new() [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_block` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PREFIX` is never used [INFO] [stdout] --> src/backend.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const PREFIX: &str = "Autofy"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `sources`, and `is_shadow` are never read [INFO] [stdout] --> src/backend.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Playlist { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 10 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | pub(crate) sources: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 12 | // allow_duplicates: bool, // will be assumed false for now [INFO] [stdout] 13 | pub(crate) is_shadow: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Playlist` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_songs` is never used [INFO] [stdout] --> src/backend.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 16 | impl Playlist { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 17 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `source`, `filters`, and `name` are never read [INFO] [stdout] --> src/backend.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct Pipe { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 34 | pub source: Source, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 35 | pub filters: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 36 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Pipe` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_songs` is never used [INFO] [stdout] --> src/backend.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 39 | impl Pipe { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 40 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Songs`, `AutoPlaylist`, `Playlist`, and `Album` are never constructed [INFO] [stdout] --> src/backend.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum Source { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 56 | // this just seems like a playlist might be able to be shared [INFO] [stdout] 57 | Songs {raw_imports: Vec>, name: String}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 58 | [INFO] [stdout] 59 | AutoPlaylist(Playlist), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 60 | Playlist(model::PlaylistId<'static>), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 61 | Album(model::AlbumId<'static>), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Source` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_songs` is never used [INFO] [stdout] --> src/backend.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 64 | impl Source { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 65 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `name` and `matches` are never used [INFO] [stdout] --> src/backend.rs:92:19 [INFO] [stdout] | [INFO] [stdout] 90 | impl Filter { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 91 | [INFO] [stdout] 92 | pub(crate) fn name(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_spotify` is never used [INFO] [stdout] --> src/backend.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn update_spotify(playlists: &[Playlist], client: &AuthCodeSpotify, user_id: UserId) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_auth` is never used [INFO] [stdout] --> src/backend.rs:171:8 [INFO] [stdout] | [INFO] [stdout] 171 | pub fn get_auth() -> color_eyre::Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/backend.rs:191:8 [INFO] [stdout] | [INFO] [stdout] 191 | pub fn main() -> color_eyre::Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `playlists_list_state` is never read [INFO] [stdout] --> src/frontend.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 14 | EditingPlaylists { [INFO] [stdout] | ---------------- field in this variant [INFO] [stdout] 15 | playlists_list_state: ListState, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EditingSources` and `EditingFilters` are never constructed [INFO] [stdout] --> src/frontend.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 12 | enum Screen{ [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 20 | EditingSources { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | EditingFilters { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `demote` and `promote` are never used [INFO] [stdout] --> src/frontend.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 32 | impl Screen { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 33 | [INFO] [stdout] 34 | fn demote(self) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | fn promote(self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `playlists` and `screen` are never read [INFO] [stdout] --> src/frontend.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 111 | struct App { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 112 | playlists: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 113 | screen: Screen, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `App` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_items` and `get_items2` are never used [INFO] [stdout] --> src/frontend.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 120 | impl App { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 162 | fn get_items(&self) -> [Option>;3] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | fn get_items2(&self) -> [Option<(ListState, Vec)>;3] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/backend.rs:17:18 [INFO] [stdout] | [INFO] [stdout] 17 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 17 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/backend.rs:40:18 [INFO] [stdout] | [INFO] [stdout] 40 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 40 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/backend.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 65 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 65 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/frontend.rs:162:18 [INFO] [stdout] | [INFO] [stdout] 162 | fn get_items(&self) -> [Option>;3] { [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 162 | fn get_items(&self) -> [Option>>;3] { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/frontend.rs:269:19 [INFO] [stdout] | [INFO] [stdout] 269 | fn get_items2(&self) -> [Option<(ListState, Vec)>;3] { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 269 | fn get_items2(&self) -> [Option<(ListState, Vec>)>;3] { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.63s [INFO] running `Command { std: "docker" "inspect" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `AuthCodeSpotify`, `Credentials`, `OAuth`, and `scopes` [INFO] [stderr] --> src/main.rs:3:16 [INFO] [stderr] | [INFO] [stderr] 3 | use rspotify::{scopes, AuthCodeSpotify, Credentials, OAuth}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `rspotify::prelude::OAuthClient` [INFO] [stderr] --> src/main.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use rspotify::prelude::OAuthClient; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Pipe`, `Playlist`, `Source`, and `update_spotify` [INFO] [stderr] --> src/main.rs:5:22 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::backend::{Playlist, Pipe, Source, update_spotify}; [INFO] [stderr] | ^^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Frame` [INFO] [stderr] --> src/frontend.rs:3:32 [INFO] [stderr] | [INFO] [stderr] 3 | use ratatui::{DefaultTerminal, Frame}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `StatefulWidget` [INFO] [stderr] --> src/frontend.rs:6:31 [INFO] [stderr] | [INFO] [stderr] 6 | use ratatui::prelude::{Color, StatefulWidget, Style, Widget}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `HighlightSpacing` and `List` [INFO] [stderr] --> src/frontend.rs:7:40 [INFO] [stderr] | [INFO] [stderr] 7 | use ratatui::widgets::{Block, Borders, HighlightSpacing, List, ListItem, ListState}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `song` [INFO] [stderr] --> src/backend.rs:96:23 [INFO] [stderr] | [INFO] [stderr] 96 | fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_song` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `client` [INFO] [stderr] --> src/backend.rs:96:42 [INFO] [stderr] | [INFO] [stderr] 96 | fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/backend.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | let mut songs_to_add = songs.iter() [INFO] [stderr] | ----^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/frontend.rs:157:13 [INFO] [stderr] | [INFO] [stderr] 157 | x => {dbg!(code);} [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `area` [INFO] [stderr] --> src/frontend.rs:350:21 [INFO] [stderr] | [INFO] [stderr] 350 | fn render(self, area: Rect, buf: &mut Buffer) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buf` [INFO] [stderr] --> src/frontend.rs:350:33 [INFO] [stderr] | [INFO] [stderr] 350 | fn render(self, area: Rect, buf: &mut Buffer) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_buf` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `main_block` [INFO] [stderr] --> src/frontend.rs:351:13 [INFO] [stderr] | [INFO] [stderr] 351 | let main_block = Block::new() [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_block` [INFO] [stderr] [INFO] [stderr] warning: constant `PREFIX` is never used [INFO] [stderr] --> src/backend.rs:6:7 [INFO] [stderr] | [INFO] [stderr] 6 | const PREFIX: &str = "Autofy"; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: fields `name`, `sources`, and `is_shadow` are never read [INFO] [stderr] --> src/backend.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 9 | pub struct Playlist { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] 10 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 11 | pub(crate) sources: Vec, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 12 | // allow_duplicates: bool, // will be assumed false for now [INFO] [stderr] 13 | pub(crate) is_shadow: bool, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Playlist` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `get_songs` is never used [INFO] [stderr] --> src/backend.rs:17:8 [INFO] [stderr] | [INFO] [stderr] 16 | impl Playlist { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] 17 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `source`, `filters`, and `name` are never read [INFO] [stderr] --> src/backend.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 33 | pub struct Pipe { [INFO] [stderr] | ---- fields in this struct [INFO] [stderr] 34 | pub source: Source, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 35 | pub filters: Vec, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 36 | pub name: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Pipe` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `get_songs` is never used [INFO] [stderr] --> src/backend.rs:40:8 [INFO] [stderr] | [INFO] [stderr] 39 | impl Pipe { [INFO] [stderr] | --------- method in this implementation [INFO] [stderr] 40 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `Songs`, `AutoPlaylist`, `Playlist`, and `Album` are never constructed [INFO] [stderr] --> src/backend.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 55 | pub enum Source { [INFO] [stderr] | ------ variants in this enum [INFO] [stderr] 56 | // this just seems like a playlist might be able to be shared [INFO] [stderr] 57 | Songs {raw_imports: Vec>, name: String}, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 58 | [INFO] [stderr] 59 | AutoPlaylist(Playlist), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 60 | Playlist(model::PlaylistId<'static>), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 61 | Album(model::AlbumId<'static>), [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Source` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `get_songs` is never used [INFO] [stderr] --> src/backend.rs:65:8 [INFO] [stderr] | [INFO] [stderr] 64 | impl Source { [INFO] [stderr] | ----------- method in this implementation [INFO] [stderr] 65 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `name` and `matches` are never used [INFO] [stderr] --> src/backend.rs:92:19 [INFO] [stderr] | [INFO] [stderr] 90 | impl Filter { [INFO] [stderr] | ----------- methods in this implementation [INFO] [stderr] 91 | [INFO] [stderr] 92 | pub(crate) fn name(&self) -> &str { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 96 | fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `update_spotify` is never used [INFO] [stderr] --> src/backend.rs:103:8 [INFO] [stderr] | [INFO] [stderr] 103 | pub fn update_spotify(playlists: &[Playlist], client: &AuthCodeSpotify, user_id: UserId) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_auth` is never used [INFO] [stderr] --> src/backend.rs:171:8 [INFO] [stderr] | [INFO] [stderr] 171 | pub fn get_auth() -> color_eyre::Result { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `main` is never used [INFO] [stderr] --> src/backend.rs:191:8 [INFO] [stderr] | [INFO] [stderr] 191 | pub fn main() -> color_eyre::Result<()> { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `playlists_list_state` is never read [INFO] [stderr] --> src/frontend.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 14 | EditingPlaylists { [INFO] [stderr] | ---------------- field in this variant [INFO] [stderr] 15 | playlists_list_state: ListState, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `EditingSources` and `EditingFilters` are never constructed [INFO] [stderr] --> src/frontend.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 12 | enum Screen{ [INFO] [stderr] | ------ variants in this enum [INFO] [stderr] ... [INFO] [stderr] 20 | EditingSources { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 25 | EditingFilters { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: methods `demote` and `promote` are never used [INFO] [stderr] --> src/frontend.rs:34:8 [INFO] [stderr] | [INFO] [stderr] 32 | impl Screen { [INFO] [stderr] | ----------- methods in this implementation [INFO] [stderr] 33 | [INFO] [stderr] 34 | fn demote(self) -> Self { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 69 | fn promote(self) -> Self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `playlists` and `screen` are never read [INFO] [stderr] --> src/frontend.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 111 | struct App { [INFO] [stderr] | --- fields in this struct [INFO] [stderr] 112 | playlists: Vec, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 113 | screen: Screen, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `App` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: methods `get_items` and `get_items2` are never used [INFO] [stderr] --> src/frontend.rs:162:8 [INFO] [stderr] | [INFO] [stderr] 120 | impl App { [INFO] [stderr] | -------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 162 | fn get_items(&self) -> [Option>;3] { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 269 | fn get_items2(&self) -> [Option<(ListState, Vec)>;3] { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/backend.rs:17:18 [INFO] [stderr] | [INFO] [stderr] 17 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 17 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/backend.rs:40:18 [INFO] [stderr] | [INFO] [stderr] 40 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 40 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/backend.rs:65:18 [INFO] [stderr] | [INFO] [stderr] 65 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 65 | fn get_songs(&self, client: &AuthCodeSpotify) -> Vec> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/frontend.rs:162:18 [INFO] [stderr] | [INFO] [stderr] 162 | fn get_items(&self) -> [Option>;3] { [INFO] [stderr] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 162 | fn get_items(&self) -> [Option>>;3] { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/frontend.rs:269:19 [INFO] [stderr] | [INFO] [stderr] 269 | fn get_items2(&self) -> [Option<(ListState, Vec)>;3] { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 269 | fn get_items2(&self) -> [Option<(ListState, Vec>)>;3] { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: `Autofy` (bin "Autofy" test) generated 34 warnings (run `cargo fix --bin "Autofy" -p Autofy --tests` to apply 18 suggestions) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.24s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/deps/Autofy-5f96a68f9ddfe985) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }` [INFO] [stdout] d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa