[INFO] crate sermon 0.1.12 is already in cache
[INFO] checking sermon-0.1.12 against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] extracting crate sermon 0.1.12 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate sermon 0.1.12
[INFO] finished tweaking crates.io crate sermon 0.1.12
[INFO] tweaked toml for crates.io crate sermon 0.1.12 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate sermon 0.1.12 on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate sermon 0.1.12 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" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:46:12
[INFO] [stderr]    |
[INFO] [stderr] 46 | homepage = "https://gitlab.com/kr4bz/sermon"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 | repository = "https://gitlab.com/kr4bz/sermon"
[INFO] [stderr]    |              ---------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `sermon` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] daca303c67d21dbbcfd4e4bd8090a6d9286bcffa55019fddc8a9d363996bc519
[INFO] running `Command { std: "docker" "start" "daca303c67d21dbbcfd4e4bd8090a6d9286bcffa55019fddc8a9d363996bc519", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "daca303c67d21dbbcfd4e4bd8090a6d9286bcffa55019fddc8a9d363996bc519", 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" "daca303c67d21dbbcfd4e4bd8090a6d9286bcffa55019fddc8a9d363996bc519" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "daca303c67d21dbbcfd4e4bd8090a6d9286bcffa55019fddc8a9d363996bc519", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "daca303c67d21dbbcfd4e4bd8090a6d9286bcffa55019fddc8a9d363996bc519" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:46:12
[INFO] [stderr]    |
[INFO] [stderr] 46 | homepage = "https://gitlab.com/kr4bz/sermon"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 | repository = "https://gitlab.com/kr4bz/sermon"
[INFO] [stderr]    |              ---------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `sermon` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking writeable v0.6.4
[INFO] [stderr]     Checking unicode-truncate v2.0.1
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]    Compiling icu_locale_fallback_data v2.3.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking kasuari v0.4.12
[INFO] [stderr]     Checking litemap v0.8.3
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]     Checking num-conv v0.2.0
[INFO] [stderr]    Compiling icu_segmenter_data v2.3.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.2
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling color-spantrace v0.3.0
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking indenter v0.3.4
[INFO] [stderr]     Checking unescaper v0.1.8
[INFO] [stderr]     Checking object v0.37.3
[INFO] [stderr]     Checking hashlink v0.12.1
[INFO] [stderr]     Checking smawk v0.3.2
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking tracing-error v0.2.1
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking libudev v0.3.0
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]    Compiling synstructure v0.14.0
[INFO] [stderr]     Checking bitflags v2.13.1
[INFO] [stderr]     Checking line-clipping v0.3.5
[INFO] [stderr]    Compiling zerofrom-derive v0.1.8
[INFO] [stderr]    Compiling yoke-derive v0.8.3
[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]     Checking serialport v4.10.1
[INFO] [stderr]     Checking zerotrie v0.2.5
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking zerovec v0.11.8
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking color-eyre v0.6.5
[INFO] [stderr]     Checking tinystr v0.8.4
[INFO] [stderr]     Checking potential_utf v0.1.6
[INFO] [stderr]     Checking icu_collections v2.3.0
[INFO] [stderr]     Checking icu_locale_core v2.3.0
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking icu_provider v2.3.1
[INFO] [stderr]     Checking icu_locale_fallback v2.3.0
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking icu_segmenter v2.3.0
[INFO] [stderr]     Checking ratatui-core v0.1.2
[INFO] [stderr]     Checking textwrap v0.16.4
[INFO] [stderr]     Checking ratatui-widgets v0.3.2
[INFO] [stderr]     Checking ratatui-crossterm v0.1.2
[INFO] [stderr]     Checking ratatui-macros v0.7.2
[INFO] [stderr]     Checking ratatui v0.30.2
[INFO] [stderr]     Checking rusqlite v0.40.2
[INFO] [stderr]     Checking sermon v0.1.12 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `label` is never read
[INFO] [stdout]   --> src/components/checkbox.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Checkbox {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub label: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Checkbox` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render_widget` and `handle_keys` are never used
[INFO] [stdout]   --> src/components/checkbox.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Checkbox {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn render_widget(&self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn handle_keys(&mut self, key_event: KeyEvent) -> Option<bool> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ReadTimeout`, `ResetOnStart`, `DTR`, and `RTS` are never constructed
[INFO] [stdout]   --> src/components/config.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum ConfigFocus {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 68 |     ReadTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 69 |     ResetOnStart,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 70 |     DTR,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 71 |     RTS,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfigFocus` 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 `with_max_visible` is never used
[INFO] [stdout]   --> src/components/drop_down.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<T: fmt::Display + PartialEq> Dropdown<T> {
[INFO] [stdout]    | --------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn with_max_visible(mut self, n: u16) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Warn` is never constructed
[INFO] [stdout]   --> src/components/notification.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum Level {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] 33 |     Info,
[INFO] [stdout] 34 |     Warn,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Level` 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 `with_on_change` and `set_default` are never used
[INFO] [stdout]    --> src/components/user_input.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl UserInput {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn with_on_change(mut self, f: impl Fn(&str) + 'static) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn set_default(&mut self, text: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TrackedValue` is never used
[INFO] [stdout]   --> src/components/value_tracker.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum TrackedValue {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValueTrackerState` is never constructed
[INFO] [stdout]   --> src/components/value_tracker.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ValueTrackerState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/components/value_tracker.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl ValueTrackerState {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(config: Arc<Mutex<Config>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `variants` and `next` are never used
[INFO] [stdout]   --> src/serial.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl LineEndingMode {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn variants() -> &'static [Self] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn next(&self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dtr` and `rts` are never read
[INFO] [stdout]    --> src/serial.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout]  94 | pub struct PortConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub dtr: bool, // Data Terminal Ready
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 107 |     pub rts: bool, // Request To Send
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PortConfig` 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: associated constant `TABLE` is never used
[INFO] [stdout]   --> src/store.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> LogEntry<'a> {
[INFO] [stdout]    | --------------------- associated constant in this implementation
[INFO] [stdout] 16 |     pub const TABLE: &'static str = "logs";
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `session` are never read
[INFO] [stdout]   --> src/store.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct LogRecord {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 34 |     pub id: i64,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 35 |     pub session: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LogRecord` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `export_logs_txt`, `export_logs_csv`, and `export_table_csv` are never used
[INFO] [stdout]    --> src/store.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl LogStore {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn export_logs_txt(&self, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn export_logs_csv(&self, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn export_table_csv(&self, table: &str, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Span<'_>`
[INFO] [stdout]    --> src/components/log_view.rs:397:33
[INFO] [stdout]     |
[INFO] [stdout] 397 |                     Action::Raw("AUTO-SCROLL".green().bold().into())
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 397 -                     Action::Raw("AUTO-SCROLL".green().bold().into())
[INFO] [stdout] 397 +                     Action::Raw("AUTO-SCROLL".green().bold())
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 397 -                     Action::Raw("AUTO-SCROLL".green().bold().into())
[INFO] [stdout] 397 +                     Action::Raw(<Span<'_> as Into<_>>::into("AUTO-SCROLL".green().bold()))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Span<'_>`
[INFO] [stdout]    --> src/components/notification.rs:368:25
[INFO] [stdout]     |
[INFO] [stdout] 368 |                         format!(" {}s ", left.as_secs()).dim().into()
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 368 -                         format!(" {}s ", left.as_secs()).dim().into()
[INFO] [stdout] 368 +                         format!(" {}s ", left.as_secs()).dim()
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 368 -                         format!(" {}s ", left.as_secs()).dim().into()
[INFO] [stdout] 368 +                         <Span<'_> as Into<_>>::into(format!(" {}s ", left.as_secs()).dim())
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Span<'_>`
[INFO] [stdout]   --> src/styles.rs:72:28
[INFO] [stdout]    |
[INFO] [stdout] 72 |                 spans.push(" | ".dark_gray().into());
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 72 -                 spans.push(" | ".dark_gray().into());
[INFO] [stdout] 72 +                 spans.push(" | ".dark_gray());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 72 -                 spans.push(" | ".dark_gray().into());
[INFO] [stdout] 72 +                 spans.push(<Span<'_> as Into<_>>::into(" | ".dark_gray()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(&str, &str)`
[INFO] [stdout]    --> src/views/monitor.rs:476:25
[INFO] [stdout]     |
[INFO] [stdout] 476 |                         ("Alt+f", "Cycle format").into(),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 476 -                         ("Alt+f", "Cycle format").into(),
[INFO] [stdout] 476 +                         ("Alt+f", "Cycle format"),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 476 -                         ("Alt+f", "Cycle format").into(),
[INFO] [stdout] 476 +                         <(&str, &str) as Into<_>>::into(("Alt+f", "Cycle format")),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sermon` (bin "sermon") due to 4 previous errors; 14 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: field `label` is never read
[INFO] [stdout]   --> src/components/checkbox.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Checkbox {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub label: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Checkbox` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render_widget` and `handle_keys` are never used
[INFO] [stdout]   --> src/components/checkbox.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Checkbox {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn render_widget(&self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn handle_keys(&mut self, key_event: KeyEvent) -> Option<bool> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ReadTimeout`, `ResetOnStart`, `DTR`, and `RTS` are never constructed
[INFO] [stdout]   --> src/components/config.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum ConfigFocus {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 68 |     ReadTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 69 |     ResetOnStart,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 70 |     DTR,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 71 |     RTS,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfigFocus` 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 `with_max_visible` is never used
[INFO] [stdout]   --> src/components/drop_down.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<T: fmt::Display + PartialEq> Dropdown<T> {
[INFO] [stdout]    | --------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn with_max_visible(mut self, n: u16) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Warn` is never constructed
[INFO] [stdout]   --> src/components/notification.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum Level {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] 33 |     Info,
[INFO] [stdout] 34 |     Warn,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Level` 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 `with_on_change` and `set_default` are never used
[INFO] [stdout]    --> src/components/user_input.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  93 | impl UserInput {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn with_on_change(mut self, f: impl Fn(&str) + 'static) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn set_default(&mut self, text: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TrackedValue` is never used
[INFO] [stdout]   --> src/components/value_tracker.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum TrackedValue {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValueTrackerState` is never constructed
[INFO] [stdout]   --> src/components/value_tracker.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ValueTrackerState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/components/value_tracker.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl ValueTrackerState {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(config: Arc<Mutex<Config>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `variants` and `next` are never used
[INFO] [stdout]   --> src/serial.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl LineEndingMode {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn variants() -> &'static [Self] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn next(&self) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dtr` and `rts` are never read
[INFO] [stdout]    --> src/serial.rs:106:9
[INFO] [stdout]     |
[INFO] [stdout]  94 | pub struct PortConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub dtr: bool, // Data Terminal Ready
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 107 |     pub rts: bool, // Request To Send
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PortConfig` 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: associated constant `TABLE` is never used
[INFO] [stdout]   --> src/store.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> LogEntry<'a> {
[INFO] [stdout]    | --------------------- associated constant in this implementation
[INFO] [stdout] 16 |     pub const TABLE: &'static str = "logs";
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `session` are never read
[INFO] [stdout]   --> src/store.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct LogRecord {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 34 |     pub id: i64,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 35 |     pub session: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LogRecord` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `export_logs_txt`, `export_logs_csv`, and `export_table_csv` are never used
[INFO] [stdout]    --> src/store.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl LogStore {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn export_logs_txt(&self, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn export_logs_csv(&self, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn export_table_csv(&self, table: &str, path: &str, session: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Span<'_>`
[INFO] [stdout]    --> src/components/log_view.rs:397:33
[INFO] [stdout]     |
[INFO] [stdout] 397 |                     Action::Raw("AUTO-SCROLL".green().bold().into())
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 397 -                     Action::Raw("AUTO-SCROLL".green().bold().into())
[INFO] [stdout] 397 +                     Action::Raw("AUTO-SCROLL".green().bold())
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 397 -                     Action::Raw("AUTO-SCROLL".green().bold().into())
[INFO] [stdout] 397 +                     Action::Raw(<Span<'_> as Into<_>>::into("AUTO-SCROLL".green().bold()))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Span<'_>`
[INFO] [stdout]    --> src/components/notification.rs:368:25
[INFO] [stdout]     |
[INFO] [stdout] 368 |                         format!(" {}s ", left.as_secs()).dim().into()
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 368 -                         format!(" {}s ", left.as_secs()).dim().into()
[INFO] [stdout] 368 +                         format!(" {}s ", left.as_secs()).dim()
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 368 -                         format!(" {}s ", left.as_secs()).dim().into()
[INFO] [stdout] 368 +                         <Span<'_> as Into<_>>::into(format!(" {}s ", left.as_secs()).dim())
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Span<'_>`
[INFO] [stdout]   --> src/styles.rs:72:28
[INFO] [stdout]    |
[INFO] [stdout] 72 |                 spans.push(" | ".dark_gray().into());
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 72 -                 spans.push(" | ".dark_gray().into());
[INFO] [stdout] 72 +                 spans.push(" | ".dark_gray());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 72 -                 spans.push(" | ".dark_gray().into());
[INFO] [stdout] 72 +                 spans.push(<Span<'_> as Into<_>>::into(" | ".dark_gray()));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(&str, &str)`
[INFO] [stdout]    --> src/views/monitor.rs:476:25
[INFO] [stdout]     |
[INFO] [stdout] 476 |                         ("Alt+f", "Cycle format").into(),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 476 -                         ("Alt+f", "Cycle format").into(),
[INFO] [stdout] 476 +                         ("Alt+f", "Cycle format"),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 476 -                         ("Alt+f", "Cycle format").into(),
[INFO] [stdout] 476 +                         <(&str, &str) as Into<_>>::into(("Alt+f", "Cycle format")),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sermon` (bin "sermon" test) due to 4 previous errors; 14 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "daca303c67d21dbbcfd4e4bd8090a6d9286bcffa55019fddc8a9d363996bc519", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "daca303c67d21dbbcfd4e4bd8090a6d9286bcffa55019fddc8a9d363996bc519", kill_on_drop: false }`
[INFO] [stdout] daca303c67d21dbbcfd4e4bd8090a6d9286bcffa55019fddc8a9d363996bc519
