[INFO] fetching crate shellcaster 2.0.1...
[INFO] testing shellcaster-2.0.1 against 1.95.0 for beta-1.96-2
[INFO] extracting crate shellcaster 2.0.1 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate shellcaster 2.0.1
[INFO] finished tweaking crates.io crate shellcaster 2.0.1
[INFO] tweaked toml for crates.io crate shellcaster 2.0.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate shellcaster 2.0.1 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate shellcaster 2.0.1 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded webpki v0.22.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.75
[INFO] [stderr]   Downloaded crossterm_winapi v0.9.0
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.1
[INFO] [stderr]   Downloaded strong-xml-derive v0.6.3
[INFO] [stderr]   Downloaded derive_builder v0.10.2
[INFO] [stderr]   Downloaded entities v1.0.1
[INFO] [stderr]   Downloaded signal-hook v0.3.13
[INFO] [stderr]   Downloaded openssl-sys v0.9.66
[INFO] [stderr]   Downloaded security-framework v2.3.1
[INFO] [stderr]   Downloaded quick-xml v0.22.0
[INFO] [stderr]   Downloaded flate2 v1.0.22
[INFO] [stderr]   Downloaded clap v3.1.2
[INFO] [stderr]   Downloaded rusqlite v0.26.3
[INFO] [stderr]   Downloaded syn v1.0.74
[INFO] [stderr]   Downloaded openssl v0.10.36
[INFO] [stderr]   Downloaded rustls v0.20.2
[INFO] [stderr]   Downloaded bumpalo v3.7.0
[INFO] [stderr]   Downloaded crossterm v0.23.0
[INFO] [stderr]   Downloaded darling v0.12.4
[INFO] [stderr]   Downloaded webpki-roots v0.22.2
[INFO] [stderr]   Downloaded libc v0.2.99
[INFO] [stderr]   Downloaded js-sys v0.3.52
[INFO] [stderr]   Downloaded web-sys v0.3.52
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.75
[INFO] [stderr]   Downloaded ureq v2.4.0
[INFO] [stderr]   Downloaded escaper v0.1.1
[INFO] [stderr]   Downloaded semver v1.0.6
[INFO] [stderr]   Downloaded native-tls v0.2.8
[INFO] [stderr]   Downloaded rustls-pemfile v0.2.1
[INFO] [stderr]   Downloaded rustls-native-certs v0.6.1
[INFO] [stderr]   Downloaded tinyvec v1.3.1
[INFO] [stderr]   Downloaded cc v1.0.69
[INFO] [stderr]   Downloaded jetscii v0.5.0
[INFO] [stderr]   Downloaded rfc822_sanitizer v0.3.6
[INFO] [stderr]   Downloaded atom_syndication v0.11.0
[INFO] [stderr]   Downloaded darling_core v0.12.4
[INFO] [stderr]   Downloaded hashlink v0.7.0
[INFO] [stderr]   Downloaded chunked_transfer v1.4.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.75
[INFO] [stderr]   Downloaded sct v0.7.0
[INFO] [stderr]   Downloaded openssl-probe v0.1.4
[INFO] [stderr]   Downloaded security-framework-sys v2.3.0
[INFO] [stderr]   Downloaded diligent-date-parser v0.1.3
[INFO] [stderr]   Downloaded derive_builder_core v0.10.2
[INFO] [stderr]   Downloaded rss v2.0.0
[INFO] [stderr]   Downloaded darling_macro v0.12.4
[INFO] [stderr]   Downloaded derive_builder_macro v0.10.2
[INFO] [stderr]   Downloaded sanitize-filename v0.3.0
[INFO] [stderr]   Downloaded smawk v0.3.1
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.75
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.75
[INFO] [stderr]   Downloaded libsqlite3-sys v0.23.2
[INFO] [stderr]   Downloaded strong-xml v0.6.3
[INFO] [stderr]   Downloaded opml v1.1.3
[INFO] [stderr]   Downloaded unicode-linebreak v0.1.2
[INFO] [stderr]   Downloaded xmlparser v0.13.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cce834e5d68429e3d595bb48659f205e2e5e663ac9b0b5144d1ff2cc8be309ca
[INFO] running `Command { std: "docker" "start" "-a" "cce834e5d68429e3d595bb48659f205e2e5e663ac9b0b5144d1ff2cc8be309ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cce834e5d68429e3d595bb48659f205e2e5e663ac9b0b5144d1ff2cc8be309ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cce834e5d68429e3d595bb48659f205e2e5e663ac9b0b5144d1ff2cc8be309ca", kill_on_drop: false }`
[INFO] [stdout] cce834e5d68429e3d595bb48659f205e2e5e663ac9b0b5144d1ff2cc8be309ca
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f91e2e967e325220b9be87f62ec5742afe61c87578522b666494c3c1931544b1
[INFO] running `Command { std: "docker" "start" "-a" "f91e2e967e325220b9be87f62ec5742afe61c87578522b666494c3c1931544b1", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.99
[INFO] [stderr]    Compiling proc-macro2 v1.0.28
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling syn v1.0.74
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]    Compiling once_cell v1.8.0
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling cc v1.0.69
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling regex-syntax v0.6.25
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]    Compiling untrusted v0.7.1
[INFO] [stderr]    Compiling spin v0.5.2
[INFO] [stderr]    Compiling aho-corasick v0.7.18
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling encoding_rs v0.8.28
[INFO] [stderr]    Compiling getrandom v0.2.3
[INFO] [stderr]    Compiling time v0.1.43
[INFO] [stderr]    Compiling tinyvec_macros v0.1.0
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling serde_derive v1.0.136
[INFO] [stderr]    Compiling hashbrown v0.11.2
[INFO] [stderr]    Compiling tinyvec v1.3.1
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling chrono v0.4.19
[INFO] [stderr]    Compiling signal-hook v0.3.13
[INFO] [stderr]    Compiling jetscii v0.5.0
[INFO] [stderr]    Compiling pkg-config v0.3.19
[INFO] [stderr]    Compiling crc32fast v1.3.1
[INFO] [stderr]    Compiling serde v1.0.136
[INFO] [stderr]    Compiling parking_lot_core v0.9.1
[INFO] [stderr]    Compiling regex v1.5.4
[INFO] [stderr]    Compiling smallvec v1.6.1
[INFO] [stderr]    Compiling matches v0.1.9
[INFO] [stderr]    Compiling libsqlite3-sys v0.23.2
[INFO] [stderr]    Compiling unicode-normalization v0.1.19
[INFO] [stderr]    Compiling signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling indexmap v1.8.0
[INFO] [stderr]    Compiling unicode-bidi v0.3.6
[INFO] [stderr]    Compiling base64 v0.13.0
[INFO] [stderr]    Compiling form_urlencoded v1.0.1
[INFO] [stderr]    Compiling rustls-pemfile v0.2.1
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling quick-xml v0.22.0
[INFO] [stderr]    Compiling webpki v0.22.0
[INFO] [stderr]    Compiling sct v0.7.0
[INFO] [stderr]    Compiling lock_api v0.4.6
[INFO] [stderr]    Compiling darling_core v0.12.4
[INFO] [stderr]    Compiling diligent-date-parser v0.1.3
[INFO] [stderr]    Compiling mio v0.7.13
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling never v0.1.0
[INFO] [stderr]    Compiling unicode-width v0.1.8
[INFO] [stderr]    Compiling smawk v0.3.1
[INFO] [stderr]    Compiling semver v1.0.6
[INFO] [stderr]    Compiling openssl-probe v0.1.4
[INFO] [stderr]    Compiling xmlparser v0.13.3
[INFO] [stderr]    Compiling anyhow v1.0.55
[INFO] [stderr]    Compiling rustls-native-certs v0.6.1
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.1
[INFO] [stderr]    Compiling parking_lot v0.12.0
[INFO] [stderr]    Compiling flate2 v1.0.22
[INFO] [stderr]    Compiling rustls v0.20.2
[INFO] [stderr]    Compiling webpki-roots v0.22.2
[INFO] [stderr]    Compiling unicode-linebreak v0.1.2
[INFO] [stderr]    Compiling url v2.2.2
[INFO] [stderr]    Compiling hashlink v0.7.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling os_str_bytes v6.0.0
[INFO] [stderr]    Compiling entities v1.0.1
[INFO] [stderr]    Compiling chunked_transfer v1.4.0
[INFO] [stderr]    Compiling termcolor v1.1.2
[INFO] [stderr]    Compiling rusqlite v0.26.3
[INFO] [stderr]    Compiling escaper v0.1.1
[INFO] [stderr]    Compiling crossterm v0.23.0
[INFO] [stderr]    Compiling darling_macro v0.12.4
[INFO] [stderr]    Compiling strong-xml-derive v0.6.3
[INFO] [stderr]    Compiling darling v0.12.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling derive_builder_core v0.10.2
[INFO] [stderr]    Compiling textwrap v0.14.2
[INFO] [stderr]    Compiling clap v3.1.2
[INFO] [stderr]    Compiling shellexpand v2.1.0
[INFO] [stderr]    Compiling strong-xml v0.6.3
[INFO] [stderr]    Compiling sanitize-filename v0.3.0
[INFO] [stderr]    Compiling derive_builder_macro v0.10.2
[INFO] [stderr]    Compiling rfc822_sanitizer v0.3.6
[INFO] [stderr]    Compiling ureq v2.4.0
[INFO] [stderr]    Compiling thiserror v1.0.30
[INFO] [stderr]    Compiling unicode-segmentation v1.8.0
[INFO] [stderr]    Compiling nohash-hasher v0.2.0
[INFO] [stderr]    Compiling derive_builder v0.10.2
[INFO] [stderr]    Compiling atom_syndication v0.11.0
[INFO] [stderr]    Compiling rss v2.0.0
[INFO] [stderr]    Compiling toml v0.5.8
[INFO] [stderr]    Compiling opml v1.1.3
[INFO] [stderr]    Compiling shellcaster v2.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/downloads.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     ResponseError(EpData),
[INFO] [stdout]    |     ------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DownloadMsg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     ResponseError(EpData),
[INFO] [stdout] 18 +     ResponseError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/downloads.rs:19:21
[INFO] [stdout]    |
[INFO] [stdout] 19 |     FileCreateError(EpData),
[INFO] [stdout]    |     --------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DownloadMsg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 19 -     FileCreateError(EpData),
[INFO] [stdout] 19 +     FileCreateError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/downloads.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 |     FileWriteError(EpData),
[INFO] [stdout]    |     -------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DownloadMsg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 20 -     FileWriteError(EpData),
[INFO] [stdout] 20 +     FileWriteError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `description`, `author`, and `last_checked` are never read
[INFO] [stdout]   --> src/types.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Podcast {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 39 |     pub author: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 40 |     pub explicit: Option<bool>,
[INFO] [stdout] 41 |     pub last_checked: DateTime<Utc>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Podcast` 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: field `total_rows` is never read
[INFO] [stdout]   --> src/ui/details_panel.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct DetailsPanel {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub total_rows: u16, // the total number of rows the details take up
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DetailsPanel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types.rs:311:23
[INFO] [stdout]     |
[INFO] [stdout] 311 |     pub fn borrow_map(&self) -> MutexGuard<HashMap<i64, T, BuildNoHashHasher<i64>>> {
[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]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 311 |     pub fn borrow_map(&self) -> MutexGuard<'_, HashMap<i64, T, BuildNoHashHasher<i64>>> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types.rs:316:25
[INFO] [stdout]     |
[INFO] [stdout] 316 |     pub fn borrow_order(&self) -> MutexGuard<Vec<i64>> {
[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] 316 |     pub fn borrow_order(&self) -> MutexGuard<'_, Vec<i64>> {
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types.rs:321:34
[INFO] [stdout]     |
[INFO] [stdout] 321 |     pub fn borrow_filtered_order(&self) -> MutexGuard<Vec<i64>> {
[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] 321 |     pub fn borrow_filtered_order(&self) -> MutexGuard<'_, Vec<i64>> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 329 |     ) -> (
[INFO] [stdout] 330 |         MutexGuard<HashMap<i64, T, BuildNoHashHasher<i64>>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout] 331 |         MutexGuard<Vec<i64>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout] 332 |         MutexGuard<Vec<i64>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ 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] 330 ~         MutexGuard<'_, HashMap<i64, T, BuildNoHashHasher<i64>>>,
[INFO] [stdout] 331 ~         MutexGuard<'_, Vec<i64>>,
[INFO] [stdout] 332 ~         MutexGuard<'_, Vec<i64>>,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/types.rs:419:26
[INFO] [stdout]     |
[INFO] [stdout] 419 |         let (map, order, _) = self.borrow();
[INFO] [stdout]     |                          ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stdout]     = note: `#[warn(let_underscore_lock)]` (part of `#[warn(let_underscore)]`) on by default
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 419 |         let (map, order, _unused) = self.borrow();
[INFO] [stdout]     |                           ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/ui/menu.rs:71:19
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let (map, _, order) = self.items.borrow();
[INFO] [stdout]    |                   ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let (map, _unused, order) = self.items.borrow();
[INFO] [stdout]    |                    ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/ui/menu.rs:287:28
[INFO] [stdout]     |
[INFO] [stdout] 287 |         let (borrowed_map, _, borrowed_order) = self.items.borrow();
[INFO] [stdout]     |                            ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 287 |         let (borrowed_map, _unused, borrowed_order) = self.items.borrow();
[INFO] [stdout]     |                             ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/ui/menu.rs:356:52
[INFO] [stdout]     |
[INFO] [stdout] 356 |             let (mut borrowed_map, borrowed_order, _) = self.items.borrow();
[INFO] [stdout]     |                                                    ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 356 |             let (mut borrowed_map, borrowed_order, _unused) = self.items.borrow();
[INFO] [stdout]     |                                                     ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 20s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: quick-xml v0.22.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "f91e2e967e325220b9be87f62ec5742afe61c87578522b666494c3c1931544b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f91e2e967e325220b9be87f62ec5742afe61c87578522b666494c3c1931544b1", kill_on_drop: false }`
[INFO] [stdout] f91e2e967e325220b9be87f62ec5742afe61c87578522b666494c3c1931544b1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 575031444dba5fd4f443fdd022bc0fb0c8f4b1908e39d73dbde53c855ffc2033
[INFO] running `Command { std: "docker" "start" "-a" "575031444dba5fd4f443fdd022bc0fb0c8f4b1908e39d73dbde53c855ffc2033", kill_on_drop: false }`
[INFO] [stderr]    Compiling shellcaster v2.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/downloads.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     ResponseError(EpData),
[INFO] [stdout]    |     ------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DownloadMsg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     ResponseError(EpData),
[INFO] [stdout] 18 +     ResponseError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/downloads.rs:19:21
[INFO] [stdout]    |
[INFO] [stdout] 19 |     FileCreateError(EpData),
[INFO] [stdout]    |     --------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DownloadMsg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 19 -     FileCreateError(EpData),
[INFO] [stdout] 19 +     FileCreateError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/downloads.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 |     FileWriteError(EpData),
[INFO] [stdout]    |     -------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DownloadMsg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 20 -     FileWriteError(EpData),
[INFO] [stdout] 20 +     FileWriteError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `description`, `author`, and `last_checked` are never read
[INFO] [stdout]   --> src/types.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Podcast {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 39 |     pub author: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 40 |     pub explicit: Option<bool>,
[INFO] [stdout] 41 |     pub last_checked: DateTime<Utc>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Podcast` 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: fields `screen_pos` and `title` are never read
[INFO] [stdout]   --> src/ui/mock_panel.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Panel {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 10 |     pub buffer: Vec<String>,
[INFO] [stdout] 11 |     pub screen_pos: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     pub colors: Rc<AppColors>,
[INFO] [stdout] 13 |     pub title: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Panel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_rows` is never read
[INFO] [stdout]   --> src/ui/details_panel.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct DetailsPanel {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub total_rows: u16, // the total number of rows the details take up
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DetailsPanel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types.rs:311:23
[INFO] [stdout]     |
[INFO] [stdout] 311 |     pub fn borrow_map(&self) -> MutexGuard<HashMap<i64, T, BuildNoHashHasher<i64>>> {
[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]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 311 |     pub fn borrow_map(&self) -> MutexGuard<'_, HashMap<i64, T, BuildNoHashHasher<i64>>> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types.rs:316:25
[INFO] [stdout]     |
[INFO] [stdout] 316 |     pub fn borrow_order(&self) -> MutexGuard<Vec<i64>> {
[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] 316 |     pub fn borrow_order(&self) -> MutexGuard<'_, Vec<i64>> {
[INFO] [stdout]     |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types.rs:321:34
[INFO] [stdout]     |
[INFO] [stdout] 321 |     pub fn borrow_filtered_order(&self) -> MutexGuard<Vec<i64>> {
[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] 321 |     pub fn borrow_filtered_order(&self) -> MutexGuard<'_, Vec<i64>> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/types.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 329 |     ) -> (
[INFO] [stdout] 330 |         MutexGuard<HashMap<i64, T, BuildNoHashHasher<i64>>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout] 331 |         MutexGuard<Vec<i64>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout] 332 |         MutexGuard<Vec<i64>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ 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] 330 ~         MutexGuard<'_, HashMap<i64, T, BuildNoHashHasher<i64>>>,
[INFO] [stdout] 331 ~         MutexGuard<'_, Vec<i64>>,
[INFO] [stdout] 332 ~         MutexGuard<'_, Vec<i64>>,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/types.rs:419:26
[INFO] [stdout]     |
[INFO] [stdout] 419 |         let (map, order, _) = self.borrow();
[INFO] [stdout]     |                          ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stdout]     = note: `#[warn(let_underscore_lock)]` (part of `#[warn(let_underscore)]`) on by default
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 419 |         let (map, order, _unused) = self.borrow();
[INFO] [stdout]     |                           ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]   --> src/ui/menu.rs:71:19
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let (map, _, order) = self.items.borrow();
[INFO] [stdout]    |                   ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let (map, _unused, order) = self.items.borrow();
[INFO] [stdout]    |                    ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/ui/menu.rs:287:28
[INFO] [stdout]     |
[INFO] [stdout] 287 |         let (borrowed_map, _, borrowed_order) = self.items.borrow();
[INFO] [stdout]     |                            ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 287 |         let (borrowed_map, _unused, borrowed_order) = self.items.borrow();
[INFO] [stdout]     |                             ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/ui/menu.rs:356:52
[INFO] [stdout]     |
[INFO] [stdout] 356 |             let (mut borrowed_map, borrowed_order, _) = self.items.borrow();
[INFO] [stdout]     |                                                    ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 356 |             let (mut borrowed_map, borrowed_order, _unused) = self.items.borrow();
[INFO] [stdout]     |                                                     ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.28s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: quick-xml v0.22.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "575031444dba5fd4f443fdd022bc0fb0c8f4b1908e39d73dbde53c855ffc2033", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "575031444dba5fd4f443fdd022bc0fb0c8f4b1908e39d73dbde53c855ffc2033", kill_on_drop: false }`
[INFO] [stdout] 575031444dba5fd4f443fdd022bc0fb0c8f4b1908e39d73dbde53c855ffc2033
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 548a53166a434b9e7ed593b5e4aa500d714d8adaf3e953c476a0117d5166ac92
[INFO] running `Command { std: "docker" "start" "-a" "548a53166a434b9e7ed593b5e4aa500d714d8adaf3e953c476a0117d5166ac92", kill_on_drop: false }`
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/downloads.rs:18:19
[INFO] [stderr]    |
[INFO] [stderr] 18 |     ResponseError(EpData),
[INFO] [stderr]    |     ------------- ^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DownloadMsg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 18 -     ResponseError(EpData),
[INFO] [stderr] 18 +     ResponseError(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/downloads.rs:19:21
[INFO] [stderr]    |
[INFO] [stderr] 19 |     FileCreateError(EpData),
[INFO] [stderr]    |     --------------- ^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DownloadMsg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 19 -     FileCreateError(EpData),
[INFO] [stderr] 19 +     FileCreateError(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/downloads.rs:20:20
[INFO] [stderr]    |
[INFO] [stderr] 20 |     FileWriteError(EpData),
[INFO] [stderr]    |     -------------- ^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DownloadMsg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 20 -     FileWriteError(EpData),
[INFO] [stderr] 20 +     FileWriteError(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `description`, `author`, and `last_checked` are never read
[INFO] [stderr]   --> src/types.rs:38:9
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub struct Podcast {
[INFO] [stderr]    |            ------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub description: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 39 |     pub author: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 40 |     pub explicit: Option<bool>,
[INFO] [stderr] 41 |     pub last_checked: DateTime<Utc>,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Podcast` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `screen_pos` and `title` are never read
[INFO] [stderr]   --> src/ui/mock_panel.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub struct Panel {
[INFO] [stderr]    |            ----- fields in this struct
[INFO] [stderr] 10 |     pub buffer: Vec<String>,
[INFO] [stderr] 11 |     pub screen_pos: usize,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 12 |     pub colors: Rc<AppColors>,
[INFO] [stderr] 13 |     pub title: String,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Panel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `total_rows` is never read
[INFO] [stderr]   --> src/ui/details_panel.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub struct DetailsPanel {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub total_rows: u16, // the total number of rows the details take up
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DetailsPanel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/types.rs:311:23
[INFO] [stderr]     |
[INFO] [stderr] 311 |     pub fn borrow_map(&self) -> MutexGuard<HashMap<i64, T, BuildNoHashHasher<i64>>> {
[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]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 311 |     pub fn borrow_map(&self) -> MutexGuard<'_, HashMap<i64, T, BuildNoHashHasher<i64>>> {
[INFO] [stderr]     |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/types.rs:316:25
[INFO] [stderr]     |
[INFO] [stderr] 316 |     pub fn borrow_order(&self) -> MutexGuard<Vec<i64>> {
[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] 316 |     pub fn borrow_order(&self) -> MutexGuard<'_, Vec<i64>> {
[INFO] [stderr]     |                                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/types.rs:321:34
[INFO] [stderr]     |
[INFO] [stderr] 321 |     pub fn borrow_filtered_order(&self) -> MutexGuard<Vec<i64>> {
[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] 321 |     pub fn borrow_filtered_order(&self) -> MutexGuard<'_, Vec<i64>> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/types.rs:328:9
[INFO] [stderr]     |
[INFO] [stderr] 328 |         &self,
[INFO] [stderr]     |         ^^^^^ the lifetime is elided here
[INFO] [stderr] 329 |     ) -> (
[INFO] [stderr] 330 |         MutexGuard<HashMap<i64, T, BuildNoHashHasher<i64>>>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr] 331 |         MutexGuard<Vec<i64>>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr] 332 |         MutexGuard<Vec<i64>>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^ 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] 330 ~         MutexGuard<'_, HashMap<i64, T, BuildNoHashHasher<i64>>>,
[INFO] [stderr] 331 ~         MutexGuard<'_, Vec<i64>>,
[INFO] [stderr] 332 ~         MutexGuard<'_, Vec<i64>>,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]    --> src/types.rs:419:26
[INFO] [stderr]     |
[INFO] [stderr] 419 |         let (map, order, _) = self.borrow();
[INFO] [stderr]     |                          ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]     |
[INFO] [stderr]     = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stderr]     = note: `#[warn(let_underscore_lock)]` (part of `#[warn(let_underscore)]`) on by default
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]     |
[INFO] [stderr] 419 |         let (map, order, _unused) = self.borrow();
[INFO] [stderr]     |                           ++++++
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]   --> src/ui/menu.rs:71:19
[INFO] [stderr]    |
[INFO] [stderr] 71 |         let (map, _, order) = self.items.borrow();
[INFO] [stderr]    |                   ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]    |
[INFO] [stderr] 71 |         let (map, _unused, order) = self.items.borrow();
[INFO] [stderr]    |                    ++++++
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]    --> src/ui/menu.rs:287:28
[INFO] [stderr]     |
[INFO] [stderr] 287 |         let (borrowed_map, _, borrowed_order) = self.items.borrow();
[INFO] [stderr]     |                            ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]     |
[INFO] [stderr]     = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]     |
[INFO] [stderr] 287 |         let (borrowed_map, _unused, borrowed_order) = self.items.borrow();
[INFO] [stderr]     |                             ++++++
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]    --> src/ui/menu.rs:356:52
[INFO] [stderr]     |
[INFO] [stderr] 356 |             let (mut borrowed_map, borrowed_order, _) = self.items.borrow();
[INFO] [stderr]     |                                                    ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]     |
[INFO] [stderr]     = help: consider immediately dropping the value using `drop(..)` after the `let` statement
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]     |
[INFO] [stderr] 356 |             let (mut borrowed_map, borrowed_order, _unused) = self.items.borrow();
[INFO] [stderr]     |                                                     ++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `shellcaster` (bin "shellcaster" test) generated 14 warnings (run `cargo fix --bin "shellcaster" -p shellcaster --tests` to apply 8 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: quick-xml v0.22.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/shellcaster-679ab749b1f99765)
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test feeds::tests::duration_hhhmmss ... ok
[INFO] [stdout] test feeds::tests::duration_hhmmss ... ok
[INFO] [stdout] test feeds::tests::duration_hmmss ... ok
[INFO] [stdout] test feeds::tests::duration_mss ... ok
[INFO] [stdout] test feeds::tests::duration_mmss ... ok
[INFO] [stdout] test feeds::tests::duration_sss ... ok
[INFO] [stdout] test feeds::tests::duration_mmmss ... ok
[INFO] [stdout] test feeds::tests::nan_duration ... ok
[INFO] [stdout] test feeds::tests::duration_ss ... ok
[INFO] [stdout] test feeds::tests::nonnumeric_duration ... ok
[INFO] [stdout] test ui::colors::tests::color_invalid_hex2 ... ok
[INFO] [stdout] test feeds::tests::no_episodes ... ok
[INFO] [stdout] test ui::colors::tests::color_hex ... ok
[INFO] [stdout] test ui::colors::tests::color_invalid_hex ... ok
[INFO] [stdout] test feeds::tests::duration_s ... ok
[INFO] [stdout] test ui::menu::tests::chop_accent ... ok
[INFO] [stdout] test ui::menu::tests::chop_emoji ... ok
[INFO] [stdout] test ui::menu::tests::resize_bigger ... ok
[INFO] [stdout] test ui::colors::tests::color_rgb_no_space ... ok
[INFO] [stdout] test ui::colors::tests::color_rgb_upper ... ok
[INFO] [stdout] test ui::menu::tests::scroll_down ... ok
[INFO] [stdout] test ui::menu::tests::resize_smaller ... ok
[INFO] [stdout] test ui::menu::tests::scroll_up ... ok
[INFO] [stdout] test feeds::tests::no_description ... ok
[INFO] [stdout] test feeds::tests::invalid_explicit ... ok
[INFO] [stdout] test ui::colors::tests::color_rgb ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "548a53166a434b9e7ed593b5e4aa500d714d8adaf3e953c476a0117d5166ac92", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "548a53166a434b9e7ed593b5e4aa500d714d8adaf3e953c476a0117d5166ac92", kill_on_drop: false }`
[INFO] [stdout] 548a53166a434b9e7ed593b5e4aa500d714d8adaf3e953c476a0117d5166ac92
