[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] 7d8daa4453899d185ada44af4bd9fce0a239b24d
[INFO] checking acunniffe/git-ai against master#021fc25b7a48f6051bee1e1f06c7a277e4de1cc9 for pr-151510
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Facunniffe%2Fgit-ai" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/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-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/acunniffe/git-ai on toolchain 021fc25b7a48f6051bee1e1f06c7a277e4de1cc9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+021fc25b7a48f6051bee1e1f06c7a277e4de1cc9" "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" "+021fc25b7a48f6051bee1e1f06c7a277e4de1cc9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rstest v0.23.0
[INFO] [stderr]   Downloaded event-listener v3.1.0
[INFO] [stderr]   Downloaded blocking v1.6.2
[INFO] [stderr]   Downloaded async-executor v1.13.3
[INFO] [stderr]   Downloaded gix-glob v0.24.0
[INFO] [stderr]   Downloaded event-listener v5.4.1
[INFO] [stderr]   Downloaded futures-lite v2.6.1
[INFO] [stderr]   Downloaded predicates-tree v1.0.12
[INFO] [stderr]   Downloaded similar v2.7.0
[INFO] [stderr]   Downloaded termtree v0.5.1
[INFO] [stderr]   Downloaded redox_users v0.4.6
[INFO] [stderr]   Downloaded gix-lock v21.0.0
[INFO] [stderr]   Downloaded envy v0.4.2
[INFO] [stderr]   Downloaded jiff-tzdb v0.1.5
[INFO] [stderr]   Downloaded jiff-static v0.2.18
[INFO] [stderr]   Downloaded gix-object v0.55.0
[INFO] [stderr]   Downloaded gix-hashtable v0.12.0
[INFO] [stderr]   Downloaded gix-fs v0.19.0
[INFO] [stderr]   Downloaded gix-path v0.11.0
[INFO] [stderr]   Downloaded signal-hook v0.3.18
[INFO] [stderr]   Downloaded toml_edit v0.23.7
[INFO] [stderr]   Downloaded security-framework v3.5.1
[INFO] [stderr]   Downloaded cc v1.2.48
[INFO] [stderr]   Downloaded crossterm v0.28.1
[INFO] [stderr]   Downloaded imara-diff v0.2.0
[INFO] [stderr]   Downloaded winnow v0.7.14
[INFO] [stderr]   Downloaded unicode-width v0.2.2
[INFO] [stderr]   Downloaded aho-corasick v1.1.4
[INFO] [stderr]   Downloaded rusqlite v0.31.0
[INFO] [stderr]   Downloaded hashbrown v0.15.5
[INFO] [stderr]   Downloaded webpki-roots v0.25.4
[INFO] [stderr]   Downloaded git2 v0.20.2
[INFO] [stderr]   Downloaded rustls v0.21.12
[INFO] [stderr]   Downloaded bstr v1.12.1
[INFO] [stderr]   Downloaded ryu-js v1.0.2
[INFO] [stderr]   Downloaded scc v2.4.0
[INFO] [stderr]   Downloaded libssh2-sys v0.3.1
[INFO] [stderr]   Downloaded regex-syntax v0.8.8
[INFO] [stderr]   Downloaded polling v3.11.0
[INFO] [stderr]   Downloaded gix-config v0.51.0
[INFO] [stderr]   Downloaded encode_unicode v1.0.0
[INFO] [stderr]   Downloaded toml_parser v1.0.4
[INFO] [stderr]   Downloaded semver v1.0.27
[INFO] [stderr]   Downloaded ratatui v0.28.1
[INFO] [stderr]   Downloaded jiff v0.2.18
[INFO] [stderr]   Downloaded sha1-checked v0.10.0
[INFO] [stderr]   Downloaded serde_json_canonicalizer v0.3.1
[INFO] [stderr]   Downloaded async-net v1.8.0
[INFO] [stderr]   Downloaded async-io v2.6.0
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.7
[INFO] [stderr]   Downloaded gix-tempfile v21.0.0
[INFO] [stderr]   Downloaded memmap2 v0.9.9
[INFO] [stderr]   Downloaded gix-ref v0.58.0
[INFO] [stderr]   Downloaded thiserror v2.0.18
[INFO] [stderr]   Downloaded insta v1.44.3
[INFO] [stderr]   Downloaded difflib v0.4.0
[INFO] [stderr]   Downloaded crossterm_winapi v0.9.1
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.5
[INFO] [stderr]   Downloaded futures-timer v3.0.3
[INFO] [stderr]   Downloaded glob v0.3.3
[INFO] [stderr]   Downloaded toml_datetime v0.7.3
[INFO] [stderr]   Downloaded libz-sys v1.1.23
[INFO] [stderr]   Downloaded proc-macro-crate v3.4.0
[INFO] [stderr]   Downloaded relative-path v1.9.3
[INFO] [stderr]   Downloaded itoa v1.0.17
[INFO] [stderr]   Downloaded sdd v3.0.10
[INFO] [stderr]   Downloaded async-fs v1.6.0
[INFO] [stderr]   Downloaded gix-trace v0.1.17
[INFO] [stderr]   Downloaded dbus-secret-service v4.1.0
[INFO] [stderr]   Downloaded zeroize_derive v1.4.3
[INFO] [stderr]   Downloaded keyring v3.6.3
[INFO] [stderr]   Downloaded libdbus-sys v0.2.7
[INFO] [stderr]   Downloaded float-cmp v0.10.0
[INFO] [stderr]   Downloaded castaway v0.2.4
[INFO] [stderr]   Downloaded mio v1.1.1
[INFO] [stderr]   Downloaded lru v0.12.5
[INFO] [stderr]   Downloaded unicode-truncate v1.1.0
[INFO] [stderr]   Downloaded async-signal v0.2.13
[INFO] [stderr]   Downloaded winapi-util v0.1.11
[INFO] [stderr]   Downloaded number_prefix v0.4.0
[INFO] [stderr]   Downloaded indicatif v0.17.11
[INFO] [stderr]   Downloaded jsonc-parser v0.27.1
[INFO] [stderr]   Downloaded dbus v0.9.10
[INFO] [stderr]   Downloaded serial_test_derive v3.2.0
[INFO] [stderr]   Downloaded rstest_macros v0.23.0
[INFO] [stderr]   Downloaded serial_test v3.2.0
[INFO] [stderr]   Downloaded prodash v31.0.0
[INFO] [stderr]   Downloaded gix-sec v0.13.0
[INFO] [stderr]   Downloaded unicode-bom v2.0.3
[INFO] [stderr]   Downloaded minreq v2.14.1
[INFO] [stderr]   Downloaded indoc v2.0.7
[INFO] [stderr]   Downloaded normalize-line-endings v0.3.0
[INFO] [stderr]   Downloaded predicates-core v1.0.9
[INFO] [stderr]   Downloaded cassowary v0.3.0
[INFO] [stderr]   Downloaded async-channel v1.9.0
[INFO] [stderr]   Downloaded async-lock v3.4.1
[INFO] [stderr]   Downloaded dirs v5.0.1
[INFO] [stderr]   Downloaded gix-config-value v0.17.0
[INFO] [stderr]   Downloaded gix-error v0.0.0
[INFO] [stderr]   Downloaded gix-date v0.13.0
[INFO] [stderr]   Downloaded gix-hash v0.22.0
[INFO] [stderr]   Downloaded instability v0.3.10
[INFO] [stderr]   Downloaded hashlink v0.9.1
[INFO] [stderr]   Downloaded wait-timeout v0.2.1
[INFO] [stderr]   Downloaded assert_cmd v2.1.1
[INFO] [stderr]   Downloaded dirs-sys v0.4.1
[INFO] [stderr]   Downloaded filetime v0.2.26
[INFO] [stderr]   Downloaded gix-actor v0.38.0
[INFO] [stderr]   Downloaded faster-hex v0.10.0
[INFO] [stderr]   Downloaded gix-features v0.46.0
[INFO] [stderr]   Downloaded gix-utils v0.3.1
[INFO] [stderr]   Downloaded gix-validate v0.11.0
[INFO] [stderr]   Downloaded thiserror-impl v2.0.18
[INFO] [stderr]   Downloaded humantime v2.3.0
[INFO] [stderr]   Downloaded console v0.15.11
[INFO] [stderr]   Downloaded rustls-webpki v0.101.7
[INFO] [stderr]   Downloaded predicates v3.1.3
[INFO] [stderr]   Downloaded compact_str v0.8.1
[INFO] [stderr]   Downloaded async-process v1.8.1
[INFO] [stderr]   Downloaded smol v1.3.0
[INFO] [stderr]   Downloaded libgit2-sys v0.18.2+1.9.1
[INFO] [stderr]   Downloaded js-sys v0.3.83
[INFO] [stderr]   Downloaded jiff-tzdb-platform v0.1.3
[INFO] [stderr]   Downloaded async-channel v2.5.0
[INFO] [stderr]   Downloaded uuid v1.19.0
[INFO] [stderr]   Downloaded libsqlite3-sys v0.28.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+021fc25b7a48f6051bee1e1f06c7a277e4de1cc9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 03ae7cfda3c7f1b52ca92526b7cb1e2b2e7e2b284fa852887e4c54b05d966270
[INFO] running `Command { std: "docker" "start" "-a" "03ae7cfda3c7f1b52ca92526b7cb1e2b2e7e2b284fa852887e4c54b05d966270", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "03ae7cfda3c7f1b52ca92526b7cb1e2b2e7e2b284fa852887e4c54b05d966270", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "03ae7cfda3c7f1b52ca92526b7cb1e2b2e7e2b284fa852887e4c54b05d966270", kill_on_drop: false }`
[INFO] [stdout] 03ae7cfda3c7f1b52ca92526b7cb1e2b2e7e2b284fa852887e4c54b05d966270
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+021fc25b7a48f6051bee1e1f06c7a277e4de1cc9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3c0ae2ef0e0b47904e6b339e7e0eb35f24661e83047448e2bf912655db79545e
[INFO] running `Command { std: "docker" "start" "-a" "3c0ae2ef0e0b47904e6b339e7e0eb35f24661e83047448e2bf912655db79545e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]     Checking tinyvec v1.10.0
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking parking v2.2.1
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking gix-trace v0.1.17
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]     Checking itoa v1.0.17
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking writeable v0.6.2
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]     Checking litemap v0.8.1
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking unicode-normalization v0.1.25
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking hash32 v0.3.1
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking signal-hook-registry v1.4.7
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking gix-utils v0.3.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking prodash v31.0.0
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling cc v1.2.48
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling rustix v0.37.28
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]     Checking anstyle v1.0.13
[INFO] [stderr]     Checking atomic-waker v1.1.2
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]     Checking jiff v0.2.18
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking async-task v4.7.1
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]     Checking faster-hex v0.10.0
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking piper v0.2.4
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking sha1-checked v0.10.0
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]    Compiling instability v0.3.10
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking unicode-width v0.2.2
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling libz-sys v1.1.23
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling libgit2-sys v0.18.2+1.9.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]     Checking event-listener v3.1.0
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking unicode-segmentation v1.12.0
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]    Compiling toml_datetime v0.7.3
[INFO] [stderr]    Compiling toml_parser v1.0.4
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking async-net v1.8.0
[INFO] [stderr]     Checking clap_builder v4.5.53
[INFO] [stderr]    Compiling rstest_macros v0.23.0
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]    Compiling toml_edit v0.23.7
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking async-executor v1.13.3
[INFO] [stderr]     Checking gix-sec v0.13.0
[INFO] [stderr]     Checking gix-validate v0.11.0
[INFO] [stderr]     Checking gix-error v0.0.0
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking ryu-js v1.0.2
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking unicode-bom v2.0.3
[INFO] [stderr]     Checking predicates-core v1.0.9
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking webpki-roots v0.25.4
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking imara-diff v0.2.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking gix-date v0.13.0
[INFO] [stderr]     Checking uuid v1.19.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]     Checking normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling assert_cmd v2.1.1
[INFO] [stderr]     Checking sdd v3.0.10
[INFO] [stderr]     Checking termtree v0.5.1
[INFO] [stderr]     Checking humantime v2.3.0
[INFO] [stderr]     Checking difflib v0.4.0
[INFO] [stderr]     Checking jsonc-parser v0.27.1
[INFO] [stderr]     Checking predicates-tree v1.0.12
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking async-signal v0.2.13
[INFO] [stderr]     Checking similar v2.7.0
[INFO] [stderr]     Checking futures-timer v3.0.3
[INFO] [stderr]     Checking scc v2.4.0
[INFO] [stderr]     Checking filetime v0.2.26
[INFO] [stderr]     Checking async-process v1.8.1
[INFO] [stderr]     Checking predicates v3.1.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking insta v1.44.3
[INFO] [stderr]     Checking smol v1.3.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling serial_test_derive v3.2.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking gix-path v0.11.0
[INFO] [stderr]     Checking gix-actor v0.38.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking gix-features v0.46.0
[INFO] [stderr]     Checking gix-config-value v0.17.0
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking gix-hash v0.22.0
[INFO] [stderr]     Checking gix-fs v0.19.0
[INFO] [stderr]     Checking gix-glob v0.24.0
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking gix-tempfile v21.0.0
[INFO] [stderr]     Checking gix-hashtable v0.12.0
[INFO] [stderr]     Checking gix-object v0.55.0
[INFO] [stderr]     Checking gix-lock v21.0.0
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking ratatui v0.28.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking clap v4.5.53
[INFO] [stderr]     Checking gix-ref v0.58.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking minreq v2.14.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking gix-config v0.51.0
[INFO] [stderr]     Checking serial_test v3.2.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking serde_json_canonicalizer v0.3.1
[INFO] [stderr]     Checking envy v0.4.2
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking rstest v0.23.0
[INFO] [stderr]     Checking git2 v0.20.2
[INFO] [stderr]     Checking rusqlite v0.31.0
[INFO] [stderr]     Checking git-ai v1.0.41 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `sparse_get_string` and `string_to_json`
[INFO] [stdout]  --> src/metrics/events.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     sparse_get_string, sparse_get_u32, sparse_get_vec_string, sparse_get_vec_u32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     sparse_get_vec_u64, sparse_set, string_to_json, u32_to_json, vec_string_to_json,
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[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: `authorship_log`
[INFO] [stdout]    --> src/authorship/post_commit.rs:410:5
[INFO] [stdout]     |
[INFO] [stdout] 410 |     authorship_log: &AuthorshipLog,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_authorship_log`
[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:639:9
[INFO] [stdout]     |
[INFO] [stdout] 639 |     let read_start = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_start`
[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:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     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 | |     auth_keyring: auth_keyring, debug = false, release = false,
[INFO] [stdout] 58 | | );
[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:68:19
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl FeatureFlags {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     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: constant `SYSTEM` is never used
[INFO] [stdout]   --> src/mdm/git_clients/fork_app.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const SYSTEM: i32 = 0;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM` is never used
[INFO] [stdout]   --> src/mdm/git_clients/fork_app.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub const CUSTOM: i32 = 2;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]   --> src/mdm/skills_installer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | struct EmbeddedCommand {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout]  9 |     name: &'static str,
[INFO] [stdout] 10 |     description: &'static str,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/commands/git_handlers.rs:59:46
[INFO] [stdout]    |
[INFO] [stdout] 59 |         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] 59 |         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:1198:9
[INFO] [stdout]      |
[INFO] [stdout] 1198 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1201 |     ) -> 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] 1201 |     ) -> Result<CommitRange<'_>, GitAiError> {
[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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[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]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `orphan_files`
[INFO] [stdout]    --> tests/multi_repo_workspace.rs:146:22
[INFO] [stdout]     |
[INFO] [stdout] 146 |     let (repo_files, orphan_files) = group_files_by_repository(
[INFO] [stdout]     |                      ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_orphan_files`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `command`
[INFO] [stdout]   --> tests/gix_config_tests.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     command: &str,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[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:96:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn git_ai(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub fn git_ai_with_env(&self, args: &[&str], envs: &[(&str, &str)]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn commit(&self, message: &str) -> Result<NewCommit, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 530 |     pub fn stage_all_and_commit(&self, message: &str) -> Result<NewCommit, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 535 |     pub fn commit_with_env(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NewCommit` is never constructed
[INFO] [stdout]    --> tests/repos/test_repo.rs:592:12
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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: 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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 530 |     pub fn stage_all_and_commit(&self, message: &str) -> Result<NewCommit, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `git2::Blame`
[INFO] [stdout]   --> tests/blame_flags.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use git2::Blame;
[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: `insta::assert_debug_snapshot`
[INFO] [stdout]   --> tests/blame_flags.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use insta::assert_debug_snapshot;
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Rebase` is never constructed
[INFO] [stdout]   --> tests/github/github_test_harness.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum MergeStrategy {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     Rebase,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MergeStrategy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn git(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn git_with_env(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn commit(&self, message: &str) -> Result<NewCommit, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 530 |     pub fn stage_all_and_commit(&self, message: &str) -> Result<NewCommit, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 535 |     pub fn commit_with_env(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NewCommit` is never constructed
[INFO] [stdout]    --> tests/repos/test_repo.rs:592:12
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `assert_authorship_snapshot` and `print_authorship` are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:35:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  35 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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] [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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_sha`
[INFO] [stdout]    --> tests/blame_flags.rs:917:9
[INFO] [stdout]     |
[INFO] [stdout] 917 |     let initial_sha = repo.git(&["rev-parse", "HEAD"]).unwrap().trim().to_string();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_sha`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `human` is never used
[INFO] [stdout]   --> tests/repos/test_file.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub trait ExpectedLineExt {
[INFO] [stdout]    |           --------------- method in this trait
[INFO] [stdout] 45 |     fn ai(self) -> ExpectedLine;
[INFO] [stdout] 46 |     fn human(self) -> ExpectedLine;
[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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> tests/repos/test_repo.rs:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn read_file(&self, filename: &str) -> Option<String> {
[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: fields `authorship_log`, `stdout`, and `commit_sha` are never read
[INFO] [stdout]    --> tests/repos/test_repo.rs:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn filename(&self, filename: &str) -> TestFile {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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] 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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     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] 621 |     pub fn delete_at(&mut self, index: 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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MetricsUploadError` and `MetricsUploadResponse`
[INFO] [stdout]  --> src/api/mod.rs:8:46
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use metrics::{upload_metrics_with_retry, MetricsUploadError, MetricsUploadResponse};
[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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CredentialBackend` and `FileBackend`
[INFO] [stdout]  --> src/auth/mod.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use credential_backend::{CredentialBackend, FileBackend};
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types::StoredCredentials`
[INFO] [stdout]   --> src/auth/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use types::StoredCredentials;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CiContext`, `CiEvent`, and `CiRunResult`
[INFO] [stdout]  --> src/ci/mod.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use ci_context::{CiContext, CiEvent, CiRunResult};
[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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `agents::get_all_installers`
[INFO] [stdout]   --> src/mdm/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use agents::get_all_installers;
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GitClientCheckResult`, `GitClientInstallerParams`, and `GitClientInstaller`
[INFO] [stdout]   --> src/mdm/mod.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use git_client_installer::{GitClientCheckResult, GitClientInstaller, GitClientInstallerParams};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `git_clients::get_all_git_client_installers`
[INFO] [stdout]   --> src/mdm/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use git_clients::get_all_git_client_installers;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HookCheckResult`, `HookInstallerParams`, `HookInstaller`, `InstallResult`, and `UninstallResult`
[INFO] [stdout]   --> src/mdm/mod.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use hook_installer::{HookCheckResult, HookInstaller, HookInstallerParams, InstallResult, UninstallResult};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `install_skills` and `uninstall_skills`
[INFO] [stdout]   --> src/mdm/mod.rs:15:28
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use skills_installer::{install_skills, uninstall_skills};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `sparse_get_string` and `string_to_json`
[INFO] [stdout]  --> src/metrics/events.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     sparse_get_string, sparse_get_u32, sparse_get_vec_string, sparse_get_vec_u32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     sparse_get_vec_u64, sparse_set, string_to_json, u32_to_json, vec_string_to_json,
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::from_sparse_typed`
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub use crate::from_sparse_typed;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::impl_builder`
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 366 | pub use crate::impl_builder;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pos_encoded`
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:367:9
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub use crate::pos_encoded;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pos_encoded_values`
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:368:9
[INFO] [stdout]     |
[INFO] [stdout] 368 | pub use crate::pos_encoded_values;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::to_json_typed`
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:369:9
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub use crate::to_json_typed;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PosField`
[INFO] [stdout]   --> src/metrics/mod.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use pos_encoded::{PosEncoded, PosField};
[INFO] [stdout]    |                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MetricEventId` and `SparseArray`
[INFO] [stdout]   --> src/metrics/mod.rs:19:31
[INFO] [stdout]    |
[INFO] [stdout] 19 |     EventValues, MetricEvent, MetricEventId, MetricsBatch, SparseArray, METRICS_API_VERSION,
[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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn test_db_path(&self) -> &PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn current_branch(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn git_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn current_working_logs(&self) -> PersistedWorkingLog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     pub fn commit_from_working_dir(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     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:593:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 594 |     pub stdout: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 595 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[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]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `sparse_get_string` and `string_to_json`
[INFO] [stdout]  --> src/metrics/events.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     sparse_get_string, sparse_get_u32, sparse_get_vec_string, sparse_get_vec_u32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     sparse_get_vec_u64, sparse_set, string_to_json, u32_to_json, vec_string_to_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:64:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TestRepo {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn new_bare() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn new_with_remote() -> (Self, Self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn new_at_path(path: &PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn set_feature_flags(&mut self, feature_flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn canonical_path(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn stats(&self) -> Result<CommitStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn git_og(&self, args: &[&str]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn benchmark_git(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn benchmark_git_ai(&self, args: &[&str]) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn parse_benchmark_result(output: &str) -> Result<BenchmarkResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn git_ai_with_stdin(&self, args: &[&str], stdin_data: &[u8]) -> Result<String, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 522 |     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:594:9
[INFO] [stdout]     |
[INFO] [stdout] 592 | pub struct NewCommit {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 593 |     pub authorship_log: AuthorshipLog,
[INFO] [stdout] 594 |     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:599:12
[INFO] [stdout]     |
[INFO] [stdout] 598 | impl NewCommit {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 599 |     pub fn assert_authorship_snapshot(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub fn print_authorship(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_BRANCH_NAME` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:609:8
[INFO] [stdout]     |
[INFO] [stdout] 609 | static DEFAULT_BRANCH_NAME: OnceLock<String> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_default_branch_name` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn get_default_branch_name() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_branchname` is never used
[INFO] [stdout]    --> tests/repos/test_repo.rs:625:8
[INFO] [stdout]     |
[INFO] [stdout] 625 | pub fn default_branchname() -> &'static str {
[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:488:21
[INFO] [stdout]     |
[INFO] [stdout] 488 |     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] 488 |     pub fn filename(&self, filename: &str) -> TestFile<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MetricsUploadError` and `MetricsUploadResponse`
[INFO] [stdout]  --> src/api/mod.rs:8:46
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use metrics::{upload_metrics_with_retry, MetricsUploadError, MetricsUploadResponse};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CredentialBackend` and `FileBackend`
[INFO] [stdout]  --> src/auth/mod.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use credential_backend::{CredentialBackend, FileBackend};
[INFO] [stdout]   |                              ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types::StoredCredentials`
[INFO] [stdout]   --> src/auth/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use types::StoredCredentials;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CiContext`, `CiEvent`, and `CiRunResult`
[INFO] [stdout]  --> src/ci/mod.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use ci_context::{CiContext, CiEvent, CiRunResult};
[INFO] [stdout]   |                      ^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^^
[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: `agents::get_all_installers`
[INFO] [stdout]   --> src/mdm/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use agents::get_all_installers;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GitClientCheckResult`, `GitClientInstallerParams`, and `GitClientInstaller`
[INFO] [stdout]   --> src/mdm/mod.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use git_client_installer::{GitClientCheckResult, GitClientInstaller, GitClientInstallerParams};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `git_clients::get_all_git_client_installers`
[INFO] [stdout]   --> src/mdm/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use git_clients::get_all_git_client_installers;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HookCheckResult`, `HookInstallerParams`, `HookInstaller`, `InstallResult`, and `UninstallResult`
[INFO] [stdout]   --> src/mdm/mod.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use hook_installer::{HookCheckResult, HookInstaller, HookInstallerParams, InstallResult, UninstallResult};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `install_skills` and `uninstall_skills`
[INFO] [stdout]   --> src/mdm/mod.rs:15:28
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use skills_installer::{install_skills, uninstall_skills};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `sparse_get_string` and `string_to_json`
[INFO] [stdout]  --> src/metrics/events.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     sparse_get_string, sparse_get_u32, sparse_get_vec_string, sparse_get_vec_u32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     sparse_get_vec_u64, sparse_set, string_to_json, u32_to_json, vec_string_to_json,
[INFO] [stdout]   |                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::from_sparse_typed`
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub use crate::from_sparse_typed;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::impl_builder`
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 366 | pub use crate::impl_builder;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pos_encoded`
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:367:9
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub use crate::pos_encoded;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pos_encoded_values`
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:368:9
[INFO] [stdout]     |
[INFO] [stdout] 368 | pub use crate::pos_encoded_values;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::to_json_typed`
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:369:9
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub use crate::to_json_typed;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PosField`
[INFO] [stdout]   --> src/metrics/mod.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use pos_encoded::{PosEncoded, PosField};
[INFO] [stdout]    |                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SparseArray`
[INFO] [stdout]   --> src/metrics/mod.rs:19:60
[INFO] [stdout]    |
[INFO] [stdout] 19 |     EventValues, MetricEvent, MetricEventId, MetricsBatch, SparseArray, METRICS_API_VERSION,
[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: `authorship_log`
[INFO] [stdout]    --> src/authorship/post_commit.rs:410:5
[INFO] [stdout]     |
[INFO] [stdout] 410 |     authorship_log: &AuthorshipLog,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_authorship_log`
[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:639:9
[INFO] [stdout]     |
[INFO] [stdout] 639 |     let read_start = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_start`
[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: `authorship_log`
[INFO] [stdout]    --> src/authorship/post_commit.rs:410:5
[INFO] [stdout]     |
[INFO] [stdout] 410 |     authorship_log: &AuthorshipLog,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_authorship_log`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `authorship_log`
[INFO] [stdout]    --> src/authorship/post_commit.rs:410:5
[INFO] [stdout]     |
[INFO] [stdout] 410 |     authorship_log: &AuthorshipLog,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_authorship_log`
[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:639:9
[INFO] [stdout]     |
[INFO] [stdout] 639 |     let read_start = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `read_start`
[INFO] [stdout]    --> src/commands/checkpoint.rs:639:9
[INFO] [stdout]     |
[INFO] [stdout] 639 |     let read_start = Instant::now();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_start`
[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 functions `without_auth` and `with_auth` are never used
[INFO] [stdout]    --> src/api/client.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl ApiContext {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn without_auth(base_url: Option<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     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:237:12
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl ApiClient {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn context_mut(&mut self) -> &mut ApiContext {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `successful_indices` is never used
[INFO] [stdout]   --> src/api/metrics.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl MetricsUploadResponse {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] 30 |     /// Get indices of successfully uploaded events
[INFO] [stdout] 31 |     pub fn successful_indices(&self, batch_size: usize) -> Vec<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_credentials` is never used
[INFO] [stdout]    --> src/auth/credentials.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl CredentialStore {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn has_credentials(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `token_type` is never read
[INFO] [stdout]   --> src/auth/types.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct TokenResponse {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 58 |     pub access_token: String,
[INFO] [stdout] 59 |     pub token_type: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `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 `thinking` and `plan` are never used
[INFO] [stdout]   --> src/authorship/transcript.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Message {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn thinking(text: String, timestamp: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn plan(text: String, timestamp: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `authorship_log` is never read
[INFO] [stdout]   --> src/ci/ci_context.rs:28:27
[INFO] [stdout]    |
[INFO] [stdout] 28 |     AuthorshipRewritten { authorship_log: AuthorshipLog },
[INFO] [stdout]    |     -------------------   ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CiRunResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `authorship_log` is never read
[INFO] [stdout]   --> src/ci/ci_context.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 |     AlreadyExists { authorship_log: AuthorshipLog },
[INFO] [stdout]    |     -------------   ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CiRunResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_repository` is never used
[INFO] [stdout]   --> src/ci/ci_context.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl CiContext {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 47 |     /// Create a CiContext with an existing repository (no automatic cleanup)
[INFO] [stdout] 48 |     pub fn with_repository(repo: Repository, event: CiEvent) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[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:270:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl Config {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub fn set_test_feature_flags(flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     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:534:8
[INFO] [stdout]     |
[INFO] [stdout] 534 | 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:62:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl FeatureFlags {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 61 |     /// Build FeatureFlags from deserializable config
[INFO] [stdout] 62 |     fn from_deserializable(flags: DeserializableFeatureFlags) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub(crate) fn from_file_config(file_flags: Option<DeserializableFeatureFlags>) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     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:52:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl<'a> CommitRange<'a> {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 51 |     /// Create an empty CommitRange with no commits in its iterator.
[INFO] [stdout] 52 |     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: constant `SYSTEM` is never used
[INFO] [stdout]   --> src/mdm/git_clients/fork_app.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const SYSTEM: i32 = 0;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM` is never used
[INFO] [stdout]   --> src/mdm/git_clients/fork_app.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub const CUSTOM: i32 = 2;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hooks_up_to_date` is never read
[INFO] [stdout]   --> src/mdm/hook_installer.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct HookCheckResult {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub hooks_up_to_date: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]   --> src/mdm/skills_installer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | struct EmbeddedCommand {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout]  9 |     name: &'static str,
[INFO] [stdout] 10 |     description: &'static str,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `installed_count` is never read
[INFO] [stdout]    --> src/mdm/skills_installer.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct SkillsInstallResult {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub installed_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_parent_dir` is never used
[INFO] [stdout]    --> src/mdm/utils.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn ensure_parent_dir(path: &Path) -> Result<(), GitAiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/metrics/attrs.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl EventAttributes {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  51 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn git_ai_version(mut self, value: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn git_ai_version_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn repo_url_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn author_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn commit_sha_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn base_commit_sha_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn branch_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn tool_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn model_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn prompt_id_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn external_prompt_id_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/metrics/events.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl CommittedValues {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn human_additions_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn git_diff_deleted_lines_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn git_diff_added_lines_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn tool_model_pairs_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn mixed_additions_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn ai_additions_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn ai_accepted_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn total_ai_additions_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn total_ai_deletions_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn time_waiting_for_ai_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_sparse` is never used
[INFO] [stdout]   --> src/metrics/pos_encoded.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait PosEncoded: Sized + Default {
[INFO] [stdout]    |           ---------- associated function in this trait
[INFO] [stdout] 20 |     fn to_sparse(&self) -> SparseArray;
[INFO] [stdout] 21 |     fn from_sparse(arr: &SparseArray) -> Self;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `u64_to_json` is never used
[INFO] [stdout]   --> src/metrics/pos_encoded.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn u64_to_json(field: &PosField<u64>) -> Option<Value> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sparse_get_string` is never used
[INFO] [stdout]   --> src/metrics/pos_encoded.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn sparse_get_string(arr: &SparseArray, pos: usize) -> PosField<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sparse_get_u32` is never used
[INFO] [stdout]   --> src/metrics/pos_encoded.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn sparse_get_u32(arr: &SparseArray, pos: usize) -> PosField<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sparse_get_u64` is never used
[INFO] [stdout]   --> src/metrics/pos_encoded.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn sparse_get_u64(arr: &SparseArray, pos: usize) -> PosField<u64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sparse_get_vec_string` is never used
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn sparse_get_vec_string(arr: &SparseArray, pos: usize) -> PosField<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sparse_get_vec_u32` is never used
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn sparse_get_vec_u32(arr: &SparseArray, pos: usize) -> PosField<Vec<u32>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sparse_get_vec_u64` is never used
[INFO] [stdout]    --> src/metrics/pos_encoded.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn sparse_get_vec_u64(arr: &SparseArray, pos: usize) -> PosField<Vec<u64>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_sparse` is never used
[INFO] [stdout]   --> src/metrics/types.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub trait EventValues: Sized {
[INFO] [stdout]    |           ----------- associated function in this trait
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn from_sparse(arr: &SparseArray) -> Self;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_timestamp` is never used
[INFO] [stdout]   --> src/metrics/types.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl MetricEvent {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn with_timestamp<V: EventValues>(timestamp: u32, values: &V, attrs: SparseArray) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/commands/git_handlers.rs:59:46
[INFO] [stdout]    |
[INFO] [stdout] 59 |         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] 59 |         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:1198:9
[INFO] [stdout]      |
[INFO] [stdout] 1198 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1201 |     ) -> 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] 1201 |     ) -> Result<CommitRange<'_>, GitAiError> {
[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: type `DeserializableFeatureFlags` is more private than the item `feature_flags::FeatureFlags::from_env_and_file`
[INFO] [stdout]   --> src/feature_flags.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     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 | |     auth_keyring: auth_keyring, debug = false, release = false,
[INFO] [stdout] 58 | | );
[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:68:19
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl FeatureFlags {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     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: constant `SYSTEM` is never used
[INFO] [stdout]   --> src/mdm/git_clients/fork_app.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const SYSTEM: i32 = 0;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM` is never used
[INFO] [stdout]   --> src/mdm/git_clients/fork_app.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub const CUSTOM: i32 = 2;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]   --> src/mdm/skills_installer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | struct EmbeddedCommand {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout]  9 |     name: &'static str,
[INFO] [stdout] 10 |     description: &'static str,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/commands/git_handlers.rs:59:46
[INFO] [stdout]    |
[INFO] [stdout] 59 |         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] 59 |         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:1198:9
[INFO] [stdout]      |
[INFO] [stdout] 1198 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1201 |     ) -> 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] 1201 |     ) -> Result<CommitRange<'_>, GitAiError> {
[INFO] [stdout]      |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `context_mut` is never used
[INFO] [stdout]    --> src/api/client.rs:237:12
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl ApiClient {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn context_mut(&mut self) -> &mut ApiContext {
[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 `token_type` is never read
[INFO] [stdout]   --> src/auth/types.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct TokenResponse {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 58 |     pub access_token: String,
[INFO] [stdout] 59 |     pub token_type: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `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 `thinking` and `plan` are never used
[INFO] [stdout]   --> src/authorship/transcript.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Message {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn thinking(text: String, timestamp: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn plan(text: String, timestamp: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `authorship_log` is never read
[INFO] [stdout]   --> src/ci/ci_context.rs:28:27
[INFO] [stdout]    |
[INFO] [stdout] 28 |     AuthorshipRewritten { authorship_log: AuthorshipLog },
[INFO] [stdout]    |     -------------------   ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CiRunResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `authorship_log` is never read
[INFO] [stdout]   --> src/ci/ci_context.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 |     AlreadyExists { authorship_log: AuthorshipLog },
[INFO] [stdout]    |     -------------   ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CiRunResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_repository` is never used
[INFO] [stdout]   --> src/ci/ci_context.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl CiContext {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 47 |     /// Create a CiContext with an existing repository (no automatic cleanup)
[INFO] [stdout] 48 |     pub fn with_repository(repo: Repository, event: CiEvent) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[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:270:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl Config {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub fn set_test_feature_flags(flags: FeatureFlags) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     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:534:8
[INFO] [stdout]     |
[INFO] [stdout] 534 | 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:62:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl FeatureFlags {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 61 |     /// Build FeatureFlags from deserializable config
[INFO] [stdout] 62 |     fn from_deserializable(flags: DeserializableFeatureFlags) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub(crate) fn from_file_config(file_flags: Option<DeserializableFeatureFlags>) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     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:52:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl<'a> CommitRange<'a> {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 51 |     /// Create an empty CommitRange with no commits in its iterator.
[INFO] [stdout] 52 |     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: constant `SYSTEM` is never used
[INFO] [stdout]   --> src/mdm/git_clients/fork_app.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const SYSTEM: i32 = 0;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CUSTOM` is never used
[INFO] [stdout]   --> src/mdm/git_clients/fork_app.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub const CUSTOM: i32 = 2;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hooks_up_to_date` is never read
[INFO] [stdout]   --> src/mdm/hook_installer.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct HookCheckResult {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub hooks_up_to_date: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `description` is never read
[INFO] [stdout]   --> src/mdm/skills_installer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | struct EmbeddedCommand {
[INFO] [stdout]    |        --------------- field in this struct
[INFO] [stdout]  9 |     name: &'static str,
[INFO] [stdout] 10 |     description: &'static str,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `installed_count` is never read
[INFO] [stdout]    --> src/mdm/skills_installer.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct SkillsInstallResult {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub installed_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_parent_dir` is never used
[INFO] [stdout]    --> src/mdm/utils.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn ensure_parent_dir(path: &Path) -> Result<(), GitAiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/metrics/attrs.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl EventAttributes {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  51 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn git_ai_version(mut self, value: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn git_ai_version_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn repo_url_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn author_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn commit_sha_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn base_commit_sha_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn branch_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn tool_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn prompt_id_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn external_prompt_id_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/metrics/events.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl CommittedValues {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn human_additions_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn git_diff_deleted_lines_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn git_diff_added_lines_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn tool_model_pairs_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn mixed_additions_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn ai_additions_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn ai_accepted_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn total_ai_additions_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn total_ai_deletions_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn time_waiting_for_ai_null(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `u64_to_json` is never used
[INFO] [stdout]   --> src/metrics/pos_encoded.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn u64_to_json(field: &PosField<u64>) -> Option<Value> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sparse_get_u64` is never used
[INFO] [stdout]   --> src/metrics/pos_encoded.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn sparse_get_u64(arr: &SparseArray, pos: usize) -> PosField<u64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_sparse` is never used
[INFO] [stdout]   --> src/metrics/types.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub trait EventValues: Sized {
[INFO] [stdout]    |           ----------- associated function in this trait
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn from_sparse(arr: &SparseArray) -> Self;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_timestamp` is never used
[INFO] [stdout]   --> src/metrics/types.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl MetricEvent {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn with_timestamp<V: EventValues>(timestamp: u32, values: &V, attrs: SparseArray) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]   --> src/commands/git_handlers.rs:59:46
[INFO] [stdout]    |
[INFO] [stdout] 59 |         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] 59 |         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:1198:9
[INFO] [stdout]      |
[INFO] [stdout] 1198 |         &self,
[INFO] [stdout]      |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 1201 |     ) -> 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] 1201 |     ) -> Result<CommitRange<'_>, GitAiError> {
[INFO] [stdout]      |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 01s
[INFO] running `Command { std: "docker" "inspect" "3c0ae2ef0e0b47904e6b339e7e0eb35f24661e83047448e2bf912655db79545e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3c0ae2ef0e0b47904e6b339e7e0eb35f24661e83047448e2bf912655db79545e", kill_on_drop: false }`
[INFO] [stdout] 3c0ae2ef0e0b47904e6b339e7e0eb35f24661e83047448e2bf912655db79545e
