[INFO] cloning repository https://github.com/schani/git-lineage
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/schani/git-lineage" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fschani%2Fgit-lineage", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fschani%2Fgit-lineage'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 819c41ec0211d2504c500b9de03187bf5fbee003
[INFO] checking schani/git-lineage against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-150727
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fschani%2Fgit-lineage" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/schani/git-lineage
[INFO] finished tweaking git repo https://github.com/schani/git-lineage
[INFO] tweaked toml for git repo https://github.com/schani/git-lineage written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/schani/git-lineage on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/schani/git-lineage 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded human_format v1.1.0
[INFO] [stderr]   Downloaded bytesize v2.0.1
[INFO] [stderr]   Downloaded gix-revwalk v0.20.1
[INFO] [stderr]   Downloaded gix-chunk v0.4.11
[INFO] [stderr]   Downloaded gix-commitgraph v0.28.0
[INFO] [stderr]   Downloaded plist v1.7.2
[INFO] [stderr]   Downloaded gix-mailmap v0.27.1
[INFO] [stderr]   Downloaded clru v0.6.2
[INFO] [stderr]   Downloaded gix-negotiate v0.20.1
[INFO] [stderr]   Downloaded gix-revision v0.34.1
[INFO] [stderr]   Downloaded gix-credentials v0.29.0
[INFO] [stderr]   Downloaded gix-archive v0.21.2
[INFO] [stderr]   Downloaded gix-diff v0.52.1
[INFO] [stderr]   Downloaded gix-protocol v0.50.1
[INFO] [stderr]   Downloaded fake v2.10.0
[INFO] [stderr]   Downloaded proptest v1.7.0
[INFO] [stderr]   Downloaded gix v0.72.1
[INFO] [stderr]   Downloaded gix-transport v0.47.0
[INFO] [stderr]   Downloaded gix-pack v0.59.1
[INFO] [stderr]   Downloaded gix-dir v0.14.1
[INFO] [stderr]   Downloaded imara-diff v0.1.8
[INFO] [stderr]   Downloaded gix-index v0.40.1
[INFO] [stderr]   Downloaded gix-filter v0.19.2
[INFO] [stderr]   Downloaded gix-status v0.19.1
[INFO] [stderr]   Downloaded gix-pathspec v0.11.0
[INFO] [stderr]   Downloaded gix-odb v0.69.1
[INFO] [stderr]   Downloaded gix-submodule v0.19.1
[INFO] [stderr]   Downloaded gix-attributes v0.26.1
[INFO] [stderr]   Downloaded gix-command v0.6.1
[INFO] [stderr]   Downloaded gix-packetline-blocking v0.19.0
[INFO] [stderr]   Downloaded gix-actor v0.35.1
[INFO] [stderr]   Downloaded gix-packetline v0.19.0
[INFO] [stderr]   Downloaded gix-discover v0.40.1
[INFO] [stderr]   Downloaded gix-url v0.31.0
[INFO] [stderr]   Downloaded gix-worktree v0.41.0
[INFO] [stderr]   Downloaded gix-worktree-state v0.19.0
[INFO] [stderr]   Downloaded gix-refspec v0.30.1
[INFO] [stderr]   Downloaded gix-ignore v0.15.0
[INFO] [stderr]   Downloaded gix-quote v0.6.0
[INFO] [stderr]   Downloaded gix-prompt v0.11.0
[INFO] [stderr]   Downloaded gix-shallow v0.4.0
[INFO] [stderr]   Downloaded gix-config-value v0.15.0
[INFO] [stderr]   Downloaded gix-bitmap v0.2.14
[INFO] [stderr]   Downloaded io-close v0.3.7
[INFO] [stderr]   Downloaded gix-date v0.10.2
[INFO] [stderr]   Downloaded gix-traverse v0.46.2
[INFO] [stderr]   Downloaded gix-worktree-stream v0.21.2
[INFO] [stderr]   Downloaded tui-tree-widget v0.22.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] af3dd73f0f9fbc6e09425e24402c018dc69fb36e1004f70201b78eeaff484312
[INFO] running `Command { std: "docker" "start" "-a" "af3dd73f0f9fbc6e09425e24402c018dc69fb36e1004f70201b78eeaff484312", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "af3dd73f0f9fbc6e09425e24402c018dc69fb36e1004f70201b78eeaff484312", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "af3dd73f0f9fbc6e09425e24402c018dc69fb36e1004f70201b78eeaff484312", kill_on_drop: false }`
[INFO] [stdout] af3dd73f0f9fbc6e09425e24402c018dc69fb36e1004f70201b78eeaff484312
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 57553ed809e1943dac15e540d47c5b2829c26367402d8dd162b7a5eb1f7bce9d
[INFO] running `Command { std: "docker" "start" "-a" "57553ed809e1943dac15e540d47c5b2829c26367402d8dd162b7a5eb1f7bce9d", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking gix-trace v0.1.12
[INFO] [stderr]     Checking unicode-normalization v0.1.24
[INFO] [stderr]     Checking zlib-rs v0.5.1
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]     Checking bytesize v2.0.1
[INFO] [stderr]     Checking human_format v1.1.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking winnow v0.7.11
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]     Checking unicode-bom v2.0.3
[INFO] [stderr]     Checking kstring v2.0.2
[INFO] [stderr]     Checking shell-words v1.1.0
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking sha1-checked v0.10.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking uluru v3.1.0
[INFO] [stderr]     Checking castaway v0.2.3
[INFO] [stderr]     Checking clru v0.6.2
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking quick-xml v0.37.5
[INFO] [stderr]     Checking slab v0.4.10
[INFO] [stderr]     Checking libz-rs-sys v0.5.1
[INFO] [stderr]     Checking arc-swap v1.7.1
[INFO] [stderr]     Checking predicates-core v1.0.9
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking imara-diff v0.1.8
[INFO] [stderr]     Checking indexmap v2.10.0
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking memmap2 v0.9.5
[INFO] [stderr]     Checking gix-sec v0.11.0
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking filetime v0.2.25
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking io-close v0.3.7
[INFO] [stderr]     Checking prodash v29.0.2
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking termtree v0.5.1
[INFO] [stderr]     Checking sdd v3.0.8
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]     Checking similar v2.7.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking predicates-tree v1.0.12
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking scc v2.3.4
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking rand_xorshift v0.4.0
[INFO] [stderr]     Checking predicates v3.1.3
[INFO] [stderr]     Checking downcast v0.11.0
[INFO] [stderr]     Checking deunicode v1.6.2
[INFO] [stderr]     Checking unarray v0.1.4
[INFO] [stderr]     Checking fragile v2.0.1
[INFO] [stderr]     Checking maplit v1.0.2
[INFO] [stderr]    Compiling onig_sys v69.9.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking fake v2.10.0
[INFO] [stderr]     Checking tempfile v3.20.0
[INFO] [stderr]     Checking rusty-fork v0.3.0
[INFO] [stderr]     Checking proptest v1.7.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking bstr v1.12.0
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking gix-utils v0.3.0
[INFO] [stderr]     Checking globset v0.4.16
[INFO] [stderr]     Checking ignore v0.4.23
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling maybe-async v0.2.10
[INFO] [stderr]    Compiling clap_derive v4.5.40
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]    Compiling serial_test_derive v3.2.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]     Checking serial_test v3.2.0
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]     Checking onig v6.5.1
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking gix-validate v0.10.0
[INFO] [stderr]     Checking gix-date v0.10.2
[INFO] [stderr]     Checking gix-chunk v0.4.11
[INFO] [stderr]     Checking gix-quote v0.6.0
[INFO] [stderr]     Checking gix-bitmap v0.2.14
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking gix-actor v0.35.1
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking gix-mailmap v0.27.1
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking gix-path v0.10.18
[INFO] [stderr]     Checking gix-features v0.42.1
[INFO] [stderr]     Checking gix-command v0.6.1
[INFO] [stderr]     Checking gix-config-value v0.15.0
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking gix-fs v0.15.0
[INFO] [stderr]     Checking gix-glob v0.20.1
[INFO] [stderr]     Checking clap v4.5.40
[INFO] [stderr]     Checking gix-tempfile v17.1.0
[INFO] [stderr]     Checking gix-prompt v0.11.0
[INFO] [stderr]     Checking gix-attributes v0.26.1
[INFO] [stderr]     Checking gix-ignore v0.15.0
[INFO] [stderr]     Checking gix-lock v17.1.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking gix-pathspec v0.11.0
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling instability v0.3.7
[INFO] [stderr]     Checking ratatui v0.28.1
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking mockall v0.12.1
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking tui-tree-widget v0.22.0
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking tokio-test v0.4.4
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking gix-url v0.31.0
[INFO] [stderr]     Checking gix-credentials v0.29.0
[INFO] [stderr]     Checking faster-hex v0.10.0
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking plist v1.7.2
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking gix-hash v0.18.0
[INFO] [stderr]     Checking gix-packetline-blocking v0.19.0
[INFO] [stderr]     Checking gix-packetline v0.19.0
[INFO] [stderr]     Checking gix-hashtable v0.8.1
[INFO] [stderr]     Checking gix-commitgraph v0.28.0
[INFO] [stderr]     Checking gix-shallow v0.4.0
[INFO] [stderr]     Checking gix-transport v0.47.0
[INFO] [stderr]     Checking gix-object v0.49.1
[INFO] [stderr]     Checking syntect v5.2.0
[INFO] [stderr]     Checking gix-revwalk v0.20.1
[INFO] [stderr]     Checking gix-ref v0.52.1
[INFO] [stderr]     Checking gix-filter v0.19.2
[INFO] [stderr]     Checking gix-pack v0.59.1
[INFO] [stderr]     Checking gix-traverse v0.46.2
[INFO] [stderr]     Checking gix-revision v0.34.1
[INFO] [stderr]     Checking gix-negotiate v0.20.1
[INFO] [stderr]     Checking gix-index v0.40.1
[INFO] [stderr]     Checking gix-worktree-stream v0.21.2
[INFO] [stderr]     Checking gix-odb v0.69.1
[INFO] [stderr]     Checking gix-archive v0.21.2
[INFO] [stderr]     Checking gix-refspec v0.30.1
[INFO] [stderr]     Checking gix-discover v0.40.1
[INFO] [stderr]     Checking gix-config v0.45.1
[INFO] [stderr]     Checking gix-protocol v0.50.1
[INFO] [stderr]     Checking gix-worktree v0.41.0
[INFO] [stderr]     Checking gix-dir v0.14.1
[INFO] [stderr]     Checking gix-diff v0.52.1
[INFO] [stderr]     Checking gix-worktree-state v0.19.0
[INFO] [stderr]     Checking gix-submodule v0.19.1
[INFO] [stderr]     Checking gix-status v0.19.1
[INFO] [stderr]     Checking gix v0.72.1
[INFO] [stderr]     Checking git-lineage v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]     --> src/app.rs:1011:13
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         use super::*;
[INFO] [stdout]      |             ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]    --> src/async_task.rs:520:9
[INFO] [stdout]     |
[INFO] [stdout] 520 |     use std::path::PathBuf;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancellation_token_for_callback`
[INFO] [stdout]    --> src/async_task.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let cancellation_token_for_callback = cancellation_token.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancellation_token_for_callback`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:227:38
[INFO] [stdout]     |
[INFO] [stdout] 227 |             f.render_widget(block, f.size());
[INFO] [stdout]     |                                      ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:247:42
[INFO] [stdout]     |
[INFO] [stdout] 247 |             f.render_widget(paragraph, f.size());
[INFO] [stdout]     |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:263:26
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 .split(f.size());
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:284:42
[INFO] [stdout]     |
[INFO] [stdout] 284 |             f.render_widget(paragraph, f.size());
[INFO] [stdout]     |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancellation_token_for_callback`
[INFO] [stdout]    --> src/async_task.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let cancellation_token_for_callback = cancellation_token.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancellation_token_for_callback`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temp_dir`
[INFO] [stdout]    --> tests/main_tests.rs:801:13
[INFO] [stdout]     |
[INFO] [stdout] 801 |         let temp_dir = TempDir::new().unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_dir`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/main_tests.rs:264:9
[INFO] [stdout]     |
[INFO] [stdout] 264 | /         app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout] 265 | |             std::path::PathBuf::from("test_file.rs")
[INFO] [stdout] 266 | |         ));
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let _ = app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:222:13
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let mut backend = HeadlessBackend::new(20, 5);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 242 |         let mut backend = HeadlessBackend::new(30, 10);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut backend = HeadlessBackend::new(60, 20);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:279:13
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let mut backend = HeadlessBackend::new(10, 3);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/main_tests.rs:308:9
[INFO] [stdout]     |
[INFO] [stdout] 308 | /         app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout] 309 | |             std::path::PathBuf::from("empty_file.rs")
[INFO] [stdout] 310 | |         ));
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 308 |         let _ = app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/main_tests.rs:361:9
[INFO] [stdout]     |
[INFO] [stdout] 361 | /         app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout] 362 | |             std::path::PathBuf::from("current_file.rs")
[INFO] [stdout] 363 | |         ));
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let _ = app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]     --> src/app.rs:1011:13
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         use super::*;
[INFO] [stdout]      |             ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]    --> src/async_task.rs:520:9
[INFO] [stdout]     |
[INFO] [stdout] 520 |     use std::path::PathBuf;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_commit_info` is never used
[INFO] [stdout]    --> src/async_task.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 526 |     fn create_test_commit_info(hash: &str, subject: &str) -> CommitInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:227:38
[INFO] [stdout]     |
[INFO] [stdout] 227 |             f.render_widget(block, f.size());
[INFO] [stdout]     |                                      ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:247:42
[INFO] [stdout]     |
[INFO] [stdout] 247 |             f.render_widget(paragraph, f.size());
[INFO] [stdout]     |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:263:26
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 .split(f.size());
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:284:42
[INFO] [stdout]     |
[INFO] [stdout] 284 |             f.render_widget(paragraph, f.size());
[INFO] [stdout]     |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancellation_token_for_callback`
[INFO] [stdout]    --> src/async_task.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let cancellation_token_for_callback = cancellation_token.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancellation_token_for_callback`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancellation_token_for_callback`
[INFO] [stdout]    --> src/async_task.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let cancellation_token_for_callback = cancellation_token.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancellation_token_for_callback`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:222:13
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let mut backend = HeadlessBackend::new(20, 5);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 242 |         let mut backend = HeadlessBackend::new(30, 10);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut backend = HeadlessBackend::new(60, 20);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:279:13
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let mut backend = HeadlessBackend::new(10, 3);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Modified` is never constructed
[INFO] [stdout]   --> src/app.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum DiffLineType {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Modified,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DiffLineType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_blame` is never read
[INFO] [stdout]   --> src/app.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct InspectorState {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 56 |     pub current_content: Vec<String>,
[INFO] [stdout] 57 |     pub current_blame: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InspectorState` 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 methods are never used
[INFO] [stdout]    --> src/app.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl App {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn navigate_tree_up(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn navigate_tree_down(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn expand_selected_node(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn collapse_selected_node(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn toggle_selected_node(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn get_selected_file_path(&self) -> Option<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn get_navigator_search_query(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn is_navigator_searching(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn load_inspector_content(&mut self) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn set_selected_commit(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn load_commit_history_for_selected_file(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LoadCommitHistory` is never constructed
[INFO] [stdout]  --> src/async_task.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Task {
[INFO] [stdout]   |          ---- variant in this enum
[INFO] [stdout] 7 |     LoadFileTree,
[INFO] [stdout] 8 |     LoadCommitHistory {
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Task` 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 `to_string` is never used
[INFO] [stdout]    --> src/command.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl Command {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_blame_at_commit` is never used
[INFO] [stdout]    --> src/git_utils.rs:423:8
[INFO] [stdout]     |
[INFO] [stdout] 423 | pub fn get_blame_at_commit(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_content_at_head` is never used
[INFO] [stdout]    --> src/git_utils.rs:467:8
[INFO] [stdout]     |
[INFO] [stdout] 467 | pub fn get_file_content_at_head(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_next_change_for_line` is never used
[INFO] [stdout]    --> src/git_utils.rs:530:8
[INFO] [stdout]     |
[INFO] [stdout] 530 | pub fn find_next_change_for_line(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_buffer`, `contains_text`, `get_cursor`, and `resize` are never used
[INFO] [stdout]   --> src/headless_backend.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl HeadlessBackend {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn get_buffer(&self) -> &Buffer {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn contains_text(&self, text: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn get_cursor(&self) -> (Option<(u16, u16)>, bool) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn resize(&mut self, width: u16, height: u16) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reverse_map_line`, `find_nearest_mapped_line`, and `find_nearest_mapped_line_with_content_fallback` are never used
[INFO] [stdout]    --> src/line_mapping.rs:54:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl LineMapping {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn reverse_map_line(&self, new_line: usize) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn find_nearest_mapped_line(&self, old_line: usize, search_radius: usize) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn find_nearest_mapped_line_with_content_fallback(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Git` is never constructed
[INFO] [stdout]    --> src/line_mapping.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub enum LineMappingError {
[INFO] [stdout]     |          ---------------- variant in this enum
[INFO] [stdout] 305 |     #[error("Git error: {0}")]
[INFO] [stdout] 306 |     Git(String),
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LineMappingError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SelectFile` is never constructed
[INFO] [stdout]   --> src/navigator.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum NavigatorEvent {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] 13 |     SelectFile(PathBuf),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NavigatorEvent` 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 `scroll_offset` is never read
[INFO] [stdout]   --> src/navigator.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct NavigatorViewModel {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 41 |     pub items: Vec<VisibleItem>,
[INFO] [stdout] 42 |     pub scroll_offset: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NavigatorViewModel` 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 `is_view_model_dirty` is never used
[INFO] [stdout]    --> src/navigator.rs:354:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl NavigatorState {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn is_view_model_dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save_to_file` is never used
[INFO] [stdout]    --> src/test_config.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl TestConfig {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn save_to_file(&self, path: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/test_runner.rs:607:12
[INFO] [stdout]     |
[INFO] [stdout] 606 | impl TestRunner {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 607 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `search_text` and `text_default` are never read
[INFO] [stdout]   --> src/theme.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Theme {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub search_text: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub text_default: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Theme` 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: multiple methods are never used
[INFO] [stdout]    --> src/tree.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl TreeNode {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn remove_child(&mut self, path: &Path) -> Option<TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn find_child(&self, path: &Path) -> Option<&TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn find_child_mut(&mut self, path: &Path) -> Option<&mut TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn collapse(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn toggle_expansion(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn has_children(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn depth(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tree.rs:333:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | impl FileTree {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn set_git_status(&mut self, status_map: HashMap<PathBuf, char>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     fn apply_git_status_to_tree(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     fn apply_git_status_to_node_static(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub fn find_node_mut(&mut self, path: &Path) -> Option<&mut TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     fn find_node_recursive_mut_static<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 414 |     pub fn expand_node(&mut self, path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     pub fn collapse_node(&mut self, path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 436 |     pub fn toggle_node(&mut self, path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     pub fn get_visible_nodes(&self) -> Vec<&TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 456 |     pub fn get_visible_nodes_with_depth(&self) -> Vec<(&TreeNode, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     fn collect_visible_nodes<'a>(&self, node: &'a TreeNode, visible: &mut Vec<&'a TreeNode>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn collect_visible_nodes_with_depth<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 |     pub fn get_stats(&self) -> TreeStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn collect_stats(&self, node: &TreeNode, stats: &mut TreeStats) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeStats` is never constructed
[INFO] [stdout]    --> src/tree.rs:526:12
[INFO] [stdout]     |
[INFO] [stdout] 526 | pub struct TreeStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Modified` is never constructed
[INFO] [stdout]   --> src/app.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum DiffLineType {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Modified,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DiffLineType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_navigator_search_query`, `is_navigator_searching`, `load_inspector_content`, `set_selected_commit`, and `load_commit_history_for_selected_file` are never used
[INFO] [stdout]    --> src/app.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl App {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn get_navigator_search_query(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn is_navigator_searching(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn load_inspector_content(&mut self) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn set_selected_commit(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn load_commit_history_for_selected_file(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_commit_info` is never used
[INFO] [stdout]    --> src/async_task.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 526 |     fn create_test_commit_info(hash: &str, subject: &str) -> CommitInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_blame_at_commit` is never used
[INFO] [stdout]    --> src/git_utils.rs:423:8
[INFO] [stdout]     |
[INFO] [stdout] 423 | pub fn get_blame_at_commit(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_content_at_head` is never used
[INFO] [stdout]    --> src/git_utils.rs:467:8
[INFO] [stdout]     |
[INFO] [stdout] 467 | pub fn get_file_content_at_head(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_next_change_for_line` is never used
[INFO] [stdout]    --> src/git_utils.rs:530:8
[INFO] [stdout]     |
[INFO] [stdout] 530 | pub fn find_next_change_for_line(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Git` is never constructed
[INFO] [stdout]    --> src/line_mapping.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub enum LineMappingError {
[INFO] [stdout]     |          ---------------- variant in this enum
[INFO] [stdout] 305 |     #[error("Git error: {0}")]
[INFO] [stdout] 306 |     Git(String),
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LineMappingError` 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 `scroll_offset` is never read
[INFO] [stdout]   --> src/navigator.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct NavigatorViewModel {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 41 |     pub items: Vec<VisibleItem>,
[INFO] [stdout] 42 |     pub scroll_offset: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NavigatorViewModel` 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 `is_view_model_dirty` is never used
[INFO] [stdout]    --> src/navigator.rs:354:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl NavigatorState {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn is_view_model_dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save_to_file` is never used
[INFO] [stdout]    --> src/test_config.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl TestConfig {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn save_to_file(&self, path: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `search_text` and `text_default` are never read
[INFO] [stdout]   --> src/theme.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Theme {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub search_text: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub text_default: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Theme` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_child_mut` and `has_children` are never used
[INFO] [stdout]    --> src/tree.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl TreeNode {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn find_child_mut(&mut self, path: &Path) -> Option<&mut TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn has_children(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `toggle_node`, `get_visible_nodes_with_depth`, and `collect_visible_nodes_with_depth` are never used
[INFO] [stdout]    --> src/tree.rs:436:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | impl FileTree {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 436 |     pub fn toggle_node(&mut self, path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 456 |     pub fn get_visible_nodes_with_depth(&self) -> Vec<(&TreeNode, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn collect_visible_nodes_with_depth<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] running `Command { std: "docker" "inspect" "57553ed809e1943dac15e540d47c5b2829c26367402d8dd162b7a5eb1f7bce9d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "57553ed809e1943dac15e540d47c5b2829c26367402d8dd162b7a5eb1f7bce9d", kill_on_drop: false }`
[INFO] [stdout] 57553ed809e1943dac15e540d47c5b2829c26367402d8dd162b7a5eb1f7bce9d
