[INFO] fetching crate pika-ide 0.1.6...
[INFO] testing pika-ide-0.1.6 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739
[INFO] extracting crate pika-ide 0.1.6 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate pika-ide 0.1.6
[INFO] finished tweaking crates.io crate pika-ide 0.1.6
[INFO] tweaked toml for crates.io crate pika-ide 0.1.6 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate pika-ide 0.1.6 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate pika-ide 0.1.6 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3ca6954fa4b6f0440fa6f53047591ccafd51b5e95c09e3a27db0f4cbfbbb6805
[INFO] running `Command { std: "docker" "start" "-a" "3ca6954fa4b6f0440fa6f53047591ccafd51b5e95c09e3a27db0f4cbfbbb6805", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3ca6954fa4b6f0440fa6f53047591ccafd51b5e95c09e3a27db0f4cbfbbb6805", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3ca6954fa4b6f0440fa6f53047591ccafd51b5e95c09e3a27db0f4cbfbbb6805", kill_on_drop: false }`
[INFO] [stdout] 3ca6954fa4b6f0440fa6f53047591ccafd51b5e95c09e3a27db0f4cbfbbb6805
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 808bfafa7288f3102a6623e9e426238de8b553bbdaa28ec7c469952d7b3e1581
[INFO] running `Command { std: "docker" "start" "-a" "808bfafa7288f3102a6623e9e426238de8b553bbdaa28ec7c469952d7b3e1581", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling notify-types v1.0.1
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling inotify v0.10.2
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling quick-xml v0.38.4
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling notify v7.0.0
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling fluent-uri v0.1.4
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling str_indices v0.4.4
[INFO] [stderr]    Compiling fuzzy-matcher v0.3.7
[INFO] [stderr]    Compiling ropey v1.6.1
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling trash v5.2.5
[INFO] [stderr]    Compiling fancy-regex v0.16.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling notify-debouncer-mini v0.5.0
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling plist v1.8.0
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling lsp-types v0.97.0
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling syntect v5.3.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling pika-ide v0.1.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `clipboard::Clipboard`
[INFO] [stdout]   --> src/editor/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use clipboard::Clipboard;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CursorState`, `Position`, and `Selection`
[INFO] [stdout]   --> src/editor/mod.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use cursor::{CursorState, Position, Selection};
[INFO] [stdout]    |                  ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `document::Document`
[INFO] [stdout]   --> src/editor/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use document::Document;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Edit` and `UndoHistory`
[INFO] [stdout]   --> src/editor/mod.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use history::{Edit, UndoHistory};
[INFO] [stdout]    |                   ^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HighlightStyle`, `HighlightedSpan`, and `SyntaxHighlighter`
[INFO] [stdout]   --> src/editor/mod.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use syntax::{HighlightStyle, HighlightedSpan, SyntaxHighlighter};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `drop_handler::DropHandler`
[INFO] [stdout]  --> src/files/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use drop_handler::DropHandler;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `copy_file`, `create_dir`, `create_file`, `delete_to_trash`, `move_file`, and `rename_file`
[INFO] [stdout]  --> src/files/mod.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use operations::{copy_file, create_dir, create_file, delete_to_trash, move_file, rename_file};
[INFO] [stdout]   |                      ^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FileNode`, `FileTree`, `FlatEntry`, and `build_tree`
[INFO] [stdout]  --> src/files/mod.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use tree::{build_tree, FileNode, FileTree, FlatEntry};
[INFO] [stdout]   |                ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `watcher::FileWatcher`
[INFO] [stdout]  --> src/files/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use watcher::FileWatcher;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/lsp/registry.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::LspClient`
[INFO] [stdout]  --> src/lsp/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use client::LspClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LspRegistry` and `ServerConfig`
[INFO] [stdout]  --> src/lsp/mod.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use registry::{LspRegistry, ServerConfig};
[INFO] [stdout]   |                    ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/ui/buffer.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `Borders`, `Paragraph`, and `Wrap`
[INFO] [stdout]  --> src/ui/buffer.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ratatui::widgets::{Block, Borders, Paragraph, Wrap};
[INFO] [stdout]   |                        ^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Wrap`
[INFO] [stdout]  --> src/ui/shortcuts_help.rs:4:58
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ratatui::widgets::{Block, Borders, Clear, Paragraph, Wrap};
[INFO] [stdout]   |                                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ListState`
[INFO] [stdout]  --> src/ui/sidebar.rs:6:56
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ratatui::widgets::{Block, Borders, List, ListItem, ListState};
[INFO] [stdout]   |                                                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FlatEntry`
[INFO] [stdout]   --> src/ui/sidebar.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::files::tree::{FileTree, FlatEntry};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/ui/tab_bar.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ratatui::style::{Color, Modifier, Style};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/main.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use std::io::Write;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `lsp_types::InitializeParams::root_uri`: Use `workspace_folders` instead when possible
[INFO] [stdout]   --> src/lsp/client.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 | /             root_uri: Some(
[INFO] [stdout] 78 | |                 root_uri
[INFO] [stdout] 79 | |                     .parse::<lsp_types::Uri>()
[INFO] [stdout] 80 | |                     .map_err(|e| anyhow::anyhow!("invalid root_uri '{}': {}", root_uri, e))?,
[INFO] [stdout] 81 | |             ),
[INFO] [stdout]    | |_____________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `notify::Watcher`
[INFO] [stdout]  --> src/files/watcher.rs:5:44
[INFO] [stdout]   |
[INFO] [stdout] 5 | use notify_debouncer_mini::{new_debouncer, notify::Watcher, DebounceEventResult, Debouncer};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uri`
[INFO] [stdout]    --> src/app.rs:902:41
[INFO] [stdout]     |
[INFO] [stdout] 902 |                 LspEvent::Diagnostics { uri, diagnostics } => {
[INFO] [stdout]     |                                         ^^^ help: try ignoring the field: `uri: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diagnostics`
[INFO] [stdout]    --> src/app.rs:902:46
[INFO] [stdout]     |
[INFO] [stdout] 902 |                 LspEvent::Diagnostics { uri, diagnostics } => {
[INFO] [stdout]     |                                              ^^^^^^^^^^^ help: try ignoring the field: `diagnostics: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/app.rs:907:38
[INFO] [stdout]     |
[INFO] [stdout] 907 |             AppEvent::FileOpComplete(result) => {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]    --> src/ui/buffer.rs:873:13
[INFO] [stdout]     |
[INFO] [stdout] 873 |         let text = self.document.text();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_width`
[INFO] [stdout]    --> src/ui/buffer.rs:967:9
[INFO] [stdout]     |
[INFO] [stdout] 967 |         area_width: usize,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]     --> src/ui/buffer.rs:1277:22
[INFO] [stdout]      |
[INFO] [stdout] 1277 |     fn render(&self, frame: &mut Frame, area: Rect, focused: bool) {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]     --> src/ui/buffer.rs:1277:41
[INFO] [stdout]      |
[INFO] [stdout] 1277 |     fn render(&self, frame: &mut Frame, area: Rect, focused: bool) {
[INFO] [stdout]      |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `focused`
[INFO] [stdout]     --> src/ui/buffer.rs:1277:53
[INFO] [stdout]      |
[INFO] [stdout] 1277 |     fn render(&self, frame: &mut Frame, area: Rect, focused: bool) {
[INFO] [stdout]      |                                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_focused`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/command_palette.rs:195:57
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub fn render(&self, frame: &mut Frame, area: Rect, theme: &Theme) {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_dir`
[INFO] [stdout]    --> src/ui/sidebar.rs:293:33
[INFO] [stdout]     |
[INFO] [stdout] 293 |                     if let Some(target_dir) = self.selected_parent_dir() {
[INFO] [stdout]     |                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `event_tx` and `bg_tx` are never read
[INFO] [stdout]   --> src/app.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct App {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub event_tx: mpsc::UnboundedSender<AppEvent>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 45 |     pub event_rx: mpsc::UnboundedReceiver<AppEvent>,
[INFO] [stdout] 46 |     pub bg_tx: mpsc::UnboundedSender<BackgroundCommand>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load_from`, `save`, and `save_to` are never used
[INFO] [stdout]    --> src/config/settings.rs:83:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl Settings {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn load_from(path: &std::path::Path) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn save_to(&self, path: &std::path::Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_system_clipboard` is never used
[INFO] [stdout]   --> src/editor/clipboard.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Clipboard {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn has_system_clipboard(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `contains` is never used
[INFO] [stdout]   --> src/editor/cursor.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Selection {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn contains(&self, pos: Position) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `at`, `move_to`, `move_vertically`, `select_to`, `clear_selection`, and `has_selection` are never used
[INFO] [stdout]    --> src/editor/cursor.rs:93:12
[INFO] [stdout]     |
[INFO] [stdout]  83 | impl CursorState {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn at(line: usize, col: usize) -> Self {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn move_to(&mut self, line: usize, col: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn move_vertically(&mut self, line: usize, line_len: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn select_to(&mut self, line: usize, col: usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn clear_selection(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn has_selection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_text` and `save_as` are never used
[INFO] [stdout]   --> src/editor/document.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Document {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn from_text(text: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn save_as<P: AsRef<Path>>(&mut self, path: P) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `insert` and `delete` are never used
[INFO] [stdout]   --> src/editor/history.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Edit {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 13 |     /// Create an Insert edit.
[INFO] [stdout] 14 |     pub fn insert(line: usize, col: usize, text: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn delete(line: usize, col: usize, text: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `begin_group`, `end_group`, `can_undo`, `can_redo`, and `clear` are never used
[INFO] [stdout]    --> src/editor/history.rs:82:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl UndoHistory {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn begin_group(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn end_group(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn can_undo(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn can_redo(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/editor/syntax.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl HighlightStyle {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new(r: u8, g: u8, b: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `detect_syntax`, `syntax_set`, and `theme_set` are never used
[INFO] [stdout]    --> src/editor/syntax.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl SyntaxHighlighter {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn detect_syntax(&self, file_path: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn syntax_set(&self) -> &SyntaxSet {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn theme_set(&self) -> &ThemeSet {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `highlight_text` is never used
[INFO] [stdout]    --> src/editor/syntax.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn highlight_text(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Input`, `FileChanged`, `FileOpComplete`, and `Tick` are never constructed
[INFO] [stdout]   --> src/events.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum AppEvent {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  6 |     /// Terminal input event from crossterm
[INFO] [stdout]  7 |     Input(crossterm::event::Event),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     FileChanged(FileChangeEvent),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     FileOpComplete(FileOpResult),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     Tick,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Created`, `Modified`, `Deleted`, and `Renamed` are never constructed
[INFO] [stdout]   --> src/events.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum FileChangeEvent {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] 24 |     Created(PathBuf),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 25 |     Modified(PathBuf),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 26 |     Deleted(PathBuf),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 27 |     Renamed { from: PathBuf, to: PathBuf },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileChangeEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/events.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum LspEvent {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     Hover(Option<lsp_types::Hover>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 41 |     /// Go-to-definition response
[INFO] [stdout] 42 |     Definition(Option<lsp_types::GotoDefinitionResponse>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 43 |     /// References response
[INFO] [stdout] 44 |     References(Vec<lsp_types::Location>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 45 |     /// Code actions response
[INFO] [stdout] 46 |     CodeActions(Vec<lsp_types::CodeActionOrCommand>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 47 |     /// Signature help response
[INFO] [stdout] 48 |     SignatureHelp(Option<lsp_types::SignatureHelp>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 49 |     /// Server started for a language
[INFO] [stdout] 50 |     ServerStarted(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 51 |     /// Server stopped or crashed
[INFO] [stdout] 52 |     ServerStopped(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 53 |     /// Formatting response
[INFO] [stdout] 54 |     Formatting(Vec<lsp_types::TextEdit>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 55 |     /// Rename response
[INFO] [stdout] 56 |     WorkspaceEdit(Option<lsp_types::WorkspaceEdit>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LspEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Copied`, `Moved`, `Deleted`, `Renamed`, and `Error` are never constructed
[INFO] [stdout]   --> src/events.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub enum FileOpResult {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 61 |     Copied { from: PathBuf, to: PathBuf },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 62 |     Moved { from: PathBuf, to: PathBuf },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 63 |     Deleted(PathBuf),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 64 |     Renamed { from: PathBuf, to: PathBuf },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 65 |     Error(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileOpResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Lsp`, `FileOp`, `WatchDir`, and `Shutdown` are never constructed
[INFO] [stdout]   --> src/events.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum BackgroundCommand {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] 71 |     /// Request LSP operation
[INFO] [stdout] 72 |     Lsp(LspCommand),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 73 |     /// Request file operation
[INFO] [stdout] 74 |     FileOp(FileOpCommand),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 75 |     /// Watch a new directory
[INFO] [stdout] 76 |     WatchDir(PathBuf),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 77 |     /// Shutdown all background tasks
[INFO] [stdout] 78 |     Shutdown,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BackgroundCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/events.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum LspCommand {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 83 |     Initialize { root_uri: String },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 84 |     Completion { uri: String, position: lsp_types::Position },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 85 |     Hover { uri: String, position: lsp_types::Position },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 86 |     GotoDefinition { uri: String, position: lsp_types::Position },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 87 |     References { uri: String, position: lsp_types::Position },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 88 |     Rename { uri: String, position: lsp_types::Position, new_name: String },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 89 |     CodeAction { uri: String, range: lsp_types::Range },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 90 |     Format { uri: String },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 91 |     DidOpen { uri: String, language_id: String, text: String },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 92 |     DidChange { uri: String, text: String, version: i32 },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 93 |     DidClose { uri: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 94 |     SignatureHelp { uri: String, position: lsp_types::Position },
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LspCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Copy`, `Move`, `Delete`, `Rename`, `CreateFile`, and `CreateDir` are never constructed
[INFO] [stdout]    --> src/events.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub enum FileOpCommand {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout]  99 |     Copy { from: PathBuf, to: PathBuf },
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 100 |     Move { from: PathBuf, to: PathBuf },
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 101 |     Delete(PathBuf),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 102 |     Rename { from: PathBuf, to: PathBuf },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 103 |     CreateFile(PathBuf),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 104 |     CreateDir(PathBuf),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FileOpCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DropHandler` is never constructed
[INFO] [stdout]  --> src/files/drop_handler.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct DropHandler;
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `parse_dropped_content` and `is_file_drop` are never used
[INFO] [stdout]   --> src/files/drop_handler.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl DropHandler {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn parse_dropped_content(content: &str) -> Vec<PathBuf> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn is_file_drop(content: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `looks_like_path` is never used
[INFO] [stdout]   --> src/files/drop_handler.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn looks_like_path(s: &str) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expand_tilde` is never used
[INFO] [stdout]   --> src/files/drop_handler.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn expand_tilde(path: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_conflict` is never used
[INFO] [stdout]  --> src/files/operations.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn resolve_conflict(target: &Path) -> PathBuf {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_file` is never used
[INFO] [stdout]   --> src/files/operations.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub async fn copy_file(from: &Path, to: &Path) -> Result<PathBuf> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_dir_recursive` is never used
[INFO] [stdout]   --> src/files/operations.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 | async fn copy_dir_recursive(src: &Path, dst: &Path) -> Result<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_file` is never used
[INFO] [stdout]   --> src/files/operations.rs:95:14
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub async fn move_file(from: &Path, to: &Path) -> Result<PathBuf> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_to_trash` is never used
[INFO] [stdout]    --> src/files/operations.rs:130:14
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub async fn delete_to_trash(path: &Path) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rename_file` is never used
[INFO] [stdout]    --> src/files/operations.rs:143:14
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub async fn rename_file(from: &Path, new_name: &str) -> Result<PathBuf> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_file` is never used
[INFO] [stdout]    --> src/files/operations.rs:165:14
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub async fn create_file(path: &Path) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_dir` is never used
[INFO] [stdout]    --> src/files/operations.rs:178:14
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub async fn create_dir(path: &Path) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileWatcher` is never constructed
[INFO] [stdout]   --> src/files/watcher.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct FileWatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `watch`, and `unwatch` are never used
[INFO] [stdout]   --> src/files/watcher.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl FileWatcher {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn new(tx: tokio::sync::mpsc::UnboundedSender<FileChangeEvent>) -> Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn watch(&mut self, path: &Path) -> Result<()> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn unwatch(&mut self, path: &Path) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `OpenFileFinder`, `HoverInfo`, `FormatDocument`, and `SignatureHelp` are never constructed
[INFO] [stdout]   --> src/input/actions.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Action {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     OpenFileFinder,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     HoverInfo,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 78 |     FormatDocument,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 79 |     SignatureHelp,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Action` 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: function `supports_feature` is never used
[INFO] [stdout]   --> src/lsp/capabilities.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn supports_feature(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `shutdown` is never used
[INFO] [stdout]    --> src/lsp/client.rs:135:18
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl LspClient {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub async fn shutdown(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_lsp_message` is never used
[INFO] [stdout]    --> src/lsp/client.rs:375:8
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub fn format_lsp_message(body: &[u8]) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_content_length` is never used
[INFO] [stdout]    --> src/lsp/client.rs:385:8
[INFO] [stdout]     |
[INFO] [stdout] 385 | pub fn parse_content_length(header: &str) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `extensions` is never read
[INFO] [stdout]   --> src/lsp/registry.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct ServerConfig {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub extensions: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ServerConfig` 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 `shutdown_all`, `server_count`, `active_client_count`, and `has_server_for` are never used
[INFO] [stdout]    --> src/lsp/registry.rs:171:18
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl LspRegistry {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub async fn shutdown_all(&mut self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn server_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn active_client_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn has_server_for(&self, ext: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JsonRpcMessage` is never used
[INFO] [stdout]  --> src/lsp/types.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum JsonRpcMessage {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `ok` and `err` are never used
[INFO] [stdout]   --> src/lsp/types.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl JsonRpcResponse {
[INFO] [stdout]    | -------------------- associated functions in this implementation
[INFO] [stdout] 46 |     /// Create a successful response for the given request id.
[INFO] [stdout] 47 |     pub fn ok(id: i64, result: serde_json::Value) -> Self {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn err(id: i64, error: JsonRpcError) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `RequestRename`, `FilePaste`, `ShowFileFinder`, and `ProjectSearch` are never constructed
[INFO] [stdout]   --> src/ui/mod.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum AppCommand {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     RequestRename(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     FilePaste(std::path::PathBuf),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     ShowFileFinder,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 67 |     /// Project-wide search
[INFO] [stdout] 68 |     ProjectSearch,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_text` is never used
[INFO] [stdout]    --> src/ui/buffer.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl Buffer {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn from_text(text: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `detail` is never read
[INFO] [stdout]   --> src/ui/completion.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CompletionItem {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 14 |     pub label: String,
[INFO] [stdout] 15 |     pub detail: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CompletionItem` 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 `handle_action` is never used
[INFO] [stdout]    --> src/ui/completion.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl CompletionPopup {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn handle_action(&mut self, action: &Action) -> AppCommand {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Pending` is never constructed
[INFO] [stdout]   --> src/ui/confirm_dialog.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum ConfirmResult {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 36 |     Pending,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfirmResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_lines` is never read
[INFO] [stdout]   --> src/ui/status_bar.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct StatusInfo {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub total_lines: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StatusInfo` 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 `is_empty` and `len` are never used
[INFO] [stdout]   --> src/ui/tab_bar.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl TabBar {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 59.06s
[INFO] running `Command { std: "docker" "inspect" "808bfafa7288f3102a6623e9e426238de8b553bbdaa28ec7c469952d7b3e1581", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "808bfafa7288f3102a6623e9e426238de8b553bbdaa28ec7c469952d7b3e1581", kill_on_drop: false }`
[INFO] [stdout] 808bfafa7288f3102a6623e9e426238de8b553bbdaa28ec7c469952d7b3e1581
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1c8f6615ed063ad01681e6466b147d0b49baed39bb76374e0f035e6c7b6be86c
[INFO] running `Command { std: "docker" "start" "-a" "1c8f6615ed063ad01681e6466b147d0b49baed39bb76374e0f035e6c7b6be86c", kill_on_drop: false }`
[INFO] [stderr]    Compiling pika-ide v0.1.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `clipboard::Clipboard`
[INFO] [stdout]   --> src/editor/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use clipboard::Clipboard;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CursorState`, `Position`, and `Selection`
[INFO] [stdout]   --> src/editor/mod.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use cursor::{CursorState, Position, Selection};
[INFO] [stdout]    |                  ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `document::Document`
[INFO] [stdout]   --> src/editor/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use document::Document;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Edit` and `UndoHistory`
[INFO] [stdout]   --> src/editor/mod.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use history::{Edit, UndoHistory};
[INFO] [stdout]    |                   ^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HighlightStyle`, `HighlightedSpan`, and `SyntaxHighlighter`
[INFO] [stdout]   --> src/editor/mod.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use syntax::{HighlightStyle, HighlightedSpan, SyntaxHighlighter};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `drop_handler::DropHandler`
[INFO] [stdout]  --> src/files/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use drop_handler::DropHandler;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `copy_file`, `create_dir`, `create_file`, `delete_to_trash`, `move_file`, and `rename_file`
[INFO] [stdout]  --> src/files/mod.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use operations::{copy_file, create_dir, create_file, delete_to_trash, move_file, rename_file};
[INFO] [stdout]   |                      ^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FileNode`, `FileTree`, `FlatEntry`, and `build_tree`
[INFO] [stdout]  --> src/files/mod.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use tree::{build_tree, FileNode, FileTree, FlatEntry};
[INFO] [stdout]   |                ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `watcher::FileWatcher`
[INFO] [stdout]  --> src/files/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use watcher::FileWatcher;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/lsp/registry.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::LspClient`
[INFO] [stdout]  --> src/lsp/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use client::LspClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LspRegistry` and `ServerConfig`
[INFO] [stdout]  --> src/lsp/mod.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use registry::{LspRegistry, ServerConfig};
[INFO] [stdout]   |                    ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/ui/buffer.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `Borders`, `Paragraph`, and `Wrap`
[INFO] [stdout]  --> src/ui/buffer.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ratatui::widgets::{Block, Borders, Paragraph, Wrap};
[INFO] [stdout]   |                        ^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Wrap`
[INFO] [stdout]  --> src/ui/shortcuts_help.rs:4:58
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ratatui::widgets::{Block, Borders, Clear, Paragraph, Wrap};
[INFO] [stdout]   |                                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ListState`
[INFO] [stdout]  --> src/ui/sidebar.rs:6:56
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ratatui::widgets::{Block, Borders, List, ListItem, ListState};
[INFO] [stdout]   |                                                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FlatEntry`
[INFO] [stdout]   --> src/ui/sidebar.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::files::tree::{FileTree, FlatEntry};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/ui/tab_bar.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ratatui::style::{Color, Modifier, Style};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/main.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     use std::io::Write;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated field `lsp_types::InitializeParams::root_uri`: Use `workspace_folders` instead when possible
[INFO] [stdout]   --> src/lsp/client.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 | /             root_uri: Some(
[INFO] [stdout] 78 | |                 root_uri
[INFO] [stdout] 79 | |                     .parse::<lsp_types::Uri>()
[INFO] [stdout] 80 | |                     .map_err(|e| anyhow::anyhow!("invalid root_uri '{}': {}", root_uri, e))?,
[INFO] [stdout] 81 | |             ),
[INFO] [stdout]    | |_____________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `notify::Watcher`
[INFO] [stdout]  --> src/files/watcher.rs:5:44
[INFO] [stdout]   |
[INFO] [stdout] 5 | use notify_debouncer_mini::{new_debouncer, notify::Watcher, DebounceEventResult, Debouncer};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uri`
[INFO] [stdout]    --> src/app.rs:902:41
[INFO] [stdout]     |
[INFO] [stdout] 902 |                 LspEvent::Diagnostics { uri, diagnostics } => {
[INFO] [stdout]     |                                         ^^^ help: try ignoring the field: `uri: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diagnostics`
[INFO] [stdout]    --> src/app.rs:902:46
[INFO] [stdout]     |
[INFO] [stdout] 902 |                 LspEvent::Diagnostics { uri, diagnostics } => {
[INFO] [stdout]     |                                              ^^^^^^^^^^^ help: try ignoring the field: `diagnostics: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/app.rs:907:38
[INFO] [stdout]     |
[INFO] [stdout] 907 |             AppEvent::FileOpComplete(result) => {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]     --> src/app.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         let (tmp, app) = setup_test_app();
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]     --> src/app.rs:1008:14
[INFO] [stdout]      |
[INFO] [stdout] 1008 |         let (tmp, mut app) = setup_test_app();
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]     --> src/app.rs:1017:14
[INFO] [stdout]      |
[INFO] [stdout] 1017 |         let (tmp, mut app) = setup_test_app();
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]     --> src/app.rs:1036:14
[INFO] [stdout]      |
[INFO] [stdout] 1036 |         let (tmp, mut app) = setup_test_app();
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]     --> src/app.rs:1044:14
[INFO] [stdout]      |
[INFO] [stdout] 1044 |         let (tmp, mut app) = setup_test_app();
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]     --> src/app.rs:1051:14
[INFO] [stdout]      |
[INFO] [stdout] 1051 |         let (tmp, mut app) = setup_test_app();
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]     --> src/app.rs:1058:14
[INFO] [stdout]      |
[INFO] [stdout] 1058 |         let (tmp, mut app) = setup_test_app();
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]     --> src/app.rs:1065:14
[INFO] [stdout]      |
[INFO] [stdout] 1065 |         let (tmp, mut app) = setup_test_app();
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]     --> src/app.rs:1072:14
[INFO] [stdout]      |
[INFO] [stdout] 1072 |         let (tmp, mut app) = setup_test_app();
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]     --> src/app.rs:1083:14
[INFO] [stdout]      |
[INFO] [stdout] 1083 |         let (tmp, mut app) = setup_test_app();
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]   --> src/files/watcher.rs:79:14
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let (tx, rx) = tokio::sync::mpsc::unbounded_channel();
[INFO] [stdout]    |              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]    --> src/ui/buffer.rs:873:13
[INFO] [stdout]     |
[INFO] [stdout] 873 |         let text = self.document.text();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area_width`
[INFO] [stdout]    --> src/ui/buffer.rs:967:9
[INFO] [stdout]     |
[INFO] [stdout] 967 |         area_width: usize,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]     --> src/ui/buffer.rs:1277:22
[INFO] [stdout]      |
[INFO] [stdout] 1277 |     fn render(&self, frame: &mut Frame, area: Rect, focused: bool) {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]     --> src/ui/buffer.rs:1277:41
[INFO] [stdout]      |
[INFO] [stdout] 1277 |     fn render(&self, frame: &mut Frame, area: Rect, focused: bool) {
[INFO] [stdout]      |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `focused`
[INFO] [stdout]     --> src/ui/buffer.rs:1277:53
[INFO] [stdout]      |
[INFO] [stdout] 1277 |     fn render(&self, frame: &mut Frame, area: Rect, focused: bool) {
[INFO] [stdout]      |                                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_focused`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/command_palette.rs:195:57
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub fn render(&self, frame: &mut Frame, area: Rect, theme: &Theme) {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `narrow_count`
[INFO] [stdout]    --> src/ui/command_palette.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let narrow_count = palette.filtered.len();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_narrow_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]    --> src/ui/editor.rs:473:14
[INFO] [stdout]     |
[INFO] [stdout] 473 |         let (tmp, path) = setup_test_file();
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]    --> src/ui/editor.rs:491:14
[INFO] [stdout]     |
[INFO] [stdout] 491 |         let (tmp, path) = setup_test_file();
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]    --> src/ui/editor.rs:500:14
[INFO] [stdout]     |
[INFO] [stdout] 500 |         let (tmp, path) = setup_test_file();
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]    --> src/ui/editor.rs:510:14
[INFO] [stdout]     |
[INFO] [stdout] 510 |         let (tmp, path) = setup_test_file();
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]    --> src/ui/editor.rs:548:14
[INFO] [stdout]     |
[INFO] [stdout] 548 |         let (tmp, path) = setup_test_file();
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]    --> src/ui/editor.rs:568:14
[INFO] [stdout]     |
[INFO] [stdout] 568 |         let (tmp, path) = setup_test_file();
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]    --> src/ui/editor.rs:588:14
[INFO] [stdout]     |
[INFO] [stdout] 588 |         let (tmp, path) = setup_test_file();
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_dir`
[INFO] [stdout]    --> src/ui/sidebar.rs:293:33
[INFO] [stdout]     |
[INFO] [stdout] 293 |                     if let Some(target_dir) = self.selected_parent_dir() {
[INFO] [stdout]     |                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `event_tx` and `bg_tx` are never read
[INFO] [stdout]   --> src/app.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct App {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub event_tx: mpsc::UnboundedSender<AppEvent>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 45 |     pub event_rx: mpsc::UnboundedReceiver<AppEvent>,
[INFO] [stdout] 46 |     pub bg_tx: mpsc::UnboundedSender<BackgroundCommand>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save` is never used
[INFO] [stdout]   --> src/config/settings.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl Settings {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `syntax_set` and `theme_set` are never used
[INFO] [stdout]    --> src/editor/syntax.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl SyntaxHighlighter {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn syntax_set(&self) -> &SyntaxSet {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn theme_set(&self) -> &ThemeSet {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Input`, `FileChanged`, `FileOpComplete`, and `Tick` are never constructed
[INFO] [stdout]   --> src/events.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum AppEvent {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  6 |     /// Terminal input event from crossterm
[INFO] [stdout]  7 |     Input(crossterm::event::Event),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     FileChanged(FileChangeEvent),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     FileOpComplete(FileOpResult),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     Tick,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `to` is never read
[INFO] [stdout]   --> src/events.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Renamed { from: PathBuf, to: PathBuf },
[INFO] [stdout]    |     -------                  ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileChangeEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/events.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum LspEvent {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     Hover(Option<lsp_types::Hover>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 41 |     /// Go-to-definition response
[INFO] [stdout] 42 |     Definition(Option<lsp_types::GotoDefinitionResponse>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 43 |     /// References response
[INFO] [stdout] 44 |     References(Vec<lsp_types::Location>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 45 |     /// Code actions response
[INFO] [stdout] 46 |     CodeActions(Vec<lsp_types::CodeActionOrCommand>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 47 |     /// Signature help response
[INFO] [stdout] 48 |     SignatureHelp(Option<lsp_types::SignatureHelp>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 49 |     /// Server started for a language
[INFO] [stdout] 50 |     ServerStarted(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 51 |     /// Server stopped or crashed
[INFO] [stdout] 52 |     ServerStopped(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 53 |     /// Formatting response
[INFO] [stdout] 54 |     Formatting(Vec<lsp_types::TextEdit>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 55 |     /// Rename response
[INFO] [stdout] 56 |     WorkspaceEdit(Option<lsp_types::WorkspaceEdit>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LspEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Copied`, `Moved`, `Deleted`, `Renamed`, and `Error` are never constructed
[INFO] [stdout]   --> src/events.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub enum FileOpResult {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 61 |     Copied { from: PathBuf, to: PathBuf },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 62 |     Moved { from: PathBuf, to: PathBuf },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 63 |     Deleted(PathBuf),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 64 |     Renamed { from: PathBuf, to: PathBuf },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 65 |     Error(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileOpResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Lsp`, `FileOp`, `WatchDir`, and `Shutdown` are never constructed
[INFO] [stdout]   --> src/events.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum BackgroundCommand {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] 71 |     /// Request LSP operation
[INFO] [stdout] 72 |     Lsp(LspCommand),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 73 |     /// Request file operation
[INFO] [stdout] 74 |     FileOp(FileOpCommand),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 75 |     /// Watch a new directory
[INFO] [stdout] 76 |     WatchDir(PathBuf),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 77 |     /// Shutdown all background tasks
[INFO] [stdout] 78 |     Shutdown,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BackgroundCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/events.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum LspCommand {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 83 |     Initialize { root_uri: String },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 84 |     Completion { uri: String, position: lsp_types::Position },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 85 |     Hover { uri: String, position: lsp_types::Position },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 86 |     GotoDefinition { uri: String, position: lsp_types::Position },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 87 |     References { uri: String, position: lsp_types::Position },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 88 |     Rename { uri: String, position: lsp_types::Position, new_name: String },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 89 |     CodeAction { uri: String, range: lsp_types::Range },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 90 |     Format { uri: String },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 91 |     DidOpen { uri: String, language_id: String, text: String },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 92 |     DidChange { uri: String, text: String, version: i32 },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 93 |     DidClose { uri: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 94 |     SignatureHelp { uri: String, position: lsp_types::Position },
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LspCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Copy`, `Move`, `Delete`, `Rename`, `CreateFile`, and `CreateDir` are never constructed
[INFO] [stdout]    --> src/events.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub enum FileOpCommand {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout]  99 |     Copy { from: PathBuf, to: PathBuf },
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 100 |     Move { from: PathBuf, to: PathBuf },
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 101 |     Delete(PathBuf),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 102 |     Rename { from: PathBuf, to: PathBuf },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 103 |     CreateFile(PathBuf),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 104 |     CreateDir(PathBuf),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FileOpCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `OpenFileFinder`, `HoverInfo`, `FormatDocument`, and `SignatureHelp` are never constructed
[INFO] [stdout]   --> src/input/actions.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Action {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     OpenFileFinder,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     HoverInfo,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 78 |     FormatDocument,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 79 |     SignatureHelp,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Action` 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 `server_count` is never used
[INFO] [stdout]    --> src/lsp/registry.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl LspRegistry {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn server_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `RequestRename`, `FilePaste`, `ShowFileFinder`, and `ProjectSearch` are never constructed
[INFO] [stdout]   --> src/ui/mod.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum AppCommand {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     RequestRename(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     FilePaste(std::path::PathBuf),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     ShowFileFinder,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 67 |     /// Project-wide search
[INFO] [stdout] 68 |     ProjectSearch,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `detail` is never read
[INFO] [stdout]   --> src/ui/completion.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CompletionItem {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 14 |     pub label: String,
[INFO] [stdout] 15 |     pub detail: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CompletionItem` 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: variant `Pending` is never constructed
[INFO] [stdout]   --> src/ui/confirm_dialog.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum ConfirmResult {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 36 |     Pending,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfirmResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_lines` is never read
[INFO] [stdout]   --> src/ui/status_bar.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct StatusInfo {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub total_lines: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StatusInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.11s
[INFO] running `Command { std: "docker" "inspect" "1c8f6615ed063ad01681e6466b147d0b49baed39bb76374e0f035e6c7b6be86c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1c8f6615ed063ad01681e6466b147d0b49baed39bb76374e0f035e6c7b6be86c", kill_on_drop: false }`
[INFO] [stdout] 1c8f6615ed063ad01681e6466b147d0b49baed39bb76374e0f035e6c7b6be86c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9cef14909246f6e7416c1b0ef63d1057937178516638b7c93da729d6c90134e0
[INFO] running `Command { std: "docker" "start" "-a" "9cef14909246f6e7416c1b0ef63d1057937178516638b7c93da729d6c90134e0", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `clipboard::Clipboard`
[INFO] [stderr]   --> src/editor/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub use clipboard::Clipboard;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CursorState`, `Position`, and `Selection`
[INFO] [stderr]   --> src/editor/mod.rs:11:18
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use cursor::{CursorState, Position, Selection};
[INFO] [stderr]    |                  ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `document::Document`
[INFO] [stderr]   --> src/editor/mod.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub use document::Document;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Edit` and `UndoHistory`
[INFO] [stderr]   --> src/editor/mod.rs:13:19
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub use history::{Edit, UndoHistory};
[INFO] [stderr]    |                   ^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HighlightStyle`, `HighlightedSpan`, and `SyntaxHighlighter`
[INFO] [stderr]   --> src/editor/mod.rs:14:18
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub use syntax::{HighlightStyle, HighlightedSpan, SyntaxHighlighter};
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `drop_handler::DropHandler`
[INFO] [stderr]  --> src/files/mod.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub use drop_handler::DropHandler;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `copy_file`, `create_dir`, `create_file`, `delete_to_trash`, `move_file`, and `rename_file`
[INFO] [stderr]  --> src/files/mod.rs:7:22
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use operations::{copy_file, create_dir, create_file, delete_to_trash, move_file, rename_file};
[INFO] [stderr]   |                      ^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `FileNode`, `FileTree`, `FlatEntry`, and `build_tree`
[INFO] [stderr]  --> src/files/mod.rs:8:16
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use tree::{build_tree, FileNode, FileTree, FlatEntry};
[INFO] [stderr]   |                ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `watcher::FileWatcher`
[INFO] [stderr]  --> src/files/mod.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub use watcher::FileWatcher;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `anyhow::Result`
[INFO] [stderr]  --> src/lsp/registry.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use anyhow::Result;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `client::LspClient`
[INFO] [stderr]  --> src/lsp/mod.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub use client::LspClient;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `LspRegistry` and `ServerConfig`
[INFO] [stderr]  --> src/lsp/mod.rs:7:20
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use registry::{LspRegistry, ServerConfig};
[INFO] [stderr]   |                    ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `PathBuf`
[INFO] [stderr]  --> src/ui/buffer.rs:1:23
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::path::{Path, PathBuf};
[INFO] [stderr]   |                       ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Block`, `Borders`, `Paragraph`, and `Wrap`
[INFO] [stderr]  --> src/ui/buffer.rs:6:24
[INFO] [stderr]   |
[INFO] [stderr] 6 | use ratatui::widgets::{Block, Borders, Paragraph, Wrap};
[INFO] [stderr]   |                        ^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Wrap`
[INFO] [stderr]  --> src/ui/shortcuts_help.rs:4:58
[INFO] [stderr]   |
[INFO] [stderr] 4 | use ratatui::widgets::{Block, Borders, Clear, Paragraph, Wrap};
[INFO] [stderr]   |                                                          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ListState`
[INFO] [stderr]  --> src/ui/sidebar.rs:6:56
[INFO] [stderr]   |
[INFO] [stderr] 6 | use ratatui::widgets::{Block, Borders, List, ListItem, ListState};
[INFO] [stderr]   |                                                        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `FlatEntry`
[INFO] [stderr]   --> src/ui/sidebar.rs:10:36
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::files::tree::{FileTree, FlatEntry};
[INFO] [stderr]    |                                    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Color`
[INFO] [stderr]  --> src/ui/tab_bar.rs:2:22
[INFO] [stderr]   |
[INFO] [stderr] 2 | use ratatui::style::{Color, Modifier, Style};
[INFO] [stderr]   |                      ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]   --> src/main.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 14 |     use std::io::Write;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated field `lsp_types::InitializeParams::root_uri`: Use `workspace_folders` instead when possible
[INFO] [stderr]   --> src/lsp/client.rs:77:13
[INFO] [stderr]    |
[INFO] [stderr] 77 | /             root_uri: Some(
[INFO] [stderr] 78 | |                 root_uri
[INFO] [stderr] 79 | |                     .parse::<lsp_types::Uri>()
[INFO] [stderr] 80 | |                     .map_err(|e| anyhow::anyhow!("invalid root_uri '{}': {}", root_uri, e))?,
[INFO] [stderr] 81 | |             ),
[INFO] [stderr]    | |_____________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `notify::Watcher`
[INFO] [stderr]  --> src/files/watcher.rs:5:44
[INFO] [stderr]   |
[INFO] [stderr] 5 | use notify_debouncer_mini::{new_debouncer, notify::Watcher, DebounceEventResult, Debouncer};
[INFO] [stderr]   |                                            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `uri`
[INFO] [stderr]    --> src/app.rs:902:41
[INFO] [stderr]     |
[INFO] [stderr] 902 |                 LspEvent::Diagnostics { uri, diagnostics } => {
[INFO] [stderr]     |                                         ^^^ help: try ignoring the field: `uri: _`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `diagnostics`
[INFO] [stderr]    --> src/app.rs:902:46
[INFO] [stderr]     |
[INFO] [stderr] 902 |                 LspEvent::Diagnostics { uri, diagnostics } => {
[INFO] [stderr]     |                                              ^^^^^^^^^^^ help: try ignoring the field: `diagnostics: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result`
[INFO] [stderr]    --> src/app.rs:907:38
[INFO] [stderr]     |
[INFO] [stderr] 907 |             AppEvent::FileOpComplete(result) => {
[INFO] [stderr]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]     --> src/app.rs:1000:14
[INFO] [stderr]      |
[INFO] [stderr] 1000 |         let (tmp, app) = setup_test_app();
[INFO] [stderr]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]     --> src/app.rs:1008:14
[INFO] [stderr]      |
[INFO] [stderr] 1008 |         let (tmp, mut app) = setup_test_app();
[INFO] [stderr]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]     --> src/app.rs:1017:14
[INFO] [stderr]      |
[INFO] [stderr] 1017 |         let (tmp, mut app) = setup_test_app();
[INFO] [stderr]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]     --> src/app.rs:1036:14
[INFO] [stderr]      |
[INFO] [stderr] 1036 |         let (tmp, mut app) = setup_test_app();
[INFO] [stderr]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]     --> src/app.rs:1044:14
[INFO] [stderr]      |
[INFO] [stderr] 1044 |         let (tmp, mut app) = setup_test_app();
[INFO] [stderr]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]     --> src/app.rs:1051:14
[INFO] [stderr]      |
[INFO] [stderr] 1051 |         let (tmp, mut app) = setup_test_app();
[INFO] [stderr]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]     --> src/app.rs:1058:14
[INFO] [stderr]      |
[INFO] [stderr] 1058 |         let (tmp, mut app) = setup_test_app();
[INFO] [stderr]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]     --> src/app.rs:1065:14
[INFO] [stderr]      |
[INFO] [stderr] 1065 |         let (tmp, mut app) = setup_test_app();
[INFO] [stderr]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]     --> src/app.rs:1072:14
[INFO] [stderr]      |
[INFO] [stderr] 1072 |         let (tmp, mut app) = setup_test_app();
[INFO] [stderr]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]     --> src/app.rs:1083:14
[INFO] [stderr]      |
[INFO] [stderr] 1083 |         let (tmp, mut app) = setup_test_app();
[INFO] [stderr]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tx`
[INFO] [stderr]   --> src/files/watcher.rs:79:14
[INFO] [stderr]    |
[INFO] [stderr] 79 |         let (tx, rx) = tokio::sync::mpsc::unbounded_channel();
[INFO] [stderr]    |              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `text`
[INFO] [stderr]    --> src/ui/buffer.rs:873:13
[INFO] [stderr]     |
[INFO] [stderr] 873 |         let text = self.document.text();
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area_width`
[INFO] [stderr]    --> src/ui/buffer.rs:967:9
[INFO] [stderr]     |
[INFO] [stderr] 967 |         area_width: usize,
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_area_width`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `frame`
[INFO] [stderr]     --> src/ui/buffer.rs:1277:22
[INFO] [stderr]      |
[INFO] [stderr] 1277 |     fn render(&self, frame: &mut Frame, area: Rect, focused: bool) {
[INFO] [stderr]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]     --> src/ui/buffer.rs:1277:41
[INFO] [stderr]      |
[INFO] [stderr] 1277 |     fn render(&self, frame: &mut Frame, area: Rect, focused: bool) {
[INFO] [stderr]      |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `focused`
[INFO] [stderr]     --> src/ui/buffer.rs:1277:53
[INFO] [stderr]      |
[INFO] [stderr] 1277 |     fn render(&self, frame: &mut Frame, area: Rect, focused: bool) {
[INFO] [stderr]      |                                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_focused`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `theme`
[INFO] [stderr]    --> src/ui/command_palette.rs:195:57
[INFO] [stderr]     |
[INFO] [stderr] 195 |     pub fn render(&self, frame: &mut Frame, area: Rect, theme: &Theme) {
[INFO] [stderr]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `narrow_count`
[INFO] [stderr]    --> src/ui/command_palette.rs:330:13
[INFO] [stderr]     |
[INFO] [stderr] 330 |         let narrow_count = palette.filtered.len();
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_narrow_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]    --> src/ui/editor.rs:473:14
[INFO] [stderr]     |
[INFO] [stderr] 473 |         let (tmp, path) = setup_test_file();
[INFO] [stderr]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]    --> src/ui/editor.rs:491:14
[INFO] [stderr]     |
[INFO] [stderr] 491 |         let (tmp, path) = setup_test_file();
[INFO] [stderr]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]    --> src/ui/editor.rs:500:14
[INFO] [stderr]     |
[INFO] [stderr] 500 |         let (tmp, path) = setup_test_file();
[INFO] [stderr]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]    --> src/ui/editor.rs:510:14
[INFO] [stderr]     |
[INFO] [stderr] 510 |         let (tmp, path) = setup_test_file();
[INFO] [stderr]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]    --> src/ui/editor.rs:548:14
[INFO] [stderr]     |
[INFO] [stderr] 548 |         let (tmp, path) = setup_test_file();
[INFO] [stderr]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]    --> src/ui/editor.rs:568:14
[INFO] [stderr]     |
[INFO] [stderr] 568 |         let (tmp, path) = setup_test_file();
[INFO] [stderr]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmp`
[INFO] [stderr]    --> src/ui/editor.rs:588:14
[INFO] [stderr]     |
[INFO] [stderr] 588 |         let (tmp, path) = setup_test_file();
[INFO] [stderr]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target_dir`
[INFO] [stderr]    --> src/ui/sidebar.rs:293:33
[INFO] [stderr]     |
[INFO] [stderr] 293 |                     if let Some(target_dir) = self.selected_parent_dir() {
[INFO] [stderr]     |                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_dir`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `event_tx` and `bg_tx` are never read
[INFO] [stderr]   --> src/app.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub struct App {
[INFO] [stderr]    |            --- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub event_tx: mpsc::UnboundedSender<AppEvent>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 45 |     pub event_rx: mpsc::UnboundedReceiver<AppEvent>,
[INFO] [stderr] 46 |     pub bg_tx: mpsc::UnboundedSender<BackgroundCommand>,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `save` is never used
[INFO] [stderr]   --> src/config/settings.rs:93:12
[INFO] [stderr]    |
[INFO] [stderr] 58 | impl Settings {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 93 |     pub fn save(&self) -> Result<()> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `syntax_set` and `theme_set` are never used
[INFO] [stderr]    --> src/editor/syntax.rs:152:12
[INFO] [stderr]     |
[INFO] [stderr]  45 | impl SyntaxHighlighter {
[INFO] [stderr]     | ---------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub fn syntax_set(&self) -> &SyntaxSet {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 157 |     pub fn theme_set(&self) -> &ThemeSet {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Input`, `FileChanged`, `FileOpComplete`, and `Tick` are never constructed
[INFO] [stderr]   --> src/events.rs:7:5
[INFO] [stderr]    |
[INFO] [stderr]  5 | pub enum AppEvent {
[INFO] [stderr]    |          -------- variants in this enum
[INFO] [stderr]  6 |     /// Terminal input event from crossterm
[INFO] [stderr]  7 |     Input(crossterm::event::Event),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 10 |     FileChanged(FileChangeEvent),
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 16 |     FileOpComplete(FileOpResult),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     Tick,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AppEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `to` is never read
[INFO] [stderr]   --> src/events.rs:27:30
[INFO] [stderr]    |
[INFO] [stderr] 27 |     Renamed { from: PathBuf, to: PathBuf },
[INFO] [stderr]    |     -------                  ^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `FileChangeEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]   --> src/events.rs:40:5
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub enum LspEvent {
[INFO] [stderr]    |          -------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 40 |     Hover(Option<lsp_types::Hover>),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 41 |     /// Go-to-definition response
[INFO] [stderr] 42 |     Definition(Option<lsp_types::GotoDefinitionResponse>),
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 43 |     /// References response
[INFO] [stderr] 44 |     References(Vec<lsp_types::Location>),
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 45 |     /// Code actions response
[INFO] [stderr] 46 |     CodeActions(Vec<lsp_types::CodeActionOrCommand>),
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 47 |     /// Signature help response
[INFO] [stderr] 48 |     SignatureHelp(Option<lsp_types::SignatureHelp>),
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 49 |     /// Server started for a language
[INFO] [stderr] 50 |     ServerStarted(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 51 |     /// Server stopped or crashed
[INFO] [stderr] 52 |     ServerStopped(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 53 |     /// Formatting response
[INFO] [stderr] 54 |     Formatting(Vec<lsp_types::TextEdit>),
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 55 |     /// Rename response
[INFO] [stderr] 56 |     WorkspaceEdit(Option<lsp_types::WorkspaceEdit>),
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `LspEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Copied`, `Moved`, `Deleted`, `Renamed`, and `Error` are never constructed
[INFO] [stderr]   --> src/events.rs:61:5
[INFO] [stderr]    |
[INFO] [stderr] 60 | pub enum FileOpResult {
[INFO] [stderr]    |          ------------ variants in this enum
[INFO] [stderr] 61 |     Copied { from: PathBuf, to: PathBuf },
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 62 |     Moved { from: PathBuf, to: PathBuf },
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 63 |     Deleted(PathBuf),
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 64 |     Renamed { from: PathBuf, to: PathBuf },
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 65 |     Error(String),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `FileOpResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Lsp`, `FileOp`, `WatchDir`, and `Shutdown` are never constructed
[INFO] [stderr]   --> src/events.rs:72:5
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub enum BackgroundCommand {
[INFO] [stderr]    |          ----------------- variants in this enum
[INFO] [stderr] 71 |     /// Request LSP operation
[INFO] [stderr] 72 |     Lsp(LspCommand),
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 73 |     /// Request file operation
[INFO] [stderr] 74 |     FileOp(FileOpCommand),
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 75 |     /// Watch a new directory
[INFO] [stderr] 76 |     WatchDir(PathBuf),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 77 |     /// Shutdown all background tasks
[INFO] [stderr] 78 |     Shutdown,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BackgroundCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]   --> src/events.rs:83:5
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub enum LspCommand {
[INFO] [stderr]    |          ---------- variants in this enum
[INFO] [stderr] 83 |     Initialize { root_uri: String },
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 84 |     Completion { uri: String, position: lsp_types::Position },
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 85 |     Hover { uri: String, position: lsp_types::Position },
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 86 |     GotoDefinition { uri: String, position: lsp_types::Position },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 87 |     References { uri: String, position: lsp_types::Position },
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 88 |     Rename { uri: String, position: lsp_types::Position, new_name: String },
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 89 |     CodeAction { uri: String, range: lsp_types::Range },
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 90 |     Format { uri: String },
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 91 |     DidOpen { uri: String, language_id: String, text: String },
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 92 |     DidChange { uri: String, text: String, version: i32 },
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 93 |     DidClose { uri: String },
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 94 |     SignatureHelp { uri: String, position: lsp_types::Position },
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `LspCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Copy`, `Move`, `Delete`, `Rename`, `CreateFile`, and `CreateDir` are never constructed
[INFO] [stderr]    --> src/events.rs:99:5
[INFO] [stderr]     |
[INFO] [stderr]  98 | pub enum FileOpCommand {
[INFO] [stderr]     |          ------------- variants in this enum
[INFO] [stderr]  99 |     Copy { from: PathBuf, to: PathBuf },
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 100 |     Move { from: PathBuf, to: PathBuf },
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 101 |     Delete(PathBuf),
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] 102 |     Rename { from: PathBuf, to: PathBuf },
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] 103 |     CreateFile(PathBuf),
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] 104 |     CreateDir(PathBuf),
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `FileOpCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `OpenFileFinder`, `HoverInfo`, `FormatDocument`, and `SignatureHelp` are never constructed
[INFO] [stderr]   --> src/input/actions.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr]  6 | pub enum Action {
[INFO] [stderr]    |          ------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 12 |     OpenFileFinder,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 77 |     HoverInfo,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 78 |     FormatDocument,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 79 |     SignatureHelp,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `server_count` is never used
[INFO] [stderr]    --> src/lsp/registry.rs:182:12
[INFO] [stderr]     |
[INFO] [stderr]  84 | impl LspRegistry {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 182 |     pub fn server_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `RequestRename`, `FilePaste`, `ShowFileFinder`, and `ProjectSearch` are never constructed
[INFO] [stderr]   --> src/ui/mod.rs:42:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub enum AppCommand {
[INFO] [stderr]    |          ---------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 42 |     RequestRename(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     FilePaste(std::path::PathBuf),
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 |     ShowFileFinder,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 67 |     /// Project-wide search
[INFO] [stderr] 68 |     ProjectSearch,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AppCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `detail` is never read
[INFO] [stderr]   --> src/ui/completion.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct CompletionItem {
[INFO] [stderr]    |            -------------- field in this struct
[INFO] [stderr] 14 |     pub label: String,
[INFO] [stderr] 15 |     pub detail: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CompletionItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Pending` is never constructed
[INFO] [stderr]   --> src/ui/confirm_dialog.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub enum ConfirmResult {
[INFO] [stderr]    |          ------------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 36 |     Pending,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ConfirmResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `total_lines` is never read
[INFO] [stderr]   --> src/ui/status_bar.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct StatusInfo {
[INFO] [stderr]    |            ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub total_lines: usize,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `StatusInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `pika-ide` (bin "pika" test) generated 66 warnings (run `cargo fix --bin "pika" -p pika-ide --tests` to apply 48 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.27s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/pika-138954534f0770e3)
[INFO] [stdout] 
[INFO] [stdout] running 507 tests
[INFO] [stdout] test config::settings::tests::test_load_malformed_file_returns_error ... ok
[INFO] [stdout] test config::settings::tests::test_config_dir_ends_with_pika ... ok
[INFO] [stdout] test config::settings::tests::test_load_missing_file_returns_default ... ok
[INFO] [stdout] test config::settings::tests::test_default_lsp_settings ... ok
[INFO] [stdout] test config::settings::tests::test_default_settings ... ok
[INFO] [stdout] test config::settings::tests::test_lsp_settings_serialize_roundtrip ... ok
[INFO] [stdout] test config::settings::tests::test_lsp_server_config_equality ... ok
[INFO] [stdout] test config::settings::tests::test_save_and_load_via_tempfile ... ok
[INFO] [stdout] test config::settings::tests::test_settings_partial_toml ... ok
[INFO] [stdout] test config::settings::tests::test_save_creates_parent_dirs ... ok
[INFO] [stdout] test config::settings::tests::test_settings_with_lsp_server ... ok
[INFO] [stdout] test config::theme::tests::test_all_theme_colors_convert_to_ratatui ... ok
[INFO] [stdout] test config::theme::tests::test_color_boundary_values ... ok
[INFO] [stdout] test config::theme::tests::test_color_clone ... ok
[INFO] [stdout] test config::theme::tests::test_color_debug ... ok
[INFO] [stdout] test config::theme::tests::test_color_equality ... ok
[INFO] [stdout] test config::theme::tests::test_color_new ... ok
[INFO] [stdout] test config::theme::tests::test_color_to_ratatui ... ok
[INFO] [stdout] test config::theme::tests::test_theme_clone ... ok
[INFO] [stdout] test config::theme::tests::test_color_serialization_roundtrip ... ok
[INFO] [stdout] test config::theme::tests::test_theme_default_creates_valid_theme ... ok
[INFO] [stdout] test config::theme::tests::test_theme_partial_deserialization ... ok
[INFO] [stdout] test editor::clipboard::tests::debug_impl ... ok
[INFO] [stdout] test config::settings::tests::test_settings_with_custom_theme ... ok
[INFO] [stdout] test editor::clipboard::tests::fallback_empty_initially ... ok
[INFO] [stdout] test editor::clipboard::tests::default_trait ... ok
[INFO] [stdout] test editor::clipboard::tests::fallback_empty_string ... ok
[INFO] [stdout] test editor::clipboard::tests::fallback_overwrite ... ok
[INFO] [stdout] test editor::clipboard::tests::fallback_multiline_text ... ok
[INFO] [stdout] test editor::clipboard::tests::fallback_unicode ... ok
[INFO] [stdout] test editor::clipboard::tests::fallback_set_and_get ... ok
[INFO] [stdout] test editor::clipboard::tests::has_system_clipboard_fallback ... ok
[INFO] [stdout] test editor::clipboard::tests::new_does_not_panic ... ok
[INFO] [stdout] test editor::clipboard::tests::system_clipboard_if_available ... ok
[INFO] [stdout] test editor::cursor::tests::cursor_state_at ... ok
[INFO] [stdout] test editor::cursor::tests::cursor_state_default ... ok
[INFO] [stdout] test editor::cursor::tests::cursor_state_default_trait ... ok
[INFO] [stdout] test editor::cursor::tests::cursor_state_clear_selection ... ok
[INFO] [stdout] test editor::cursor::tests::cursor_state_has_selection_false_for_empty ... ok
[INFO] [stdout] test editor::cursor::tests::cursor_state_move_vertically_clears_selection ... ok
[INFO] [stdout] test editor::cursor::tests::cursor_state_move_vertically_preserves_desired_col ... ok
[INFO] [stdout] test editor::cursor::tests::cursor_state_select_to_creates_selection ... ok
[INFO] [stdout] test editor::cursor::tests::cursor_state_select_to_extends_selection ... ok
[INFO] [stdout] test editor::cursor::tests::position_eq ... ok
[INFO] [stdout] test editor::cursor::tests::position_new_and_zero ... ok
[INFO] [stdout] test editor::cursor::tests::position_ordering ... ok
[INFO] [stdout] test editor::cursor::tests::position_ordering_same_line ... ok
[INFO] [stdout] test editor::cursor::tests::selection_contains_backward_selection ... ok
[INFO] [stdout] test config::theme::tests::test_theme_serialization_roundtrip ... ok
[INFO] [stdout] test editor::cursor::tests::selection_contains_excludes_end ... ok
[INFO] [stdout] test editor::cursor::tests::selection_contains_inside ... ok
[INFO] [stdout] test editor::cursor::tests::selection_contains_multiline ... ok
[INFO] [stdout] test editor::cursor::tests::cursor_state_move_to ... ok
[INFO] [stdout] test editor::cursor::tests::selection_contains_outside ... ok
[INFO] [stdout] test editor::cursor::tests::selection_is_empty ... ok
[INFO] [stdout] test editor::cursor::tests::selection_ordered_backward ... ok
[INFO] [stdout] test editor::document::tests::char_at_out_of_bounds ... ok
[INFO] [stdout] test editor::cursor::tests::selection_ordered_forward ... ok
[INFO] [stdout] test editor::document::tests::char_at_valid ... ok
[INFO] [stdout] test editor::document::tests::delete_range_empty_is_noop ... ok
[INFO] [stdout] test editor::document::tests::delete_range_multiline ... ok
[INFO] [stdout] test editor::document::tests::delete_range_single_line ... ok
[INFO] [stdout] test editor::document::tests::detect_language_go ... ok
[INFO] [stdout] test editor::document::tests::detect_language_javascript ... ok
[INFO] [stdout] test editor::document::tests::detect_language_python ... ok
[INFO] [stdout] test editor::document::tests::detect_language_no_extension ... ok
[INFO] [stdout] test editor::document::tests::detect_language_rust ... ok
[INFO] [stdout] test editor::document::tests::detect_language_shell ... ok
[INFO] [stdout] test editor::document::tests::detect_language_tsx ... ok
[INFO] [stdout] test editor::document::tests::detect_language_typescript ... ok
[INFO] [stdout] test editor::document::tests::detect_language_unknown ... ok
[INFO] [stdout] test editor::document::tests::from_text_basic ... ok
[INFO] [stdout] test editor::document::tests::from_text_empty ... ok
[INFO] [stdout] test editor::document::tests::insert_char_at_start ... ok
[INFO] [stdout] test editor::document::tests::insert_char_newline ... ok
[INFO] [stdout] test editor::document::tests::insert_text_middle ... ok
[INFO] [stdout] test editor::document::tests::insert_text_multiline ... ok
[INFO] [stdout] test editor::document::tests::line_len_excludes_newline ... ok
[INFO] [stdout] test editor::document::tests::line_len_last_line_no_newline ... ok
[INFO] [stdout] test editor::document::tests::line_len_out_of_bounds ... ok
[INFO] [stdout] test editor::document::tests::line_out_of_bounds_returns_empty ... ok
[INFO] [stdout] test editor::document::tests::multibyte_chars ... ok
[INFO] [stdout] test editor::document::tests::open_and_read ... ok
[INFO] [stdout] test editor::document::tests::open_nonexistent_file_errors ... ok
[INFO] [stdout] test editor::document::tests::rope_returns_reference ... ok
[INFO] [stdout] test editor::document::tests::save_as_new_path ... ok
[INFO] [stdout] test editor::document::tests::save_as_updates_language_id ... ok
[INFO] [stdout] test editor::document::tests::save_without_path_errors ... ok
[INFO] [stdout] test editor::document::tests::unicode_insert_and_query ... ok
[INFO] [stdout] test editor::document::tests::save_to_existing_path ... ok
[INFO] [stdout] test editor::history::tests::clear_aborts_open_group ... ok
[INFO] [stdout] test editor::history::tests::clear_removes_all_history ... ok
[INFO] [stdout] test editor::history::tests::default_trait ... ok
[INFO] [stdout] test editor::document::tests::version_increments_on_save ... ok
[INFO] [stdout] test editor::history::tests::edit_delete_constructor ... ok
[INFO] [stdout] test editor::document::tests::insert_char_at_end ... ok
[INFO] [stdout] test editor::history::tests::edit_insert_constructor ... ok
[INFO] [stdout] test editor::history::tests::edit_invert_delete_to_insert ... ok
[INFO] [stdout] test editor::history::tests::edit_double_invert_is_identity ... ok
[INFO] [stdout] test editor::history::tests::empty_group_not_pushed ... ok
[INFO] [stdout] test editor::history::tests::edit_invert_insert_to_delete ... ok
[INFO] [stdout] test editor::history::tests::end_group_without_begin_is_noop ... ok
[INFO] [stdout] test editor::history::tests::empty_history ... ok
[INFO] [stdout] test editor::history::tests::grouped_edits_redo_together ... ok
[INFO] [stdout] test editor::history::tests::grouped_edits_undo_together ... ok
[INFO] [stdout] test editor::history::tests::multiple_undo_redo ... ok
[INFO] [stdout] test editor::history::tests::mixed_grouped_and_ungrouped ... ok
[INFO] [stdout] test editor::history::tests::nested_begin_group_is_noop ... ok
[INFO] [stdout] test editor::history::tests::new_edit_clears_redo ... ok
[INFO] [stdout] test editor::history::tests::record_single_edit_creates_own_group ... ok
[INFO] [stdout] test editor::history::tests::redo_on_empty_returns_none ... ok
[INFO] [stdout] test editor::history::tests::redo_returns_original_edit ... ok
[INFO] [stdout] test editor::history::tests::undo_on_empty_returns_none ... ok
[INFO] [stdout] test editor::history::tests::undo_returns_inverted_edit ... ok
[INFO] [stdout] test config::settings::tests::test_settings_serialization_roundtrip ... ok
[INFO] [stdout] test app::tests::test_close_tab_empty ... ok
[INFO] [stdout] test app::tests::test_open_file ... ok
[INFO] [stdout] test app::tests::test_dispatch_action ... ok
[INFO] [stdout] test editor::syntax::tests::default_trait ... ok
[INFO] [stdout] test app::tests::test_focus_cycling ... ok
[INFO] [stdout] test app::tests::test_command_palette_show ... ok
[INFO] [stdout] test editor::syntax::tests::detect_syntax_javascript ... ok
[INFO] [stdout] test app::tests::test_quit ... ok
[INFO] [stdout] test editor::syntax::tests::highlight_style_from_syntect ... ok
[INFO] [stdout] test app::tests::test_save_no_buffer ... ok
[INFO] [stdout] test app::tests::test_app_new ... ok
[INFO] [stdout] test editor::syntax::tests::highlight_style_new ... ok
[INFO] [stdout] test app::tests::test_sidebar_hidden_focus_stays_editor ... ok
[INFO] [stdout] test editor::syntax::tests::highlighted_span_new ... ok
[INFO] [stdout] test app::tests::test_dispatch_none_action ... ok
[INFO] [stdout] test app::tests::test_toggle_sidebar ... ok
[INFO] [stdout] test events::tests::test_app_event_is_send ... ok
[INFO] [stdout] test events::tests::test_background_command_is_send ... ok
[INFO] [stdout] test events::tests::test_file_change_event_variants ... ok
[INFO] [stdout] test files::drop_handler::tests::test_drop_handler_is_constructible ... ok
[INFO] [stdout] test files::drop_handler::tests::test_expand_tilde_just_tilde ... ok
[INFO] [stdout] test files::drop_handler::tests::test_expand_tilde_no_tilde ... ok
[INFO] [stdout] test files::drop_handler::tests::test_expand_tilde_with_subpath ... ok
[INFO] [stdout] test editor::syntax::tests::detect_syntax_rust ... ok
[INFO] [stdout] test files::drop_handler::tests::test_is_file_drop_false_for_code ... ok
[INFO] [stdout] test files::drop_handler::tests::test_is_file_drop_false_mixed ... ok
[INFO] [stdout] test files::drop_handler::tests::test_is_file_drop_false_paths_not_existing ... ok
[INFO] [stdout] test files::drop_handler::tests::test_is_file_drop_false_for_empty ... ok
[INFO] [stdout] test files::drop_handler::tests::test_is_file_drop_tilde_path ... ok
[INFO] [stdout] test files::drop_handler::tests::test_is_file_drop_true ... ok
[INFO] [stdout] test files::drop_handler::tests::test_looks_like_path_absolute_unix ... ok
[INFO] [stdout] test files::drop_handler::tests::test_looks_like_path_not_a_path ... ok
[INFO] [stdout] test files::drop_handler::tests::test_looks_like_path_tilde ... ok
[INFO] [stdout] test files::drop_handler::tests::test_looks_like_path_windows ... ok
[INFO] [stdout] test editor::syntax::tests::detect_syntax_python ... ok
[INFO] [stdout] test files::drop_handler::tests::test_parse_dropped_content_empty ... ok
[INFO] [stdout] test files::drop_handler::tests::test_parse_dropped_content_directories ... ok
[INFO] [stdout] test files::drop_handler::tests::test_parse_dropped_content_existing_files ... ok
[INFO] [stdout] test files::drop_handler::tests::test_parse_dropped_content_trims_whitespace ... ok
[INFO] [stdout] test files::drop_handler::tests::test_is_file_drop_multiple_paths ... ok
[INFO] [stdout] test files::drop_handler::tests::test_parse_dropped_content_whitespace_only ... ok
[INFO] [stdout] test files::drop_handler::tests::test_parse_dropped_content_skips_nonexistent ... ok
[INFO] [stdout] test files::operations::tests::test_copy_directory ... ok
[INFO] [stdout] test files::operations::tests::test_copy_file_basic ... ok
[INFO] [stdout] test files::operations::tests::test_copy_file_into_dir ... ok
[INFO] [stdout] test files::operations::tests::test_create_dir_basic ... ok
[INFO] [stdout] test files::operations::tests::test_copy_file_conflict ... ok
[INFO] [stdout] test files::operations::tests::test_create_file_basic ... ok
[INFO] [stdout] test editor::syntax::tests::detect_syntax_unknown_extension ... ok
[INFO] [stdout] test files::operations::tests::test_create_dir_conflict ... ok
[INFO] [stdout] test files::operations::tests::test_delete_to_trash ... ok
[INFO] [stdout] test files::operations::tests::test_create_file_conflict ... ok
[INFO] [stdout] test files::operations::tests::test_create_file_nested ... ok
[INFO] [stdout] test files::operations::tests::test_delete_to_trash_nonexistent ... ok
[INFO] [stdout] test files::operations::tests::test_create_dir_nested ... ok
[INFO] [stdout] test files::operations::tests::test_rename_directory ... ok
[INFO] [stdout] test files::operations::tests::test_move_file_basic ... ok
[INFO] [stdout] test files::operations::tests::test_rename_file_conflict ... ok
[INFO] [stdout] test files::operations::tests::test_resolve_conflict_first_collision ... ok
[INFO] [stdout] test files::operations::tests::test_resolve_conflict_multiple_collisions ... ok
[INFO] [stdout] test files::operations::tests::test_resolve_conflict_no_conflict ... ok
[INFO] [stdout] test files::operations::tests::test_resolve_conflict_no_extension ... ok
[INFO] [stdout] test files::tree::tests::test_build_tree_alphabetical_order ... ok
[INFO] [stdout] test files::operations::tests::test_move_file_conflict ... ok
[INFO] [stdout] test files::tree::tests::test_build_tree_basic ... ok
[INFO] [stdout] test files::tree::tests::test_build_tree_hidden_files_skipped ... ok
[INFO] [stdout] test files::tree::tests::test_build_tree_depth ... ok
[INFO] [stdout] test files::operations::tests::test_move_file_into_dir ... ok
[INFO] [stdout] test files::tree::tests::test_build_tree_nested ... ok
[INFO] [stdout] test files::tree::tests::test_build_tree_non_root_collapsed ... ok
[INFO] [stdout] test files::tree::tests::test_build_tree_sorts_dirs_first ... ok
[INFO] [stdout] test files::tree::tests::test_case_insensitive_sort ... ok
[INFO] [stdout] test files::tree::tests::test_build_tree_max_depth ... ok
[INFO] [stdout] test files::tree::tests::test_build_tree_root_expanded ... ok
[INFO] [stdout] test files::tree::tests::test_empty_directory ... ok
[INFO] [stdout] test files::tree::tests::test_file_node_path_is_absolute ... ok
[INFO] [stdout] test files::operations::tests::test_rename_file_basic ... ok
[INFO] [stdout] test files::tree::tests::test_nonexistent_path_errors ... ok
[INFO] [stdout] test files::tree::tests::test_file_tree_flatten_includes_root ... ok
[INFO] [stdout] test files::tree::tests::test_flat_entry_fields ... ok
[INFO] [stdout] test files::tree::tests::test_refresh_clamps_index ... ok
[INFO] [stdout] test files::tree::tests::test_file_tree_from_path ... ok
[INFO] [stdout] test files::tree::tests::test_refresh ... ok
[INFO] [stdout] test files::tree::tests::test_refresh_preserves_expanded ... ok
[INFO] [stdout] test files::tree::tests::test_select_next ... ok
[INFO] [stdout] test files::tree::tests::test_select_next_clamps ... ok
[INFO] [stdout] test files::tree::tests::test_select_previous ... ok
[INFO] [stdout] test files::tree::tests::test_selected_entry_none_on_empty ... ok
[INFO] [stdout] test files::tree::tests::test_select_previous_clamps_at_zero ... ok
[INFO] [stdout] test files::tree::tests::test_selected_entry ... ok
[INFO] [stdout] test files::tree::tests::test_toggle_expand_dir ... ok
[INFO] [stdout] test files::tree::tests::test_toggle_expand_file_is_noop ... ok
[INFO] [stdout] test files::watcher::tests::test_watch_nonexistent_path ... ok
[INFO] [stdout] test files::watcher::tests::test_unwatch_without_watch ... ok
[INFO] [stdout] test files::watcher::tests::test_unwatch_after_watch ... ok
[INFO] [stdout] test files::watcher::tests::test_watcher_creation ... ok
[INFO] [stdout] test files::watcher::tests::test_watch_valid_path ... ok
[INFO] [stdout] test input::actions::tests::test_action_clone_eq ... ok
[INFO] [stdout] test input::actions::tests::test_file_drop_action ... ok
[INFO] [stdout] test input::actions::tests::test_focus_area_copy ... ok
[INFO] [stdout] test input::handler::tests::test_arrow_keys_cursor_movement ... ok
[INFO] [stdout] test input::handler::tests::test_backspace_deletes ... ok
[INFO] [stdout] test input::handler::tests::test_completion_accept_enter ... ok
[INFO] [stdout] test files::watcher::tests::test_multiple_watches ... ok
[INFO] [stdout] test input::handler::tests::test_completion_dismiss_esc ... ok
[INFO] [stdout] test input::handler::tests::test_completion_up_down ... ok
[INFO] [stdout] test input::handler::tests::test_ctrl_q_quits_from_any_focus ... ok
[INFO] [stdout] test input::handler::tests::test_ctrl_s_saves ... ok
[INFO] [stdout] test input::handler::tests::test_ctrl_z_undo ... ok
[INFO] [stdout] test input::handler::tests::test_default_handler ... ok
[INFO] [stdout] test input::handler::tests::test_enter_inserts_newline ... ok
[INFO] [stdout] test input::handler::tests::test_f12_goto_definition ... ok
[INFO] [stdout] test input::handler::tests::test_focus_specific_overrides_global ... ok
[INFO] [stdout] test input::handler::tests::test_handler_clone ... ok
[INFO] [stdout] test input::handler::tests::test_key_release_ignored ... ok
[INFO] [stdout] test input::handler::tests::test_palette_backspace ... ok
[INFO] [stdout] test input::handler::tests::test_palette_char_input ... ok
[INFO] [stdout] test input::handler::tests::test_palette_esc_dismisses ... ok
[INFO] [stdout] test input::handler::tests::test_palette_shift_char ... ok
[INFO] [stdout] test input::handler::tests::test_paste_empty ... ok
[INFO] [stdout] test input::handler::tests::test_paste_text ... ok
[INFO] [stdout] test input::handler::tests::test_paste_file_paths ... ok
[INFO] [stdout] test input::handler::tests::test_plain_char_inserts_in_editor ... ok
[INFO] [stdout] test input::handler::tests::test_resize_returns_none ... ok
[INFO] [stdout] test input::handler::tests::test_shift_char_inserts_uppercase ... ok
[INFO] [stdout] test input::handler::tests::test_sidebar_arrows_navigate ... ok
[INFO] [stdout] test input::handler::tests::test_sidebar_enter_opens ... ok
[INFO] [stdout] test input::handler::tests::test_sidebar_n_new_file ... ok
[INFO] [stdout] test input::handler::tests::test_sidebar_r_triggers_file_rename ... ok
[INFO] [stdout] test input::handler::tests::test_sidebar_unbound_char_produces_insert_char ... ok
[INFO] [stdout] test input::handler::tests::test_unbound_key_returns_none ... ok
[INFO] [stdout] test input::keymap::tests::test_completion_accept ... ok
[INFO] [stdout] test input::keymap::tests::test_completion_dismiss ... ok
[INFO] [stdout] test input::keymap::tests::test_completion_navigation ... ok
[INFO] [stdout] test input::keymap::tests::test_custom_bind_overrides ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_arrow_keys ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_clipboard ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_ctrl_arrow_word_movement ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_find_replace ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_goto_line ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_home_end ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_lsp_bindings ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_page_up_down ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_select_all ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_select_next_occurrence ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_text_editing_keys ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_undo_redo ... ok
[INFO] [stdout] test input::keymap::tests::test_global_alt_left_previous_tab ... ok
[INFO] [stdout] test input::keymap::tests::test_global_alt_right_next_tab ... ok
[INFO] [stdout] test input::keymap::tests::test_global_ctrl_b_toggles_sidebar ... ok
[INFO] [stdout] test input::keymap::tests::test_global_ctrl_p_command_palette ... ok
[INFO] [stdout] test input::keymap::tests::test_global_ctrl_q_quits ... ok
[INFO] [stdout] test input::keymap::tests::test_global_ctrl_s_saves ... ok
[INFO] [stdout] test input::keymap::tests::test_global_ctrl_shift_f_project_search ... ok
[INFO] [stdout] test input::keymap::tests::test_global_ctrl_w_close_tab ... ok
[INFO] [stdout] test input::keymap::tests::test_editor_shift_selection ... ok
[INFO] [stdout] test input::keymap::tests::test_keymap_for_returns_correct_map ... ok
[INFO] [stdout] test input::keymap::tests::test_keymap_get_missing_returns_none ... ok
[INFO] [stdout] test input::keymap::tests::test_palette_accept_dismiss ... ok
[INFO] [stdout] test input::keymap::tests::test_keymap_set_clone ... ok
[INFO] [stdout] test input::keymap::tests::test_palette_backspace ... ok
[INFO] [stdout] test input::keymap::tests::test_palette_navigation ... ok
[INFO] [stdout] test input::keymap::tests::test_sidebar_clipboard ... ok
[INFO] [stdout] test input::keymap::tests::test_sidebar_file_operations ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_code_action_kinds ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_did_change_configuration ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_has_code_action ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_has_completion ... ok
[INFO] [stdout] test input::keymap::tests::test_sidebar_navigation ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_has_definition ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_has_formatting ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_has_hover ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_has_publish_diagnostics ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_has_references ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_has_signature_help ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_has_rename ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_has_workspace ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_serialization ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_has_text_document ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_client_capabilities_workspace_edit ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_supports_feature_code_action ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_supports_feature_completion ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_supports_feature_definition ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_supports_feature_diagnostics_always_true ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_supports_feature_formatting ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_supports_feature_hover ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_supports_feature_references ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_supports_feature_rename ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_supports_feature_signature_help ... ok
[INFO] [stdout] test lsp::capabilities::tests::test_supports_feature_unknown_returns_false ... ok
[INFO] [stdout] test lsp::client::tests::test_atomic_id_generation ... ok
[INFO] [stdout] test lsp::client::tests::test_dispatch_notification_diagnostics ... ok
[INFO] [stdout] test lsp::client::tests::test_dispatch_notification_diagnostics_bad_params ... ok
[INFO] [stdout] test lsp::client::tests::test_dispatch_notification_unknown_method ... ok
[INFO] [stdout] test lsp::client::tests::test_format_lsp_message_empty_body ... ok
[INFO] [stdout] test lsp::client::tests::test_format_lsp_message_json_body ... ok
[INFO] [stdout] test lsp::client::tests::test_format_lsp_message_simple ... ok
[INFO] [stdout] test lsp::client::tests::test_notification_message_format ... ok
[INFO] [stdout] test lsp::client::tests::test_parse_content_length_empty ... ok
[INFO] [stdout] test lsp::client::tests::test_parse_content_length_invalid_value ... ok
[INFO] [stdout] test lsp::client::tests::test_parse_content_length_no_header ... ok
[INFO] [stdout] test lsp::client::tests::test_parse_content_length_valid ... ok
[INFO] [stdout] test lsp::client::tests::test_parse_content_length_with_whitespace ... ok
[INFO] [stdout] test lsp::client::tests::test_read_content_length_missing_header ... ok
[INFO] [stdout] test lsp::client::tests::test_read_content_length_eof ... ok
[INFO] [stdout] test lsp::client::tests::test_read_content_length_valid ... ok
[INFO] [stdout] test lsp::client::tests::test_read_content_length_with_extra_headers ... ok
[INFO] [stdout] test lsp::client::tests::test_read_full_message_roundtrip ... ok
[INFO] [stdout] test lsp::client::tests::test_read_multiple_messages ... ok
[INFO] [stdout] test lsp::client::tests::test_request_message_format ... ok
[INFO] [stdout] test lsp::client::tests::test_response_deserialization ... ok
[INFO] [stdout] test lsp::client::tests::test_response_error_deserialization ... ok
[INFO] [stdout] test editor::syntax::tests::highlight_unknown_syntax_returns_single_span ... ok
[INFO] [stdout] test lsp::registry::tests::test_binary_exists_known_binary ... ok
[INFO] [stdout] test lsp::registry::tests::test_binary_exists_unknown_binary ... ok
[INFO] [stdout] test lsp::registry::tests::test_discover_returns_hashmap ... ok
[INFO] [stdout] test lsp::registry::tests::test_known_servers_clangd ... ok
[INFO] [stdout] test lsp::registry::tests::test_known_servers_count ... ok
[INFO] [stdout] test lsp::registry::tests::test_known_servers_gopls ... ok
[INFO] [stdout] test lsp::registry::tests::test_known_servers_jdtls ... ok
[INFO] [stdout] test lsp::registry::tests::test_known_servers_lua ... ok
[INFO] [stdout] test lsp::registry::tests::test_known_servers_not_empty ... ok
[INFO] [stdout] test lsp::registry::tests::test_known_servers_pyright ... ok
[INFO] [stdout] test lsp::registry::tests::test_known_servers_rust_analyzer ... ok
[INFO] [stdout] test lsp::registry::tests::test_known_servers_typescript ... ok
[INFO] [stdout] test lsp::registry::tests::test_known_servers_zls ... ok
[INFO] [stdout] test editor::syntax::tests::detect_syntax_path_with_dirs ... ok
[INFO] [stdout] test lsp::registry::tests::test_client_for_extension_returns_none_for_unknown ... ok
[INFO] [stdout] test lsp::registry::tests::test_registry_multiple_extensions_same_server ... ok
[INFO] [stdout] test files::watcher::tests::test_watcher_receives_events ... ok
[INFO] [stdout] test lsp::registry::tests::test_registry_new_with_user_config ... ok
[INFO] [stdout] test lsp::registry::tests::test_server_config_clone ... ok
[INFO] [stdout] test lsp::registry::tests::test_server_config_debug ... ok
[INFO] [stdout] test editor::syntax::tests::new_does_not_panic ... ok
[INFO] [stdout] test lsp::types::tests::test_error_serialization_with_data ... ok
[INFO] [stdout] test lsp::types::tests::test_error_serialization_without_data ... ok
[INFO] [stdout] test lsp::types::tests::test_json_rpc_message_deserialize_notification ... ok
[INFO] [stdout] test lsp::types::tests::test_json_rpc_message_deserialize_request ... ok
[INFO] [stdout] test lsp::types::tests::test_json_rpc_message_deserialize_response ... ok
[INFO] [stdout] test lsp::types::tests::test_notification_clone ... ok
[INFO] [stdout] test lsp::types::tests::test_notification_new ... ok
[INFO] [stdout] test lsp::types::tests::test_notification_new_no_params ... ok
[INFO] [stdout] test lsp::types::tests::test_notification_params_none_omitted_in_json ... ok
[INFO] [stdout] test lsp::types::tests::test_notification_serialization_roundtrip ... ok
[INFO] [stdout] test lsp::types::tests::test_request_clone ... ok
[INFO] [stdout] test lsp::types::tests::test_request_new ... ok
[INFO] [stdout] test lsp::types::tests::test_request_new_no_params ... ok
[INFO] [stdout] test lsp::types::tests::test_request_params_none_omitted_in_json ... ok
[INFO] [stdout] test lsp::registry::tests::test_registry_new_empty_user_config ... ok
[INFO] [stdout] test files::watcher::tests::test_watcher_detects_deletion ... ok
[INFO] [stdout] test lsp::types::tests::test_response_err ... ok
[INFO] [stdout] test lsp::types::tests::test_response_ok ... ok
[INFO] [stdout] test lsp::types::tests::test_request_serialization_roundtrip ... ok
[INFO] [stdout] test lsp::types::tests::test_response_error_with_response_ok_fields ... ok
[INFO] [stdout] test lsp::types::tests::test_response_serialization_roundtrip ... ok
[INFO] [stdout] test ui::buffer::tests::test_backspace_deletes_selection ... ok
[INFO] [stdout] test lsp::registry::tests::test_registry_no_server_for_unknown_extension ... ok
[INFO] [stdout] test ui::buffer::tests::test_copy_paste ... ok
[INFO] [stdout] test ui::buffer::tests::test_cursor_line_boundaries ... ok
[INFO] [stdout] test ui::buffer::tests::test_buffer_from_text ... ok
[INFO] [stdout] test ui::buffer::tests::test_cursor_movement ... ok
[INFO] [stdout] test ui::buffer::tests::test_cursor_screen_position ... ok
[INFO] [stdout] test ui::buffer::tests::test_cursor_word_movement ... ok
[INFO] [stdout] test ui::buffer::tests::test_delete_backward ... ok
[INFO] [stdout] test lsp::registry::tests::test_registry_user_config_overrides_discovered ... ok
[INFO] [stdout] test ui::buffer::tests::test_delete_backward_at_line_start ... ok
[INFO] [stdout] test ui::buffer::tests::test_insert_char ... ok
[INFO] [stdout] test ui::buffer::tests::test_insert_newline ... ok
[INFO] [stdout] test lsp::registry::tests::test_shutdown_all_with_no_clients ... ok
[INFO] [stdout] test ui::buffer::tests::test_page_up_down ... ok
[INFO] [stdout] test ui::buffer::tests::test_paste_multiline ... ok
[INFO] [stdout] test ui::buffer::tests::test_paste_replaces_selection ... ok
[INFO] [stdout] test ui::buffer::tests::test_name_untitled ... ok
[INFO] [stdout] test ui::buffer::tests::test_gutter_width ... ok
[INFO] [stdout] test ui::buffer::tests::test_handle_action_returns_command ... ok
[INFO] [stdout] test ui::buffer::tests::test_file_start_end ... ok
[INFO] [stdout] test ui::buffer::tests::test_search_activate_and_dismiss ... ok
[INFO] [stdout] test ui::buffer::tests::test_search_case_insensitive ... ok
[INFO] [stdout] test ui::buffer::tests::test_scroll_on_cursor_movement ... ok
[INFO] [stdout] test ui::buffer::tests::test_search_navigate_matches ... ok
[INFO] [stdout] test ui::buffer::tests::test_search_finds_matches ... ok
[INFO] [stdout] test ui::buffer::tests::test_select_all ... ok
[INFO] [stdout] test ui::buffer::tests::test_search_typing_updates_query ... ok
[INFO] [stdout] test ui::buffer::tests::test_select_down ... ok
[INFO] [stdout] test ui::buffer::tests::test_search_ctrl_f_toggles ... ok
[INFO] [stdout] test editor::syntax::tests::detect_syntax_no_extension ... ok
[INFO] [stdout] test ui::buffer::tests::test_select_get_text ... ok
[INFO] [stdout] test ui::buffer::tests::test_select_collapses_to_none ... ok
[INFO] [stdout] test ui::buffer::tests::test_select_left ... ok
[INFO] [stdout] test ui::buffer::tests::test_select_multiline ... ok
[INFO] [stdout] test ui::buffer::tests::test_select_then_move_clears ... ok
[INFO] [stdout] test ui::buffer::tests::test_select_word_right ... ok
[INFO] [stdout] test ui::buffer::tests::test_select_up ... ok
[INFO] [stdout] test ui::buffer::tests::test_type_replaces_selection ... ok
[INFO] [stdout] test ui::command_palette::tests::test_accept_empty ... ok
[INFO] [stdout] test ui::buffer::tests::test_select_right ... ok
[INFO] [stdout] test ui::buffer::tests::test_undo_redo ... ok
[INFO] [stdout] test ui::command_palette::tests::test_accept ... ok
[INFO] [stdout] test ui::buffer::tests::test_select_line_end ... ok
[INFO] [stdout] test ui::command_palette::tests::test_handle_action_dismiss ... ok
[INFO] [stdout] test ui::command_palette::tests::test_fuzzy_filter ... ok
[INFO] [stdout] test ui::command_palette::tests::test_backspace ... ok
[INFO] [stdout] test ui::command_palette::tests::test_hide ... ok
[INFO] [stdout] test ui::command_palette::tests::test_navigation ... ok
[INFO] [stdout] test ui::command_palette::tests::test_handle_action_accept ... ok
[INFO] [stdout] test ui::command_palette::tests::test_show_collects_files ... ok
[INFO] [stdout] test ui::completion::tests::test_completion_kind_icon ... ok
[INFO] [stdout] test ui::command_palette::tests::test_skips_hidden_files ... ok
[INFO] [stdout] test ui::completion::tests::test_handle_dismiss ... ok
[INFO] [stdout] test ui::completion::tests::test_accept ... ok
[INFO] [stdout] test ui::completion::tests::test_accept_empty ... ok
[INFO] [stdout] test ui::command_palette::tests::test_new_palette ... ok
[INFO] [stdout] test ui::completion::tests::test_show_empty_hides ... ok
[INFO] [stdout] test ui::completion::tests::test_new_popup ... ok
[INFO] [stdout] test ui::completion::tests::test_hide ... ok
[INFO] [stdout] test ui::completion::tests::test_navigation ... ok
[INFO] [stdout] test ui::completion::tests::test_show_from_lsp ... ok
[INFO] [stdout] test ui::completion::tests::test_from_lsp_kind ... ok
[INFO] [stdout] test ui::confirm_dialog::tests::test_accept ... ok
[INFO] [stdout] test ui::confirm_dialog::tests::test_new ... ok
[INFO] [stdout] test ui::confirm_dialog::tests::test_show_defaults_to_save ... ok
[INFO] [stdout] test ui::confirm_dialog::tests::test_show_hide ... ok
[INFO] [stdout] test ui::confirm_dialog::tests::test_navigation ... ok
[INFO] [stdout] test ui::completion::tests::test_show_popup ... ok
[INFO] [stdout] test ui::csv_view::tests::test_initial_cursor ... ok
[INFO] [stdout] test ui::csv_view::tests::test_edit_and_confirm ... ok
[INFO] [stdout] test ui::csv_view::tests::test_delete_clears_cell ... ok
[INFO] [stdout] test ui::csv_view::tests::test_col_widths ... ok
[INFO] [stdout] test ui::csv_view::tests::test_enter_edit_mode ... ok
[INFO] [stdout] test ui::csv_view::tests::test_navigate_down_up ... ok
[INFO] [stdout] test ui::csv_view::tests::test_edit_cancel_with_undo ... ok
[INFO] [stdout] test ui::buffer::tests::test_cut ... ok
[INFO] [stdout] test ui::csv_view::tests::test_parse_simple_csv ... ok
[INFO] [stdout] test ui::csv_view::tests::test_page_up_down ... ok
[INFO] [stdout] test ui::csv_view::tests::test_navigate_right_left ... ok
[INFO] [stdout] test ui::csv_view::tests::test_save_roundtrip ... ok
[INFO] [stdout] test ui::csv_view::tests::test_tab_moves_to_next_col ... ok
[INFO] [stdout] test ui::csv_view::tests::test_type_to_start_edit ... ok
[INFO] [stdout] test ui::editor::tests::test_csv_navigation_via_pane ... ok
[INFO] [stdout] test ui::editor::tests::test_next_previous_tab ... ok
[INFO] [stdout] test ui::editor::tests::test_editor_pane_new ... ok
[INFO] [stdout] test ui::editor::tests::test_close_active_tab ... ok
[INFO] [stdout] test ui::editor::tests::test_active_buffer_text ... ok
[INFO] [stdout] test ui::editor::tests::test_handle_edit_action ... ok
[INFO] [stdout] test ui::editor::tests::test_open_file ... ok
[INFO] [stdout] test ui::editor::tests::test_active_buffer_csv_returns_none ... ok
[INFO] [stdout] test ui::shortcuts_help::tests::test_build_lines_not_empty ... ok
[INFO] [stdout] test ui::shortcuts_help::tests::test_handle_action_esc_hides ... ok
[INFO] [stdout] test ui::editor::tests::test_open_same_file_twice ... ok
[INFO] [stdout] test ui::shortcuts_help::tests::test_handle_action_quit_doesnt_consume ... ok
[INFO] [stdout] test ui::editor::tests::test_open_csv_file ... ok
[INFO] [stdout] test ui::shortcuts_help::tests::test_hide_resets_scroll ... ok
[INFO] [stdout] test ui::shortcuts_help::tests::test_new ... ok
[INFO] [stdout] test ui::shortcuts_help::tests::test_scroll ... ok
[INFO] [stdout] test ui::editor::tests::test_status_info_empty ... ok
[INFO] [stdout] test ui::shortcuts_help::tests::test_toggle ... ok
[INFO] [stdout] test ui::sidebar::tests::test_delete_returns_command ... ok
[INFO] [stdout] test ui::sidebar::tests::test_file_cut ... ok
[INFO] [stdout] test ui::sidebar::tests::test_navigation ... ok
[INFO] [stdout] test ui::editor::tests::test_save_active_tab_text ... ok
[INFO] [stdout] test ui::sidebar::tests::test_new_dir_mode ... ok
[INFO] [stdout] test ui::sidebar::tests::test_new_file_mode ... ok
[INFO] [stdout] test ui::sidebar::tests::test_rename_mode ... ok
[INFO] [stdout] test ui::sidebar::tests::test_rename_mode_can_type_r ... ok
[INFO] [stdout] test ui::sidebar::tests::test_sidebar_new ... ok
[INFO] [stdout] test ui::sidebar::tests::test_tree_open_file ... ok
[INFO] [stdout] test ui::sidebar::tests::test_toggle_visibility ... ok
[INFO] [stdout] test ui::status_bar::tests::test_status_info_default ... ok
[INFO] [stdout] test ui::status_bar::tests::test_status_info_with_values ... ok
[INFO] [stdout] test ui::status_bar::tests::test_status_info_clone ... ok
[INFO] [stdout] test ui::tab_bar::tests::test_add_tab ... ok
[INFO] [stdout] test ui::tab_bar::tests::test_close_middle_tab ... ok
[INFO] [stdout] test ui::tab_bar::tests::test_close_nonexistent_tab ... ok
[INFO] [stdout] test ui::tab_bar::tests::test_find_tab ... ok
[INFO] [stdout] test ui::tab_bar::tests::test_close_tab ... ok
[INFO] [stdout] test ui::tab_bar::tests::test_next_previous_tab ... ok
[INFO] [stdout] test ui::editor::tests::test_status_info_text ... ok
[INFO] [stdout] test ui::tab_bar::tests::test_new_tab_bar ... ok
[INFO] [stdout] test ui::tab_bar::tests::test_update_tab ... ok
[INFO] [stdout] test ui::editor::tests::test_status_info_csv ... ok
[INFO] [stdout] test ui::shortcuts_help::tests::test_handle_action_scroll_down ... ok
[INFO] [stdout] test ui::shortcuts_help::tests::test_handle_action_page_down ... ok
[INFO] [stdout] test editor::syntax::tests::highlight_python_line ... ok
[INFO] [stdout] test editor::syntax::tests::highlight_text_single_line_no_trailing_newline ... ok
[INFO] [stdout] test editor::syntax::tests::highlight_empty_line ... ok
[INFO] [stdout] test ui::sidebar::tests::test_file_clipboard ... ok
[INFO] [stdout] test editor::syntax::tests::highlight_line_with_existing_newline ... ok
[INFO] [stdout] test editor::syntax::tests::highlight_text_multiline ... ok
[INFO] [stdout] test editor::syntax::tests::highlight_rust_line ... ok
[INFO] [stdout] test lsp::client::tests::test_rust_analyzer_completion ... ok
[INFO] [stdout] test editor::syntax::tests::rust_keyword_has_nonzero_color ... ok
[INFO] [stdout] test app::tests::test_lsp_flow_with_runtime ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 507 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 15.32s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9cef14909246f6e7416c1b0ef63d1057937178516638b7c93da729d6c90134e0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9cef14909246f6e7416c1b0ef63d1057937178516638b7c93da729d6c90134e0", kill_on_drop: false }`
[INFO] [stdout] 9cef14909246f6e7416c1b0ef63d1057937178516638b7c93da729d6c90134e0
