[INFO] cloning repository https://github.com/acunniffe/git-ai
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/acunniffe/git-ai" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Facunniffe%2Fgit-ai", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Facunniffe%2Fgit-ai'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 115b82bd4e7624c1346ae43d1ee029782e8a3342
[INFO] checking acunniffe/git-ai against try#66388cc165a6c4ac98c074dc9f0281ff23528c55 for pr-150727
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Facunniffe%2Fgit-ai" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/acunniffe/git-ai
[INFO] finished tweaking git repo https://github.com/acunniffe/git-ai
[INFO] tweaked toml for git repo https://github.com/acunniffe/git-ai written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/acunniffe/git-ai on toolchain 66388cc165a6c4ac98c074dc9f0281ff23528c55
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/acunniffe/git-ai 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" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5f67811f7b249991c1b027bcd37ddf4fbf0b7e990e6e1398a8861c7b10205d8a
[INFO] running `Command { std: "docker" "start" "-a" "5f67811f7b249991c1b027bcd37ddf4fbf0b7e990e6e1398a8861c7b10205d8a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f67811f7b249991c1b027bcd37ddf4fbf0b7e990e6e1398a8861c7b10205d8a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f67811f7b249991c1b027bcd37ddf4fbf0b7e990e6e1398a8861c7b10205d8a", kill_on_drop: false }`
[INFO] [stdout] 5f67811f7b249991c1b027bcd37ddf4fbf0b7e990e6e1398a8861c7b10205d8a
[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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 09c1eafe49d335b9b60480c2b203c4317f81e5d04034e967e3338b502881a29f
[INFO] running `Command { std: "docker" "start" "-a" "09c1eafe49d335b9b60480c2b203c4317f81e5d04034e967e3338b502881a29f", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]    Compiling instability v0.3.10
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]     Checking unicode-width v0.2.2
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking event-listener v3.1.0
[INFO] [stderr]    Compiling toml_datetime v0.7.3
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking async-executor v1.13.3
[INFO] [stderr]    Compiling rstest_macros v0.23.0
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking ryu-js v1.0.2
[INFO] [stderr]     Checking predicates-core v1.0.9
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking signal-hook-registry v1.4.7
[INFO] [stderr]     Checking io-lifetimes v1.0.11
[INFO] [stderr]     Checking rustix v0.37.28
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling cc v1.2.48
[INFO] [stderr]     Checking polling v2.8.0
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking uuid v1.19.0
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking serde_json_canonicalizer v0.3.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking envy v0.4.2
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking imara-diff v0.2.0
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]    Compiling assert_cmd v2.1.1
[INFO] [stderr]     Checking jsonc-parser v0.27.1
[INFO] [stderr]     Checking humantime v2.3.0
[INFO] [stderr]     Checking sdd v3.0.10
[INFO] [stderr]     Checking termtree v0.5.1
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]     Checking glob v0.3.3
[INFO] [stderr]     Checking scc v2.4.0
[INFO] [stderr]     Checking predicates-tree v1.0.12
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling toml_parser v1.0.4
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]    Compiling serial_test_derive v3.2.0
[INFO] [stderr]     Checking similar v2.7.0
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking filetime v0.2.26
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking insta v1.44.3
[INFO] [stderr]    Compiling toml_edit v0.23.7
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling libz-sys v1.1.23
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling libgit2-sys v0.18.2+1.9.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking predicates v3.1.3
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking async-io v1.13.0
[INFO] [stderr]     Checking ratatui v0.28.1
[INFO] [stderr]     Checking async-net v1.8.0
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking tempfile v3.23.0
[INFO] [stderr]     Checking async-io v2.6.0
[INFO] [stderr]     Checking async-signal v0.2.13
[INFO] [stderr]     Checking async-process v1.8.1
[INFO] [stderr]     Checking smol v1.3.0
[INFO] [stderr]     Checking serial_test v3.2.0
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking rstest v0.23.0
[INFO] [stderr]     Checking minreq v2.14.1
[INFO] [stderr]     Checking git2 v0.20.2
[INFO] [stderr]     Checking rusqlite v0.31.0
[INFO] [stderr]     Checking git-ai v1.0.32 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `dirs`
[INFO] [stdout]   --> src/commands/checkpoint_agent/agent_presets.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use dirs;
[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: `serde_json::json`
[INFO] [stdout]  --> src/commands/git_ai_handlers.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json::json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `old_idx` is never read
[INFO] [stdout]    --> src/authorship/imara_diff_utils.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |         old_idx += 1;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_idx` is never read
[INFO] [stdout]    --> src/authorship/imara_diff_utils.rs:288:13
[INFO] [stdout]     |
[INFO] [stdout] 288 |             new_idx += equal_len;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `read_start`
[INFO] [stdout]    --> src/commands/checkpoint.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |     let read_start = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attributions`
[INFO] [stdout]    --> src/commands/diff.rs:471:5
[INFO] [stdout]     |
[INFO] [stdout] 471 |     attributions: &HashMap<DiffLineKey, Attribution>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attributions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DeserializableFeatureFlags` is more private than the item `FeatureFlags::from_env_and_file`
[INFO] [stdout]   --> src/feature_flags.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub fn from_env_and_file(file_flags: Option<DeserializableFeatureFlags>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `FeatureFlags::from_env_and_file` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DeserializableFeatureFlags` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/feature_flags.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |           pub(crate) struct DeserializableFeatureFlags {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 | / define_feature_flags!(
[INFO] [stdout] 55 | |     rewrite_stash: rewrite_stash, debug = true, release = false,
[INFO] [stdout] 56 | |     inter_commit_move: checkpoint_inter_commit_move, debug = false, release = false,
[INFO] [stdout] 57 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `define_feature_flags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `line` is never read
[INFO] [stdout]    --> src/authorship/attribution_tracker.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 224 | struct Token {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     line: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Token` has derived impls for the traits `Debug` and `Clone`, 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: associated function `from_file_config` is never used
[INFO] [stdout]   --> src/feature_flags.rs:67:19
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl FeatureFlags {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub(crate) fn from_file_config(file_flags: Option<DeserializableFeatureFlags>) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `has_agent` and `agent_tool` are never read
[INFO] [stdout]     --> src/git/test_utils/mod.rs:1286:5
[INFO] [stdout]      |
[INFO] [stdout] 1284 | pub struct SnapshotCheckpoint {
[INFO] [stdout]      |            ------------------ fields in this struct
[INFO] [stdout] 1285 |     author: String,
[INFO] [stdout] 1286 |     has_agent: bool,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1287 |     agent_tool: Option<String>,
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `SnapshotCheckpoint` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/commands/git_handlers.rs:57:46
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let handler = forward_signal_handler as usize;
[INFO] [stdout]    |                                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let handler = forward_signal_handler as *const () as usize;
[INFO] [stdout]    |                                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/commands/prompt_picker.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 |     transcript: &crate::authorship::transcript::AiTranscript,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 478 | ) -> Vec<Line> {
[INFO] [stdout]     |          ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 478 | ) -> Vec<Line<'_>> {
[INFO] [stdout]     |              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/git/repository.rs:1168:9
[INFO] [stdout]      |
[INFO] [stdout] 1168 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1171 |     ) -> Result<CommitRange, GitAiError> {
[INFO] [stdout]      |                 ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1171 |     ) -> Result<CommitRange<'_>, GitAiError> {
[INFO] [stdout]      |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lines` is never read
[INFO] [stdout]   --> tests/repos/test_file.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct TestFile<'a> {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 95 |     pub lines: Vec<ExpectedLine>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestFile` 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: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |     pub fn set_contents<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 744 |     fn write_and_checkpoint_with_contents(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stdout` and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_fixture` is never used
[INFO] [stdout]   --> tests/test_utils.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn load_fixture(filename: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExpectedLineExt` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub trait ExpectedLineExt {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn assert_lines_and_blame<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn parse_blame_line(&self, line: &str) -> (String, String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     fn is_ai_author(&self, author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stdout` and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stdout` and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `assert_authorship_snapshot` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:218:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stdout` is never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AI_AUTHOR_NAMES` is never used
[INFO] [stdout]  --> tests/repos/test_file.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const AI_AUTHOR_NAMES: &[&str] = &[
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuthorType` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum AuthorType {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExpectedLine` is never constructed
[INFO] [stdout]   --> tests/repos/test_file.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ExpectedLine {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl ExpectedLine {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 29 |     fn new(contents: String, author_type: AuthorType) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExpectedLineExt` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub trait ExpectedLineExt {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestFile` is never constructed
[INFO] [stdout]   --> tests/repos/test_file.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct TestFile<'a> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 101 |     pub fn new_with_filename(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn from_existing_file(file_path: PathBuf, repo: &'a super::test_repo::TestRepo) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn is_ai_author_helper(author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn parse_blame_line_static(line: &str) -> (String, String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn is_ai_author_static(author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn assert_lines_and_blame<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn parse_blame_line(&self, line: &str) -> (String, String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     fn is_ai_author(&self, author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |     pub fn set_contents<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 744 |     fn write_and_checkpoint_with_contents(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stdout` and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_fixture` is never used
[INFO] [stdout]   --> tests/test_utils.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn load_fixture(filename: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `authorship_log` and `stdout` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stdout` is never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn assert_lines_and_blame<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn parse_blame_line(&self, line: &str) -> (String, String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     fn is_ai_author(&self, author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stdout` and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fixture_path` is never used
[INFO] [stdout]   --> tests/test_utils.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn fixture_path(filename: &str) -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_fixture` is never used
[INFO] [stdout]   --> tests/test_utils.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn load_fixture(filename: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `working_logs`
[INFO] [stdout]    --> tests/ai_tab.rs:310:9
[INFO] [stdout]     |
[INFO] [stdout] 310 |     let working_logs = repo.current_working_logs();
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_working_logs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `working_logs`
[INFO] [stdout]    --> tests/ai_tab.rs:334:9
[INFO] [stdout]     |
[INFO] [stdout] 334 |     let working_logs = repo.current_working_logs();
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_working_logs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `working_logs`
[INFO] [stdout]    --> tests/ai_tab.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 351 |     let working_logs = repo.current_working_logs();
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_working_logs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lines` is never read
[INFO] [stdout]   --> tests/repos/test_file.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct TestFile<'a> {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 95 |     pub lines: Vec<ExpectedLine>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestFile` 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: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |     pub fn set_contents<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 744 |     fn write_and_checkpoint_with_contents(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stdout` and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `assert_authorship_snapshot` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:28:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  28 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `authorship_log` and `stdout` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stdout` and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `authorship_log`, `stdout`, and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `authorship_log` and `stdout` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dirs`
[INFO] [stdout]   --> src/commands/checkpoint_agent/agent_presets.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use dirs;
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn assert_lines_and_blame<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn parse_blame_line(&self, line: &str) -> (String, String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     fn is_ai_author(&self, author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stdout` is never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]  --> src/commands/git_ai_handlers.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json::json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `git_ai::config::Config`
[INFO] [stdout]  --> tests/performance.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use git_ai::config::Config;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] 
[INFO] [stderr] thread 'rustc' (2442) panicked at /rustc-dev/66388cc165a6c4ac98c074dc9f0281ff23528c55/compiler/rustc_ast/src/attr/mod.rs:302:36:
[INFO] [stderr] attribute is missing tokens: Attribute { kind: Normal(NormalAttr { item: AttrItem { unsafety: Default, path: Path { span: tests/github_copilot.rs:238:1: 238:8 (#151), segments: [PathSegment { ident: <test_trace>#151, id: NodeId(4294967040), args: None }], tokens: None }, args: Unparsed(Empty), tokens: None }, tokens: None }), id: AttrId(76), style: Outer, span: tests/github_copilot.rs:238:1: 238:8 (#151) }
[INFO] [stderr] stack backtrace:
[INFO] [stderr]    0:     0x6ffc0be2bfa3 - <<std[7d609349af90bec6]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[75ca2badb63c4514]::fmt::Display>::fmt
[INFO] [stderr]    1:     0x6ffc0c40fb48 - core[75ca2badb63c4514]::fmt::write
[INFO] [stderr]    2:     0x6ffc0be42226 - <std[7d609349af90bec6]::sys::stdio::unix::Stderr as std[7d609349af90bec6]::io::Write>::write_fmt
[INFO] [stderr]    3:     0x6ffc0be01b98 - std[7d609349af90bec6]::panicking::default_hook::{closure#0}
[INFO] [stderr]    4:     0x6ffc0be1f833 - std[7d609349af90bec6]::panicking::default_hook
[INFO] [stderr]    5:     0x6ffc0ae0236a - std[7d609349af90bec6]::panicking::update_hook::<alloc[d7482eb0f1d19161]::boxed::Box<rustc_driver_impl[3f9d6dd912ac34bd]::install_ice_hook::{closure#1}>>::{closure#0}
[INFO] [stderr]    6:     0x6ffc0be1fb12 - std[7d609349af90bec6]::panicking::panic_with_hook
[INFO] [stderr]    7:     0x6ffc0be01c58 - std[7d609349af90bec6]::panicking::panic_handler::{closure#0}
[INFO] [stderr]    8:     0x6ffc0bdf89a9 - std[7d609349af90bec6]::sys::backtrace::__rust_end_short_backtrace::<std[7d609349af90bec6]::panicking::panic_handler::{closure#0}, !>
[INFO] [stderr]    9:     0x6ffc0be0372d - __rustc[69841a6cbc58d81d]::rust_begin_unwind
[INFO] [stderr]   10:     0x6ffc08a38f9c - core[75ca2badb63c4514]::panicking::panic_fmt
[INFO] [stderr]   11:     0x6ffc0d1e0110 - <rustc_ast[333fca09df5738a4]::ast::Attribute>::token_trees
[INFO] [stderr]   12:     0x6ffc0da1c314 - <rustc_expand[a01ffc1bf52c2613]::expand::MacroExpander>::fully_expand_fragment
[INFO] [stderr]   13:     0x6ffc0d9e65d2 - <rustc_expand[a01ffc1bf52c2613]::expand::MacroExpander>::expand_crate
[INFO] [stderr]   14:     0x6ffc0caf0af3 - rustc_interface[903e43df8d6bd657]::passes::configure_and_expand
[INFO] [stderr]   15:     0x6ffc0d607658 - rustc_interface[903e43df8d6bd657]::passes::resolver_for_lowering_raw
[INFO] [stderr]   16:     0x6ffc0d6073cd - rustc_query_impl[8c5349e00d64015e]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8c5349e00d64015e]::query_impl::resolver_for_lowering_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[2342951a64deba5]::query::erase::Erased<[u8; 16usize]>>
[INFO] [stderr]   17:     0x6ffc0d6073a7 - <rustc_query_impl[8c5349e00d64015e]::query_impl::resolver_for_lowering_raw::dynamic_query::{closure#2} as core[75ca2badb63c4514]::ops::function::FnOnce<(rustc_middle[2342951a64deba5]::ty::context::TyCtxt, ())>>::call_once
[INFO] [stderr]   18:     0x6ffc0d5ecb5f - rustc_query_system[d45be4fb383a0235]::query::plumbing::try_execute_query::<rustc_query_impl[8c5349e00d64015e]::DynamicConfig<rustc_query_system[d45be4fb383a0235]::query::caches::SingleCache<rustc_middle[2342951a64deba5]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[8c5349e00d64015e]::plumbing::QueryCtxt, false>
[INFO] [stderr]   19:     0x6ffc0d5ec6bc - rustc_query_impl[8c5349e00d64015e]::query_impl::resolver_for_lowering_raw::get_query_non_incr::__rust_end_short_backtrace
[INFO] [stderr]   20:     0x6ffc0d77127b - <rustc_interface[903e43df8d6bd657]::passes::create_and_enter_global_ctxt<core[75ca2badb63c4514]::option::Option<rustc_interface[903e43df8d6bd657]::queries::Linker>, rustc_driver_impl[3f9d6dd912ac34bd]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[75ca2badb63c4514]::ops::function::FnOnce<(&rustc_session[1e6875ba352dc1ba]::session::Session, rustc_middle[2342951a64deba5]::ty::context::CurrentGcx, alloc[d7482eb0f1d19161]::sync::Arc<rustc_data_structures[c82a87ce5cdbfc92]::jobserver::Proxy>, &std[7d609349af90bec6]::sync::once_lock::OnceLock<rustc_middle[2342951a64deba5]::ty::context::GlobalCtxt>, &rustc_data_structures[c82a87ce5cdbfc92]::sync::worker_local::WorkerLocal<rustc_middle[2342951a64deba5]::arena::Arena>, &rustc_data_structures[c82a87ce5cdbfc92]::sync::worker_local::WorkerLocal<rustc_hir[cc727ec2ba6ebdb5]::Arena>, rustc_driver_impl[3f9d6dd912ac34bd]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
[INFO] [stderr]   21:     0x6ffc0d65ac98 - rustc_interface[903e43df8d6bd657]::interface::run_compiler::<(), rustc_driver_impl[3f9d6dd912ac34bd]::run_compiler::{closure#0}>::{closure#1}
[INFO] [stderr]   22:     0x6ffc0d4eac4e - std[7d609349af90bec6]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[903e43df8d6bd657]::util::run_in_thread_with_globals<rustc_interface[903e43df8d6bd657]::util::run_in_thread_pool_with_globals<rustc_interface[903e43df8d6bd657]::interface::run_compiler<(), rustc_driver_impl[3f9d6dd912ac34bd]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
[INFO] [stderr]   23:     0x6ffc0d4eaa20 - <std[7d609349af90bec6]::thread::lifecycle::spawn_unchecked<rustc_interface[903e43df8d6bd657]::util::run_in_thread_with_globals<rustc_interface[903e43df8d6bd657]::util::run_in_thread_pool_with_globals<rustc_interface[903e43df8d6bd657]::interface::run_compiler<(), rustc_driver_impl[3f9d6dd912ac34bd]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[75ca2badb63c4514]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stderr]   24:     0x6ffc0d4ed138 - <std[7d609349af90bec6]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stderr]   25:     0x6ffc0708aaa4 - <unknown>
[INFO] [stderr]   26:     0x6ffc07117a64 - clone
[INFO] [stderr]   27:                0x0 - <unknown>
[INFO] [stderr] 
[INFO] [stderr] error: the compiler unexpectedly panicked. this is a bug.
[INFO] [stderr] 
[INFO] [stderr] note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
[INFO] [stderr] 
[INFO] [stderr] note: please make sure that you have updated to the latest nightly
[INFO] [stderr] 
[INFO] [stderr] warning: the ICE couldn't be written to `/opt/rustwide/workdir/rustc-ice-2026-01-09T08_42_04-2431.txt`: Read-only file system (os error 30)
[INFO] [stderr] 
[INFO] [stderr] note: rustc 1.94.0-nightly (66388cc16 2026-01-08) running on x86_64-unknown-linux-gnu
[INFO] [stderr] 
[INFO] [stderr] note: compiler flags: -C embed-bitcode=no -C debuginfo=2
[INFO] [stderr] 
[INFO] [stderr] note: some of the compiler flags provided by cargo are hidden
[INFO] [stderr] 
[INFO] [stderr] query stack during panic:
[INFO] [stderr] #0 [resolver_for_lowering_raw] getting the resolver for lowering
[INFO] [stderr] end of query stack
[INFO] [stderr] error: could not compile `git-ai` (test "github_copilot")
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/rustup-home/toolchains/66388cc165a6c4ac98c074dc9f0281ff23528c55/bin/rustc --crate-name github_copilot --edition=2024 tests/github_copilot.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --test --cfg 'feature="git2"' --cfg 'feature="test-support"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("git2", "test-support"))' -C metadata=4511ee1c30a54497 -C extra-filename=-b71f2a63d1423a7a --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern assert_cmd=/opt/rustwide/target/debug/deps/libassert_cmd-f4730bc31970efc4.rmeta --extern chrono=/opt/rustwide/target/debug/deps/libchrono-abfdf2367070fa2b.rmeta --extern clap=/opt/rustwide/target/debug/deps/libclap-e6f28b2d81a175d7.rmeta --extern crossterm=/opt/rustwide/target/debug/deps/libcrossterm-d23d0188e27e02fd.rmeta --extern dirs=/opt/rustwide/target/debug/deps/libdirs-f6d136cd386783e6.rmeta --extern envy=/opt/rustwide/target/debug/deps/libenvy-57c7e46cf600fe0d.rmeta --extern filetime=/opt/rustwide/target/debug/deps/libfiletime-a9a9881da914a7de.rmeta --extern futures=/opt/rustwide/target/debug/deps/libfutures-9d72cc8200d1e3fb.rmeta --extern git_ai=/opt/rustwide/target/debug/deps/libgit_ai-64b180d4a4913b63.rmeta --extern git_ai=/opt/rustwide/target/debug/deps/libgit_ai-64b180d4a4913b63.rmeta --extern git2=/opt/rustwide/target/debug/deps/libgit2-f5115f4df58a98ec.rmeta --extern glob=/opt/rustwide/target/debug/deps/libglob-270b5e5f7376a525.rmeta --extern humantime=/opt/rustwide/target/debug/deps/libhumantime-80f95db44a7489f2.rmeta --extern imara_diff=/opt/rustwide/target/debug/deps/libimara_diff-161dcf93ae24d1e3.rmeta --extern indicatif=/opt/rustwide/target/debug/deps/libindicatif-deddd06eb5dd26ee.rmeta --extern insta=/opt/rustwide/target/debug/deps/libinsta-f1011cf7f12ff4ac.rmeta --extern jsonc_parser=/opt/rustwide/target/debug/deps/libjsonc_parser-a81b847abe1abc6d.rmeta --extern libc=/opt/rustwide/target/debug/deps/liblibc-61c8ff19ef2481c9.rmeta --extern minreq=/opt/rustwide/target/debug/deps/libminreq-b163a49d7921d681.rmeta --extern paste=/opt/rustwide/target/debug/deps/libpaste-c5e5e8a2bd161c29.so --extern predicates=/opt/rustwide/target/debug/deps/libpredicates-866f52dfe49ab47f.rmeta --extern rand=/opt/rustwide/target/debug/deps/librand-30ede53a88b52ee6.rmeta --extern ratatui=/opt/rustwide/target/debug/deps/libratatui-6676f3cfbe22ae2c.rmeta --extern regex=/opt/rustwide/target/debug/deps/libregex-fb6516aef18bfc43.rmeta --extern rstest=/opt/rustwide/target/debug/deps/librstest-d2bfc51ed6be31e8.rmeta --extern rusqlite=/opt/rustwide/target/debug/deps/librusqlite-3c95af94b2d2652a.rmeta --extern serde=/opt/rustwide/target/debug/deps/libserde-f1c37de5629f9e5e.rmeta --extern serde_json=/opt/rustwide/target/debug/deps/libserde_json-f8b60c9cfb1ac96a.rmeta --extern serde_json_canonicalizer=/opt/rustwide/target/debug/deps/libserde_json_canonicalizer-b65c9f9498f1f0a6.rmeta --extern serial_test=/opt/rustwide/target/debug/deps/libserial_test-03cf51ea7ac15ebd.rmeta --extern sha2=/opt/rustwide/target/debug/deps/libsha2-a0dd860e64b3e974.rmeta --extern smol=/opt/rustwide/target/debug/deps/libsmol-baeb07fe80315eb4.rmeta --extern tempfile=/opt/rustwide/target/debug/deps/libtempfile-ac69616e2fcb19b0.rmeta --extern url=/opt/rustwide/target/debug/deps/liburl-9f9c8a65f3cf8f31.rmeta --extern uuid=/opt/rustwide/target/debug/deps/libuuid-e7671eda294baeef.rmeta --cap-lints=forbid -L native=/opt/rustwide/target/debug/build/libgit2-sys-5b21af7c04e55400/out/build -L native=/opt/rustwide/target/debug/build/libssh2-sys-ee5d4cd56425e52b/out/build -L native=/opt/rustwide/target/debug/build/ring-be9d199af9a86425/out -L native=/opt/rustwide/target/debug/build/libsqlite3-sys-ed1e8d7f058fb783/out` (exit status: 101)
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stdout` is never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AI_AUTHOR_NAMES` is never used
[INFO] [stdout]  --> tests/repos/test_file.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const AI_AUTHOR_NAMES: &[&str] = &[
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuthorType` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum AuthorType {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExpectedLine` is never constructed
[INFO] [stdout]   --> tests/repos/test_file.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ExpectedLine {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl ExpectedLine {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 29 |     fn new(contents: String, author_type: AuthorType) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExpectedLineExt` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub trait ExpectedLineExt {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestFile` is never constructed
[INFO] [stdout]   --> tests/repos/test_file.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct TestFile<'a> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 101 |     pub fn new_with_filename(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn from_existing_file(file_path: PathBuf, repo: &'a super::test_repo::TestRepo) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn is_ai_author_helper(author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn parse_blame_line_static(line: &str) -> (String, String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn is_ai_author_static(author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn assert_lines_and_blame<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn parse_blame_line(&self, line: &str) -> (String, String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     fn is_ai_author(&self, author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |     pub fn set_contents<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 744 |     fn write_and_checkpoint_with_contents(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 508 |     pub fn stage_all_and_commit(&self, message: &str) -> Result<NewCommit, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stdout` is never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lines` is never read
[INFO] [stdout]   --> tests/repos/test_file.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct TestFile<'a> {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 95 |     pub lines: Vec<ExpectedLine>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestFile` 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: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |     pub fn set_contents<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 744 |     fn write_and_checkpoint_with_contents(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `authorship_log`, `stdout`, and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `authorship_log`, `stdout`, and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:218:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stdout` and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `assert_authorship_snapshot` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn assert_lines_and_blame<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn parse_blame_line(&self, line: &str) -> (String, String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     fn is_ai_author(&self, author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `authorship_log` and `stdout` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lines` is never read
[INFO] [stdout]   --> tests/repos/test_file.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct TestFile<'a> {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 95 |     pub lines: Vec<ExpectedLine>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestFile` 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: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |     pub fn set_contents<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 744 |     fn write_and_checkpoint_with_contents(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stdout` and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_fixture` is never used
[INFO] [stdout]   --> tests/test_utils.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn load_fixture(filename: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExpectedLineExt` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub trait ExpectedLineExt {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AI_AUTHOR_NAMES` is never used
[INFO] [stdout]  --> tests/repos/test_file.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const AI_AUTHOR_NAMES: &[&str] = &[
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuthorType` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum AuthorType {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExpectedLine` is never constructed
[INFO] [stdout]   --> tests/repos/test_file.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ExpectedLine {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl ExpectedLine {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 29 |     fn new(contents: String, author_type: AuthorType) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExpectedLineExt` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub trait ExpectedLineExt {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestFile` is never constructed
[INFO] [stdout]   --> tests/repos/test_file.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct TestFile<'a> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 101 |     pub fn new_with_filename(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn from_existing_file(file_path: PathBuf, repo: &'a super::test_repo::TestRepo) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn is_ai_author_helper(author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn parse_blame_line_static(line: &str) -> (String, String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn is_ai_author_static(author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn assert_lines_and_blame<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn parse_blame_line(&self, line: &str) -> (String, String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     fn is_ai_author(&self, author: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn insert_at<T: Into<ExpectedLine>>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |     pub fn set_contents<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn set_contents_no_stage<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     pub fn contents(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn write_and_checkpoint(&self, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 744 |     fn write_and_checkpoint_with_contents(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 764 |     fn write_and_checkpoint_no_stage(&self, contents: &str, author_type: &AuthorType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `authorship_log`, `stdout`, and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_fixture` is never used
[INFO] [stdout]   --> tests/test_utils.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn load_fixture(filename: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     pub fn replace_at<T: Into<ExpectedLine>>(&mut self, index: usize, line: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `authorship_log`, `stdout`, and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 573 |     pub commit_sha: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dirs`
[INFO] [stdout]   --> src/commands/checkpoint_agent/agent_presets.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use dirs;
[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: `crate::git::find_repository_in_path`
[INFO] [stdout]    --> src/commands/diff.rs:951:9
[INFO] [stdout]     |
[INFO] [stdout] 951 |     use crate::git::find_repository_in_path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]  --> src/commands/git_ai_handlers.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json::json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dirs`
[INFO] [stdout]   --> src/commands/checkpoint_agent/agent_presets.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use dirs;
[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: `crate::git::find_repository_in_path`
[INFO] [stdout]    --> src/commands/diff.rs:951:9
[INFO] [stdout]     |
[INFO] [stdout] 951 |     use crate::git::find_repository_in_path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]  --> src/commands/git_ai_handlers.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json::json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]   --> tests/repos/mod.rs:71:24
[INFO] [stdout]    |
[INFO] [stdout] 22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]    |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |                       fn git_with_env(
[INFO] [stdout]    |                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: tests/subdirs.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / subdir_test_variants! {
[INFO] [stdout]  8 | |     fn commit() {
[INFO] [stdout]  9 | |         // Test that git commit works correctly when run from within a subdirectory
[INFO] [stdout] 10 | |         let repo = TestRepo::new();
[INFO] [stdout] ...  |
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]   --> tests/repos/mod.rs:71:24
[INFO] [stdout]    |
[INFO] [stdout] 22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]    |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |                       fn git_with_env(
[INFO] [stdout]    |                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: tests/subdirs.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / subdir_test_variants! {
[INFO] [stdout] 48 | |     fn commit_with_mixed_files() {
[INFO] [stdout] 49 | |         // Test committing files from both root and subdirectory
[INFO] [stdout] 50 | |     let repo = TestRepo::new();
[INFO] [stdout] ...  |
[INFO] [stdout] 97 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:99:1
[INFO] [stdout]     |
[INFO] [stdout]  99 | / subdir_test_variants! {
[INFO] [stdout] 100 | |     fn commit_nested() {
[INFO] [stdout] 101 | |         // Test committing from a deeply nested subdirectory
[INFO] [stdout] 102 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 136 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:138:1
[INFO] [stdout]     |
[INFO] [stdout] 138 | / subdir_test_variants! {
[INFO] [stdout] 139 | |     fn rebase_no_conflicts() {
[INFO] [stdout] 140 | |         // Test that rebase works correctly
[INFO] [stdout] 141 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 195 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:197:1
[INFO] [stdout]     |
[INFO] [stdout] 197 | / subdir_test_variants! {
[INFO] [stdout] 198 | |     fn rebase_multiple_commits() {
[INFO] [stdout] 199 | |         // Test rebase with multiple commits
[INFO] [stdout] 200 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 248 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:250:1
[INFO] [stdout]     |
[INFO] [stdout] 250 | / subdir_test_variants! {
[INFO] [stdout] 251 | |     fn rebase_mixed_authorship() {
[INFO] [stdout] 252 | |         // Test rebase where only some commits have authorship logs
[INFO] [stdout] 253 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:297:1
[INFO] [stdout]     |
[INFO] [stdout] 297 | / subdir_test_variants! {
[INFO] [stdout] 298 | |     fn rebase_with_different_trees() {
[INFO] [stdout] 299 | |         // Test rebase where trees differ (parent changes result in different tree IDs)
[INFO] [stdout] 300 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 342 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:344:1
[INFO] [stdout]     |
[INFO] [stdout] 344 | / subdir_test_variants! {
[INFO] [stdout] 345 | |     fn rebase_with_files_in_subdirs() {
[INFO] [stdout] 346 | |         // Test rebase where feature branch has files in subdirectories
[INFO] [stdout] 347 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 391 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:393:1
[INFO] [stdout]     |
[INFO] [stdout] 393 | / subdir_test_variants! {
[INFO] [stdout] 394 | |     fn rebase_nested() {
[INFO] [stdout] 395 | |         // Test rebase when run from a deeply nested subdirectory
[INFO] [stdout] 396 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 450 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:452:1
[INFO] [stdout]     |
[INFO] [stdout] 452 | / subdir_test_variants! {
[INFO] [stdout] 453 | |     fn rebase_fast_forward() {
[INFO] [stdout] 454 | |         // Test empty rebase (fast-forward)
[INFO] [stdout] 455 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 484 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:486:1
[INFO] [stdout]     |
[INFO] [stdout] 486 | / subdir_test_variants! {
[INFO] [stdout] 487 | |     fn rebase_with_conflicts() {
[INFO] [stdout] 488 | |         // Test rebase --onto from a subdirectory; ensure authorship preserved
[INFO] [stdout] 489 | |         let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 534 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:536:1
[INFO] [stdout]     |
[INFO] [stdout] 536 | / subdir_test_variants! {
[INFO] [stdout] 537 | |     fn rebase_abort() {
[INFO] [stdout] 538 | |         // Test rebase abort - ensures no authorship corruption
[INFO] [stdout] 539 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 584 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:586:1
[INFO] [stdout]     |
[INFO] [stdout] 586 | / subdir_test_variants! {
[INFO] [stdout] 587 | |     fn reset_hard() {
[INFO] [stdout] 588 | |         // Test git reset --hard: should discard all changes and reset to target commit
[INFO] [stdout] 589 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 622 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | / subdir_test_variants! {
[INFO] [stdout] 625 | |     fn reset_soft() {
[INFO] [stdout] 626 | |         // Test git reset --soft: should preserve AI authorship from unwound commits
[INFO] [stdout] 627 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 665 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:667:1
[INFO] [stdout]     |
[INFO] [stdout] 667 | / subdir_test_variants! {
[INFO] [stdout] 668 | |     fn reset_mixed() {
[INFO] [stdout] 669 | |         // Test git reset --mixed (default): working directory preserved
[INFO] [stdout] 670 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 710 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:712:1
[INFO] [stdout]     |
[INFO] [stdout] 712 | / subdir_test_variants! {
[INFO] [stdout] 713 | |     fn reset_multiple_commits() {
[INFO] [stdout] 714 | |         // Test git reset with multiple commits unwound: should preserve all AI authorship
[INFO] [stdout] 715 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 754 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:756:1
[INFO] [stdout]     |
[INFO] [stdout] 756 | / subdir_test_variants! {
[INFO] [stdout] 757 | |     fn reset_with_pathspec() {
[INFO] [stdout] 758 | |         // Test git reset with pathspecs: should preserve AI authorship for non-reset files
[INFO] [stdout] 759 | |     let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 802 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:804:1
[INFO] [stdout]     |
[INFO] [stdout] 804 | / subdir_test_variants! {
[INFO] [stdout] 805 | |     fn reset_mixed_ai_human_changes() {
[INFO] [stdout] 806 | |         // Test git reset with AI and human mixed changes: should preserve all authorship
[INFO] [stdout] 807 | |         let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 847 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:849:1
[INFO] [stdout]     |
[INFO] [stdout] 849 | / subdir_test_variants! {
[INFO] [stdout] 850 | |     fn reset_with_new_files() {
[INFO] [stdout] 851 | |         // Test git reset with new files added in unwound commit: should preserve AI authorship
[INFO] [stdout] 852 | |         let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 884 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:886:1
[INFO] [stdout]     |
[INFO] [stdout] 886 | / subdir_test_variants! {
[INFO] [stdout] 887 | |     fn reset_nested() {
[INFO] [stdout] 888 | |         // Test git reset when run from a deeply nested subdirectory
[INFO] [stdout] 889 | |         let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 923 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:925:1
[INFO] [stdout]     |
[INFO] [stdout] 925 | / subdir_test_variants! {
[INFO] [stdout] 926 | |     fn reset_to_same_commit() {
[INFO] [stdout] 927 | |         // Test git reset to same commit: should preserve uncommitted AI changes
[INFO] [stdout] 928 | |         let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 963 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]    --> tests/repos/mod.rs:71:24
[INFO] [stdout]     |
[INFO] [stdout]  22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]     |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |                       fn git_with_env(
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: tests/subdirs.rs:965:1
[INFO] [stdout]     |
[INFO] [stdout] 965 | / subdir_test_variants! {
[INFO] [stdout] 966 | |     fn reset_forward() {
[INFO] [stdout] 967 | |         // Test git reset forward (to descendant): should restore commit state
[INFO] [stdout] 968 | |         let repo = TestRepo::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 999 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1001:1
[INFO] [stdout]      |
[INFO] [stdout] 1001 | / subdir_test_variants! {
[INFO] [stdout] 1002 | |     fn reset_mixed_pathspec() {
[INFO] [stdout] 1003 | |         // Test git reset --mixed with pathspec: should preserve AI authorship for non-reset files
[INFO] [stdout] 1004 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1056 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1058:1
[INFO] [stdout]      |
[INFO] [stdout] 1058 | / subdir_test_variants! {
[INFO] [stdout] 1059 | |     fn cherry_pick_single_commit() {
[INFO] [stdout] 1060 | |         // Test cherry-picking a single AI-authored commit
[INFO] [stdout] 1061 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1089 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1091:1
[INFO] [stdout]      |
[INFO] [stdout] 1091 | / subdir_test_variants! {
[INFO] [stdout] 1092 | |     fn cherry_pick_multiple_commits() {
[INFO] [stdout] 1093 | |         // Test cherry-picking multiple commits in sequence
[INFO] [stdout] 1094 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1138 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1196:1
[INFO] [stdout]      |
[INFO] [stdout] 1196 | / subdir_test_variants! {
[INFO] [stdout] 1197 | |     fn cherry_pick_abort() {
[INFO] [stdout] 1198 | |         // Test cherry-pick --abort
[INFO] [stdout] 1199 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1252 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1254:1
[INFO] [stdout]      |
[INFO] [stdout] 1254 | / subdir_test_variants! {
[INFO] [stdout] 1255 | |     fn cherry_pick_no_ai_authorship() {
[INFO] [stdout] 1256 | |         // Test cherry-picking from branch without AI authorship
[INFO] [stdout] 1257 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1283 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1285:1
[INFO] [stdout]      |
[INFO] [stdout] 1285 | / subdir_test_variants! {
[INFO] [stdout] 1286 | |     fn cherry_pick_multiple_ai_sessions() {
[INFO] [stdout] 1287 | |         // Test cherry-pick preserving multiple AI sessions from different commits
[INFO] [stdout] 1288 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1329 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1331:1
[INFO] [stdout]      |
[INFO] [stdout] 1331 | / subdir_test_variants! {
[INFO] [stdout] 1332 | |     fn amend_add_lines() {
[INFO] [stdout] 1333 | |         // Test amending a commit by adding AI-authored lines
[INFO] [stdout] 1334 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1373 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1375:1
[INFO] [stdout]      |
[INFO] [stdout] 1375 | / subdir_test_variants! {
[INFO] [stdout] 1376 | |     fn amend_add_lines_in_middle() {
[INFO] [stdout] 1377 | |         // Test amending a commit by adding AI-authored lines in the middle
[INFO] [stdout] 1378 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1412 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1414:1
[INFO] [stdout]      |
[INFO] [stdout] 1414 | / subdir_test_variants! {
[INFO] [stdout] 1415 | |     fn amend_multiple_changes() {
[INFO] [stdout] 1416 | |         // Test amending with multiple AI changes
[INFO] [stdout] 1417 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1459 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1461:1
[INFO] [stdout]      |
[INFO] [stdout] 1461 | / subdir_test_variants! {
[INFO] [stdout] 1462 | |     fn amend_with_unstaged_ai_code() {
[INFO] [stdout] 1463 | |         // Test amending with unstaged AI code in other file
[INFO] [stdout] 1464 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1501 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1503:1
[INFO] [stdout]      |
[INFO] [stdout] 1503 | / subdir_test_variants! {
[INFO] [stdout] 1504 | |     fn amend_nested() {
[INFO] [stdout] 1505 | |         // Test amending a commit when run from a deeply nested subdirectory
[INFO] [stdout] 1506 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1538 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1540:1
[INFO] [stdout]      |
[INFO] [stdout] 1540 | / subdir_test_variants! {
[INFO] [stdout] 1541 | |     fn amend_preserves_unstaged_ai_attribution() {
[INFO] [stdout] 1542 | |         // Test that unstaged AI code in the tree is attributed after amending HEAD
[INFO] [stdout] 1543 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1595 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1597:1
[INFO] [stdout]      |
[INFO] [stdout] 1597 | / subdir_test_variants! {
[INFO] [stdout] 1598 | |     fn merge_with_ai_contributions() {
[INFO] [stdout] 1599 | |         // Test merge with AI contributions
[INFO] [stdout] 1600 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1645 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1703:1
[INFO] [stdout]      |
[INFO] [stdout] 1703 | / subdir_test_variants! {
[INFO] [stdout] 1704 | |     fn squash_merge() {
[INFO] [stdout] 1705 | |         // Test merge --squash with AI contributions
[INFO] [stdout] 1706 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1747 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1749:1
[INFO] [stdout]      |
[INFO] [stdout] 1749 | / subdir_test_variants! {
[INFO] [stdout] 1750 | |     fn stash_pop_with_ai_attribution() {
[INFO] [stdout] 1751 | |         // Test stash pop with AI attribution
[INFO] [stdout] 1752 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1800 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1802:1
[INFO] [stdout]      |
[INFO] [stdout] 1802 | / subdir_test_variants! {
[INFO] [stdout] 1803 | |     fn stash_apply_with_ai_attribution() {
[INFO] [stdout] 1804 | |         // Test stash apply with AI attribution
[INFO] [stdout] 1805 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1847 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `git_with_env` is never used
[INFO] [stdout]     --> tests/repos/mod.rs:71:24
[INFO] [stdout]      |
[INFO] [stdout]   22 |                   impl TestRepoWithCFlag {
[INFO] [stdout]      |                   ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout]   71 |                       fn git_with_env(
[INFO] [stdout]      |                          ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: tests/subdirs.rs:1849:1
[INFO] [stdout]      |
[INFO] [stdout] 1849 | / subdir_test_variants! {
[INFO] [stdout] 1850 | |     fn stash_nested() {
[INFO] [stdout] 1851 | |         // Test stash operations when run from a deeply nested subdirectory
[INFO] [stdout] 1852 | |         let repo = TestRepo::new();
[INFO] [stdout] ...    |
[INFO] [stdout] 1900 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `subdir_test_variants` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/repos/test_file.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> TestFile<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn stage(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn assert_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn assert_blame_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn assert_committed_lines<T: Into<ExpectedLine>>(&mut self, lines: Vec<T>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn format_blame_for_snapshot(&self, blame_output: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn assert_blame_contents_expected(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn parse_blame_output(&self, blame_output: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn lines_by_author(&self, author_type: AuthorType) -> Vec<&ExpectedLine> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 621 |     pub fn delete_at(&mut self, index: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fn delete_range(&mut self, start: usize, end: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `feature_flags` is never read
[INFO] [stdout]   --> tests/repos/test_repo.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct TestRepo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 21 |     path: PathBuf,
[INFO] [stdout] 22 |     pub feature_flags: FeatureFlags,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TestRepo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stdout` is never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:572:9
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 571 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 572 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NewCommit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:577:12
[INFO] [stdout]     |
[INFO] [stdout] 576 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 577 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:466:21
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |                     ^^^^^                     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `old_idx` is never read
[INFO] [stdout]    --> src/authorship/imara_diff_utils.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |         old_idx += 1;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_idx` is never read
[INFO] [stdout]    --> src/authorship/imara_diff_utils.rs:288:13
[INFO] [stdout]     |
[INFO] [stdout] 288 |             new_idx += equal_len;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `read_start`
[INFO] [stdout]    --> src/commands/checkpoint.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |     let read_start = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attributions`
[INFO] [stdout]    --> src/commands/diff.rs:471:5
[INFO] [stdout]     |
[INFO] [stdout] 471 |     attributions: &HashMap<DiffLineKey, Attribution>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attributions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `old_idx` is never read
[INFO] [stdout]    --> src/authorship/imara_diff_utils.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |         old_idx += 1;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_idx` is never read
[INFO] [stdout]    --> src/authorship/imara_diff_utils.rs:288:13
[INFO] [stdout]     |
[INFO] [stdout] 288 |             new_idx += equal_len;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `old_idx` is never read
[INFO] [stdout]    --> src/authorship/imara_diff_utils.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |         old_idx += 1;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_idx` is never read
[INFO] [stdout]    --> src/authorship/imara_diff_utils.rs:288:13
[INFO] [stdout]     |
[INFO] [stdout] 288 |             new_idx += equal_len;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `read_start`
[INFO] [stdout]    --> src/commands/checkpoint.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |     let read_start = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `read_start`
[INFO] [stdout]    --> src/commands/checkpoint.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |     let read_start = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attributions`
[INFO] [stdout]    --> src/commands/diff.rs:471:5
[INFO] [stdout]     |
[INFO] [stdout] 471 |     attributions: &HashMap<DiffLineKey, Attribution>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attributions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_auth` is never used
[INFO] [stdout]   --> src/api/client.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ApiContext {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn with_auth(base_url: Option<String>, auth_token: String) -> Self {
[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 `context_mut` is never used
[INFO] [stdout]    --> src/api/client.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl ApiClient {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn context_mut(&mut self) -> &mut ApiContext {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `line` is never read
[INFO] [stdout]    --> src/authorship/attribution_tracker.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 224 | struct Token {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     line: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Token` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `old_start`, `old_count`, `new_start`, `new_count`, and `deleted_lines` are never read
[INFO] [stdout]   --> src/commands/diff.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct DiffHunk {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 26 |     pub file_path: String,
[INFO] [stdout] 27 |     pub old_start: u32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 28 |     pub old_count: u32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 29 |     pub new_start: u32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 30 |     pub new_count: u32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 31 |     pub deleted_lines: Vec<u32>, // Absolute line numbers in OLD file
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DiffHunk` 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 functions `set_test_feature_flags` and `clear_test_feature_flags` are never used
[INFO] [stdout]    --> src/config.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Config {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub fn set_test_feature_flags(flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn clear_test_feature_flags() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `config_file_path_public` is never used
[INFO] [stdout]    --> src/config.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 527 | pub fn config_file_path_public() -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_deserializable`, `from_file_config`, and `from_env` are never used
[INFO] [stdout]   --> src/feature_flags.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl FeatureFlags {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 60 |     /// Build FeatureFlags from deserializable config
[INFO] [stdout] 61 |     fn from_deserializable(flags: DeserializableFeatureFlags) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub(crate) fn from_file_config(file_flags: Option<DeserializableFeatureFlags>) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn from_env() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]   --> src/git/repository.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<'a> CommitRange<'a> {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 49 |     /// Create an empty CommitRange with no commits in its iterator.
[INFO] [stdout] 50 |     pub fn empty(repo: &'a Repository) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `persist_file_version` is never used
[INFO] [stdout]    --> src/git/repo_storage.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl PersistedWorkingLog {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn persist_file_version(&self, content: &str) -> Result<String, GitAiError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SnapshotCheckpoint` is never constructed
[INFO] [stdout]     --> src/git/test_utils/mod.rs:1284:12
[INFO] [stdout]      |
[INFO] [stdout] 1284 | pub struct SnapshotCheckpoint {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SnapshotEntry` is never constructed
[INFO] [stdout]     --> src/git/test_utils/mod.rs:1292:12
[INFO] [stdout]      |
[INFO] [stdout] 1292 | pub struct SnapshotEntry {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snapshot_checkpoints` is never used
[INFO] [stdout]     --> src/git/test_utils/mod.rs:1297:8
[INFO] [stdout]      |
[INFO] [stdout] 1297 | pub fn snapshot_checkpoints(checkpoints: &[Checkpoint]) -> Vec<SnapshotCheckpoint> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attributions`
[INFO] [stdout]    --> src/commands/diff.rs:471:5
[INFO] [stdout]     |
[INFO] [stdout] 471 |     attributions: &HashMap<DiffLineKey, Attribution>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attributions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/commands/git_handlers.rs:57:46
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let handler = forward_signal_handler as usize;
[INFO] [stdout]    |                                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let handler = forward_signal_handler as *const () as usize;
[INFO] [stdout]    |                                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/commands/prompt_picker.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 |     transcript: &crate::authorship::transcript::AiTranscript,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 478 | ) -> Vec<Line> {
[INFO] [stdout]     |          ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 478 | ) -> Vec<Line<'_>> {
[INFO] [stdout]     |              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/git/repository.rs:1168:9
[INFO] [stdout]      |
[INFO] [stdout] 1168 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1171 |     ) -> Result<CommitRange, GitAiError> {
[INFO] [stdout]      |                 ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1171 |     ) -> Result<CommitRange<'_>, GitAiError> {
[INFO] [stdout]      |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_auth` is never used
[INFO] [stdout]   --> src/api/client.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ApiContext {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn with_auth(base_url: Option<String>, auth_token: String) -> Self {
[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 `context_mut` is never used
[INFO] [stdout]    --> src/api/client.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl ApiClient {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn context_mut(&mut self) -> &mut ApiContext {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `line` is never read
[INFO] [stdout]    --> src/authorship/attribution_tracker.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 224 | struct Token {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     line: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Token` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `set_test_feature_flags` and `clear_test_feature_flags` are never used
[INFO] [stdout]    --> src/config.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Config {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub fn set_test_feature_flags(flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn clear_test_feature_flags() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `config_file_path_public` is never used
[INFO] [stdout]    --> src/config.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 527 | pub fn config_file_path_public() -> Option<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_deserializable`, `from_file_config`, and `from_env` are never used
[INFO] [stdout]   --> src/feature_flags.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl FeatureFlags {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 60 |     /// Build FeatureFlags from deserializable config
[INFO] [stdout] 61 |     fn from_deserializable(flags: DeserializableFeatureFlags) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub(crate) fn from_file_config(file_flags: Option<DeserializableFeatureFlags>) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn from_env() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]   --> src/git/repository.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<'a> CommitRange<'a> {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 49 |     /// Create an empty CommitRange with no commits in its iterator.
[INFO] [stdout] 50 |     pub fn empty(repo: &'a Repository) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SnapshotCheckpoint` is never constructed
[INFO] [stdout]     --> src/git/test_utils/mod.rs:1284:12
[INFO] [stdout]      |
[INFO] [stdout] 1284 | pub struct SnapshotCheckpoint {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SnapshotEntry` is never constructed
[INFO] [stdout]     --> src/git/test_utils/mod.rs:1292:12
[INFO] [stdout]      |
[INFO] [stdout] 1292 | pub struct SnapshotEntry {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snapshot_checkpoints` is never used
[INFO] [stdout]     --> src/git/test_utils/mod.rs:1297:8
[INFO] [stdout]      |
[INFO] [stdout] 1297 | pub fn snapshot_checkpoints(checkpoints: &[Checkpoint]) -> Vec<SnapshotCheckpoint> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/commands/git_handlers.rs:57:46
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let handler = forward_signal_handler as usize;
[INFO] [stdout]    |                                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let handler = forward_signal_handler as *const () as usize;
[INFO] [stdout]    |                                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/commands/prompt_picker.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 |     transcript: &crate::authorship::transcript::AiTranscript,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 478 | ) -> Vec<Line> {
[INFO] [stdout]     |          ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 478 | ) -> Vec<Line<'_>> {
[INFO] [stdout]     |              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/git/repository.rs:1168:9
[INFO] [stdout]      |
[INFO] [stdout] 1168 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1171 |     ) -> Result<CommitRange, GitAiError> {
[INFO] [stdout]      |                 ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1171 |     ) -> Result<CommitRange<'_>, GitAiError> {
[INFO] [stdout]      |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DeserializableFeatureFlags` is more private than the item `feature_flags::FeatureFlags::from_env_and_file`
[INFO] [stdout]   --> src/feature_flags.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub fn from_env_and_file(file_flags: Option<DeserializableFeatureFlags>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `feature_flags::FeatureFlags::from_env_and_file` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DeserializableFeatureFlags` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/feature_flags.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |           pub(crate) struct DeserializableFeatureFlags {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 | / define_feature_flags!(
[INFO] [stdout] 55 | |     rewrite_stash: rewrite_stash, debug = true, release = false,
[INFO] [stdout] 56 | |     inter_commit_move: checkpoint_inter_commit_move, debug = false, release = false,
[INFO] [stdout] 57 | | );
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `define_feature_flags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `line` is never read
[INFO] [stdout]    --> src/authorship/attribution_tracker.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 224 | struct Token {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     line: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Token` has derived impls for the traits `Debug` and `Clone`, 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: associated function `from_file_config` is never used
[INFO] [stdout]   --> src/feature_flags.rs:67:19
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl FeatureFlags {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub(crate) fn from_file_config(file_flags: Option<DeserializableFeatureFlags>) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `has_agent` and `agent_tool` are never read
[INFO] [stdout]     --> src/git/test_utils/mod.rs:1286:5
[INFO] [stdout]      |
[INFO] [stdout] 1284 | pub struct SnapshotCheckpoint {
[INFO] [stdout]      |            ------------------ fields in this struct
[INFO] [stdout] 1285 |     author: String,
[INFO] [stdout] 1286 |     has_agent: bool,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout] 1287 |     agent_tool: Option<String>,
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `SnapshotCheckpoint` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/commands/git_handlers.rs:57:46
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let handler = forward_signal_handler as usize;
[INFO] [stdout]    |                                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let handler = forward_signal_handler as *const () as usize;
[INFO] [stdout]    |                                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/commands/prompt_picker.rs:477:17
[INFO] [stdout]     |
[INFO] [stdout] 477 |     transcript: &crate::authorship::transcript::AiTranscript,
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] 478 | ) -> Vec<Line> {
[INFO] [stdout]     |          ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 478 | ) -> Vec<Line<'_>> {
[INFO] [stdout]     |              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/git/repository.rs:1168:9
[INFO] [stdout]      |
[INFO] [stdout] 1168 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1171 |     ) -> Result<CommitRange, GitAiError> {
[INFO] [stdout]      |                 ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]      |
[INFO] [stdout]      = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]      |
[INFO] [stdout] 1171 |     ) -> Result<CommitRange<'_>, GitAiError> {
[INFO] [stdout]      |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "09c1eafe49d335b9b60480c2b203c4317f81e5d04034e967e3338b502881a29f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "09c1eafe49d335b9b60480c2b203c4317f81e5d04034e967e3338b502881a29f", kill_on_drop: false }`
[INFO] [stdout] 09c1eafe49d335b9b60480c2b203c4317f81e5d04034e967e3338b502881a29f
