[INFO] cloning repository https://github.com/harikrishna-t-s/bAssist
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/harikrishna-t-s/bAssist" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fharikrishna-t-s%2FbAssist", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fharikrishna-t-s%2FbAssist'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b5f5468080cf83c77c1e1bcee4162de53ed471e2
[INFO] testing harikrishna-t-s/bAssist against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fharikrishna-t-s%2FbAssist" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  42% (857/2005)
Updating files:  43% (863/2005)
Updating files:  44% (883/2005)
Updating files:  45% (903/2005)
Updating files:  46% (923/2005)
Updating files:  47% (943/2005)
Updating files:  48% (963/2005)
Updating files:  49% (983/2005)
Updating files:  50% (1003/2005)
Updating files:  51% (1023/2005)
Updating files:  52% (1043/2005)
Updating files:  53% (1063/2005)
Updating files:  54% (1083/2005)
Updating files:  55% (1103/2005)
Updating files:  56% (1123/2005)
Updating files:  57% (1143/2005)
Updating files:  58% (1163/2005)
Updating files:  59% (1183/2005)
Updating files:  60% (1203/2005)
Updating files:  61% (1224/2005)
Updating files:  62% (1244/2005)
Updating files:  63% (1264/2005)
Updating files:  64% (1284/2005)
Updating files:  65% (1304/2005)
Updating files:  66% (1324/2005)
Updating files:  67% (1344/2005)
Updating files:  68% (1364/2005)
Updating files:  69% (1384/2005)
Updating files:  70% (1404/2005)
Updating files:  71% (1424/2005)
Updating files:  72% (1444/2005)
Updating files:  73% (1464/2005)
Updating files:  74% (1484/2005)
Updating files:  75% (1504/2005)
Updating files:  76% (1524/2005)
Updating files:  77% (1544/2005)
Updating files:  78% (1564/2005)
Updating files:  79% (1584/2005)
Updating files:  80% (1604/2005)
Updating files:  81% (1625/2005)
Updating files:  82% (1645/2005)
Updating files:  83% (1665/2005)
Updating files:  84% (1685/2005)
Updating files:  85% (1705/2005)
Updating files:  86% (1725/2005)
Updating files:  87% (1745/2005)
Updating files:  88% (1765/2005)
Updating files:  89% (1785/2005)
Updating files:  90% (1805/2005)
Updating files:  91% (1825/2005)
Updating files:  92% (1845/2005)
Updating files:  93% (1865/2005)
Updating files:  94% (1885/2005)
Updating files:  95% (1905/2005)
Updating files:  95% (1907/2005)
Updating files:  96% (1925/2005)
Updating files:  97% (1945/2005)
Updating files:  98% (1965/2005)
Updating files:  99% (1985/2005)
Updating files: 100% (2005/2005)
Updating files: 100% (2005/2005), done.
[INFO] started tweaking git repo https://github.com/harikrishna-t-s/bAssist
[INFO] finished tweaking git repo https://github.com/harikrishna-t-s/bAssist
[INFO] tweaked toml for git repo https://github.com/harikrishna-t-s/bAssist written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/harikrishna-t-s/bAssist on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/harikrishna-t-s/bAssist 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ratatui v0.24.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7b4754cfe2d7b97b1956ae0a0ec935cb7db8f55ea7f5c12a68a3ff70d31d98ad
[INFO] running `Command { std: "docker" "start" "-a" "7b4754cfe2d7b97b1956ae0a0ec935cb7db8f55ea7f5c12a68a3ff70d31d98ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7b4754cfe2d7b97b1956ae0a0ec935cb7db8f55ea7f5c12a68a3ff70d31d98ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b4754cfe2d7b97b1956ae0a0ec935cb7db8f55ea7f5c12a68a3ff70d31d98ad", kill_on_drop: false }`
[INFO] [stdout] 7b4754cfe2d7b97b1956ae0a0ec935cb7db8f55ea7f5c12a68a3ff70d31d98ad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6af6e48cce50f56771689c2aa605b9b6b89b606e46265d66027a375a0ed88513
[INFO] running `Command { std: "docker" "start" "-a" "6af6e48cce50f56771689c2aa605b9b6b89b606e46265d66027a375a0ed88513", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling uuid v1.23.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.25.3
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling strum v0.25.0
[INFO] [stderr]    Compiling ratatui v0.24.0
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling bassist v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `command_db` is never read
[INFO] [stdout]   --> src/tui/interface.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct TUIInterface {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 44 |     /// Command database
[INFO] [stdout] 45 |     command_db: CommandDatabase,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn render(&self) -> List {
[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] 32 |     pub fn render(&self) -> List<'_> {
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn render(&self) -> Paragraph {
[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] 62 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn render(&self) -> Paragraph {
[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] 86 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_commands_by_category`, `increment_usage`, and `save_commands` are never used
[INFO] [stdout]    --> src/core/command_db.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl CommandDatabase {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_commands_by_category(&self, category: &str) -> Result<Vec<Command>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn increment_usage(&mut self, command_id: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn save_commands(&self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `matched_keywords` is never read
[INFO] [stdout]   --> src/core/matcher.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct CommandMatch {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub matched_keywords: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandMatch` 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 `find_exact_matches` and `get_suggestions` are never used
[INFO] [stdout]    --> src/core/matcher.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl FuzzyMatcher {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn find_exact_matches(&self, query: &str, commands: &[Command]) -> Vec<Command> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn get_suggestions(&self, partial: &str, commands: &[Command], limit: usize) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryEntry` is never constructed
[INFO] [stdout]   --> src/core/history.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct HistoryEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HistoryType` is never used
[INFO] [stdout]   --> src/core/history.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum HistoryType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryMetadata` is never constructed
[INFO] [stdout]   --> src/core/history.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct HistoryMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryManager` is never constructed
[INFO] [stdout]   --> src/core/history.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct HistoryManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/history.rs:73:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl HistoryManager {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  72 |     /// Create a new history manager
[INFO] [stdout]  73 |     pub fn new() -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     fn get_history_path() -> Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn load_history(&mut self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn save_history(&self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn add_entry(&mut self, entry_type: HistoryType, content: String, metadata: HistoryMetadata) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn get_recent_entries(&self, limit: usize) -> Vec<HistoryEntry> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn get_entries_by_type(&self, entry_type: &HistoryType, limit: usize) -> Vec<HistoryEntry> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn get_command_history(&self, limit: usize) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn get_search_history(&self, limit: usize) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn clear_history(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn get_statistics(&self) -> HistoryStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryStats` is never constructed
[INFO] [stdout]    --> src/core/history.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct HistoryStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `command_db` is never read
[INFO] [stdout]   --> src/tui/interface.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct TUIInterface {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 44 |     /// Command database
[INFO] [stdout] 45 |     command_db: CommandDatabase,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandList` is never constructed
[INFO] [stdout]   --> src/tui/components.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct CommandList {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `selected`, and `render` are never used
[INFO] [stdout]   --> src/tui/components.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl CommandList {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 20 |     pub fn new(items: Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn selected(mut self, index: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn render(&self) -> List {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StatusBar` is never constructed
[INFO] [stdout]   --> src/tui/components.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct StatusBar {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `render` are never used
[INFO] [stdout]   --> src/tui/components.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl StatusBar {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 58 |     pub fn new(text: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn render(&self) -> Paragraph {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HelpText` is never constructed
[INFO] [stdout]   --> src/tui/components.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct HelpText {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `render` are never used
[INFO] [stdout]   --> src/tui/components.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl HelpText {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 75 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn render(&self) -> Paragraph {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/alias/manager.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl AliasManager {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn update_alias(&mut self, name: &str, command: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn get_alias(&self, name: &str) -> Option<&String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn alias_exists(&self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn alias_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn clear_aliases(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn import_aliases(&mut self, file_path: &str) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn export_aliases(&self, file_path: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn validate_alias_name(name: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn validate_alias_command(command: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_default_aliases` and `load_defaults_if_empty` are never used
[INFO] [stdout]    --> src/alias/manager.rs:237:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | impl AliasManager {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 236 |     /// Get default aliases
[INFO] [stdout] 237 |     pub fn get_default_aliases() -> HashMap<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn load_defaults_if_empty(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]   --> src/utils/config.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Config {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConfigManager` is never constructed
[INFO] [stdout]   --> src/utils/config.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct ConfigManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/config.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl ConfigManager {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  52 |     /// Create a new configuration manager
[INFO] [stdout]  53 |     pub fn new() -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn get_config_path() -> Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn load_config(&mut self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn save_config(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn get_config(&self) -> &Config {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn update_config<F>(&mut self, updater: F) -> Result<()>
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn reset_to_defaults(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn render(&self) -> List {
[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] 32 |     pub fn render(&self) -> List<'_> {
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn render(&self) -> Paragraph {
[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] 62 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn render(&self) -> Paragraph {
[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] 86 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.36s
[INFO] running `Command { std: "docker" "inspect" "6af6e48cce50f56771689c2aa605b9b6b89b606e46265d66027a375a0ed88513", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6af6e48cce50f56771689c2aa605b9b6b89b606e46265d66027a375a0ed88513", kill_on_drop: false }`
[INFO] [stdout] 6af6e48cce50f56771689c2aa605b9b6b89b606e46265d66027a375a0ed88513
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 62e69b884db1763b1139d05bcb9be305de16b71e67bec808f302f65043dabd9b
[INFO] running `Command { std: "docker" "start" "-a" "62e69b884db1763b1139d05bcb9be305de16b71e67bec808f302f65043dabd9b", kill_on_drop: false }`
[INFO] [stdout] warning: field `command_db` is never read
[INFO] [stdout]   --> src/tui/interface.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct TUIInterface {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 44 |     /// Command database
[INFO] [stdout] 45 |     command_db: CommandDatabase,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling bassist v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn render(&self) -> List {
[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] 32 |     pub fn render(&self) -> List<'_> {
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn render(&self) -> Paragraph {
[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] 62 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn render(&self) -> Paragraph {
[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] 86 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `command_db` is never read
[INFO] [stdout]   --> src/tui/interface.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct TUIInterface {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 44 |     /// Command database
[INFO] [stdout] 45 |     command_db: CommandDatabase,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn render(&self) -> List {
[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] 32 |     pub fn render(&self) -> List<'_> {
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn render(&self) -> Paragraph {
[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] 62 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn render(&self) -> Paragraph {
[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] 86 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_commands_by_category`, `increment_usage`, and `save_commands` are never used
[INFO] [stdout]    --> src/core/command_db.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl CommandDatabase {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_commands_by_category(&self, category: &str) -> Result<Vec<Command>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn increment_usage(&mut self, command_id: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn save_commands(&self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `matched_keywords` is never read
[INFO] [stdout]   --> src/core/matcher.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct CommandMatch {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub matched_keywords: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandMatch` 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 `find_exact_matches` and `get_suggestions` are never used
[INFO] [stdout]    --> src/core/matcher.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl FuzzyMatcher {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn find_exact_matches(&self, query: &str, commands: &[Command]) -> Vec<Command> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn get_suggestions(&self, partial: &str, commands: &[Command], limit: usize) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryEntry` is never constructed
[INFO] [stdout]   --> src/core/history.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct HistoryEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HistoryType` is never used
[INFO] [stdout]   --> src/core/history.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum HistoryType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryMetadata` is never constructed
[INFO] [stdout]   --> src/core/history.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct HistoryMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryManager` is never constructed
[INFO] [stdout]   --> src/core/history.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct HistoryManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/history.rs:73:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl HistoryManager {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  72 |     /// Create a new history manager
[INFO] [stdout]  73 |     pub fn new() -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     fn get_history_path() -> Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn load_history(&mut self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn save_history(&self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn add_entry(&mut self, entry_type: HistoryType, content: String, metadata: HistoryMetadata) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn get_recent_entries(&self, limit: usize) -> Vec<HistoryEntry> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn get_entries_by_type(&self, entry_type: &HistoryType, limit: usize) -> Vec<HistoryEntry> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn get_command_history(&self, limit: usize) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn get_search_history(&self, limit: usize) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn clear_history(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn get_statistics(&self) -> HistoryStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HistoryStats` is never constructed
[INFO] [stdout]    --> src/core/history.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct HistoryStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `command_db` is never read
[INFO] [stdout]   --> src/tui/interface.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct TUIInterface {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 44 |     /// Command database
[INFO] [stdout] 45 |     command_db: CommandDatabase,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandList` is never constructed
[INFO] [stdout]   --> src/tui/components.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct CommandList {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `selected`, and `render` are never used
[INFO] [stdout]   --> src/tui/components.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl CommandList {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 20 |     pub fn new(items: Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn selected(mut self, index: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn render(&self) -> List {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StatusBar` is never constructed
[INFO] [stdout]   --> src/tui/components.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct StatusBar {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `render` are never used
[INFO] [stdout]   --> src/tui/components.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl StatusBar {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 58 |     pub fn new(text: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn render(&self) -> Paragraph {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HelpText` is never constructed
[INFO] [stdout]   --> src/tui/components.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct HelpText {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `render` are never used
[INFO] [stdout]   --> src/tui/components.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl HelpText {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 75 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn render(&self) -> Paragraph {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/alias/manager.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl AliasManager {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn update_alias(&mut self, name: &str, command: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn get_alias(&self, name: &str) -> Option<&String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn alias_exists(&self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn alias_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn clear_aliases(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn import_aliases(&mut self, file_path: &str) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn export_aliases(&self, file_path: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn validate_alias_name(name: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn validate_alias_command(command: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_default_aliases` and `load_defaults_if_empty` are never used
[INFO] [stdout]    --> src/alias/manager.rs:237:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | impl AliasManager {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 236 |     /// Get default aliases
[INFO] [stdout] 237 |     pub fn get_default_aliases() -> HashMap<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn load_defaults_if_empty(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]   --> src/utils/config.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Config {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConfigManager` is never constructed
[INFO] [stdout]   --> src/utils/config.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct ConfigManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/config.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl ConfigManager {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  52 |     /// Create a new configuration manager
[INFO] [stdout]  53 |     pub fn new() -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn get_config_path() -> Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn load_config(&mut self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn save_config(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn get_config(&self) -> &Config {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn update_config<F>(&mut self, updater: F) -> Result<()>
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn reset_to_defaults(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn render(&self) -> List {
[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] 32 |     pub fn render(&self) -> List<'_> {
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn render(&self) -> Paragraph {
[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] 62 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/tui/components.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn render(&self) -> Paragraph {
[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] 86 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.69s
[INFO] running `Command { std: "docker" "inspect" "62e69b884db1763b1139d05bcb9be305de16b71e67bec808f302f65043dabd9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62e69b884db1763b1139d05bcb9be305de16b71e67bec808f302f65043dabd9b", kill_on_drop: false }`
[INFO] [stdout] 62e69b884db1763b1139d05bcb9be305de16b71e67bec808f302f65043dabd9b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] de81497fe7c66ab2b3486d8c0453b657300aac2b33cf36822dbca4ac4dabb2df
[INFO] running `Command { std: "docker" "start" "-a" "de81497fe7c66ab2b3486d8c0453b657300aac2b33cf36822dbca4ac4dabb2df", kill_on_drop: false }`
[INFO] [stderr] warning: field `command_db` is never read
[INFO] [stderr]   --> src/tui/interface.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub struct TUIInterface {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] 44 |     /// Command database
[INFO] [stderr] 45 |     command_db: CommandDatabase,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/tui/components.rs:32:19
[INFO] [stderr]    |
[INFO] [stderr] 32 |     pub fn render(&self) -> List {
[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] 32 |     pub fn render(&self) -> List<'_> {
[INFO] [stderr]    |                                 ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/tui/components.rs:62:19
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn render(&self) -> Paragraph {
[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] 62 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stderr]    |                                      ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/tui/components.rs:86:19
[INFO] [stderr]    |
[INFO] [stderr] 86 |     pub fn render(&self) -> Paragraph {
[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] 86 |     pub fn render(&self) -> Paragraph<'_> {
[INFO] [stderr]    |                                      ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `bassist` (lib) generated 4 warnings (run `cargo fix --lib -p bassist` to apply 3 suggestions)
[INFO] [stderr] warning: `bassist` (lib test) generated 4 warnings (4 duplicates)
[INFO] [stderr] warning: methods `get_commands_by_category`, `increment_usage`, and `save_commands` are never used
[INFO] [stderr]    --> src/core/command_db.rs:129:12
[INFO] [stderr]     |
[INFO] [stderr]  58 | impl CommandDatabase {
[INFO] [stderr]     | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 129 |     pub fn get_commands_by_category(&self, category: &str) -> Result<Vec<Command>> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 138 |     pub fn increment_usage(&mut self, command_id: &str) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 147 |     fn save_commands(&self) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `matched_keywords` is never read
[INFO] [stderr]   --> src/core/matcher.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct CommandMatch {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub matched_keywords: Vec<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CommandMatch` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `find_exact_matches` and `get_suggestions` are never used
[INFO] [stderr]    --> src/core/matcher.rs:177:12
[INFO] [stderr]     |
[INFO] [stderr]  37 | impl FuzzyMatcher {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 177 |     pub fn find_exact_matches(&self, query: &str, commands: &[Command]) -> Vec<Command> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 191 |     pub fn get_suggestions(&self, partial: &str, commands: &[Command], limit: usize) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HistoryEntry` is never constructed
[INFO] [stderr]   --> src/core/history.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct HistoryEntry {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `HistoryType` is never used
[INFO] [stderr]   --> src/core/history.rs:37:10
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub enum HistoryType {
[INFO] [stderr]    |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HistoryMetadata` is never constructed
[INFO] [stderr]   --> src/core/history.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub struct HistoryMetadata {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HistoryManager` is never constructed
[INFO] [stderr]   --> src/core/history.rs:62:12
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub struct HistoryManager {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/core/history.rs:73:12
[INFO] [stderr]     |
[INFO] [stderr]  71 | impl HistoryManager {
[INFO] [stderr]     | ------------------- associated items in this implementation
[INFO] [stderr]  72 |     /// Create a new history manager
[INFO] [stderr]  73 |     pub fn new() -> Result<Self> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  86 |     fn get_history_path() -> Result<PathBuf> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     fn load_history(&mut self) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 114 |     fn save_history(&self) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub fn add_entry(&mut self, entry_type: HistoryType, content: String, metadata: HistoryMetadata) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 148 |     pub fn get_recent_entries(&self, limit: usize) -> Vec<HistoryEntry> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 159 |     pub fn get_entries_by_type(&self, entry_type: &HistoryType, limit: usize) -> Vec<HistoryEntry> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 170 |     pub fn get_command_history(&self, limit: usize) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 181 |     pub fn get_search_history(&self, limit: usize) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 192 |     pub fn clear_history(&mut self) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 199 |     pub fn get_statistics(&self) -> HistoryStats {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HistoryStats` is never constructed
[INFO] [stderr]    --> src/core/history.rs:223:12
[INFO] [stderr]     |
[INFO] [stderr] 223 | pub struct HistoryStats {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `command_db` is never read
[INFO] [stderr]   --> src/tui/interface.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub struct TUIInterface {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] 44 |     /// Command database
[INFO] [stderr] 45 |     command_db: CommandDatabase,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CommandList` is never constructed
[INFO] [stderr]   --> src/tui/components.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct CommandList {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `selected`, and `render` are never used
[INFO] [stderr]   --> src/tui/components.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl CommandList {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 20 |     pub fn new(items: Vec<String>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn selected(mut self, index: usize) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 32 |     pub fn render(&self) -> List {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `StatusBar` is never constructed
[INFO] [stderr]   --> src/tui/components.rs:53:12
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub struct StatusBar {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `render` are never used
[INFO] [stderr]   --> src/tui/components.rs:58:12
[INFO] [stderr]    |
[INFO] [stderr] 57 | impl StatusBar {
[INFO] [stderr]    | -------------- associated items in this implementation
[INFO] [stderr] 58 |     pub fn new(text: String) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub fn render(&self) -> Paragraph {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HelpText` is never constructed
[INFO] [stderr]   --> src/tui/components.rs:70:12
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub struct HelpText {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `render` are never used
[INFO] [stderr]   --> src/tui/components.rs:75:12
[INFO] [stderr]    |
[INFO] [stderr] 74 | impl HelpText {
[INFO] [stderr]    | ------------- associated items in this implementation
[INFO] [stderr] 75 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 86 |     pub fn render(&self) -> Paragraph {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/alias/manager.rs:109:12
[INFO] [stderr]     |
[INFO] [stderr]  21 | impl AliasManager {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 109 |     pub fn update_alias(&mut self, name: &str, command: &str) -> Result<()> {
[INFO] [stdout] 
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stdout] running 1 test
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub fn get_alias(&self, name: &str) -> Option<&String> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 143 |     pub fn alias_exists(&self, name: &str) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 148 |     pub fn alias_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn clear_aliases(&mut self) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 160 |     pub fn import_aliases(&mut self, file_path: &str) -> Result<usize> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 183 |     pub fn export_aliases(&self, file_path: &str) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 194 |     pub fn validate_alias_name(name: &str) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 221 |     pub fn validate_alias_command(command: &str) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `get_default_aliases` and `load_defaults_if_empty` are never used
[INFO] [stderr]    --> src/alias/manager.rs:237:12
[INFO] [stderr]     |
[INFO] [stderr] 235 | impl AliasManager {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] 236 |     /// Get default aliases
[INFO] [stderr] 237 |     pub fn get_default_aliases() -> HashMap<String, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 264 |     pub fn load_defaults_if_empty(&mut self) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Config` is never constructed
[INFO] [stderr]   --> src/utils/config.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct Config {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConfigManager` is never constructed
[INFO] [stderr]   --> src/utils/config.rs:46:12
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub struct ConfigManager {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/utils/config.rs:53:12
[INFO] [stderr]     |
[INFO] [stderr]  51 | impl ConfigManager {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr]  52 |     /// Create a new configuration manager
[INFO] [stderr]  53 |     pub fn new() -> Result<Self> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  65 |     fn get_config_path() -> Result<PathBuf> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  79 |     fn load_config(&mut self) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  93 |     pub fn save_config(&self) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 104 |     pub fn get_config(&self) -> &Config {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 109 |     pub fn update_config<F>(&mut self, updater: F) -> Result<()>
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 119 |     pub fn reset_to_defaults(&mut self) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `bassist` (bin "bassist" test) generated 24 warnings (3 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bassist-ecefdbf34233f5fe)
[INFO] [stdout] test tests::test_library_imports ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/bassist-3f17ce2b978107ed)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]    Doc-tests bassist
[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] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - (line 16) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - (line 16) stdout ----
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/lib.rs:22:32
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_16_0() {
[INFO] [stdout]    |                                      ---------------------------------- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout] ...
[INFO] [stdout] 22 | let db = CommandDatabase::new()?;
[INFO] [stdout]    |                                ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding return type
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_16_0() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |                                                                         +++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/lib.rs:26:37
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_16_0() {
[INFO] [stdout]    |                                      ---------------------------------- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout] ...
[INFO] [stdout] 26 | let commands = db.get_all_commands()?;
[INFO] [stdout]    |                                     ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding return type
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_16_0() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |                                                                         +++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lib.rs - (line 16)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "de81497fe7c66ab2b3486d8c0453b657300aac2b33cf36822dbca4ac4dabb2df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de81497fe7c66ab2b3486d8c0453b657300aac2b33cf36822dbca4ac4dabb2df", kill_on_drop: false }`
[INFO] [stdout] de81497fe7c66ab2b3486d8c0453b657300aac2b33cf36822dbca4ac4dabb2df
