[INFO] fetching crate quicommit 0.1.11... [INFO] testing quicommit-0.1.11 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate quicommit 0.1.11 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate quicommit 0.1.11 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate quicommit 0.1.11 [INFO] tweaked toml for crates.io crate quicommit 0.1.11 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate quicommit 0.1.11 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate quicommit 0.1.11 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d017ede89a381421f314089de18f948660c832d50f4189db6cff08d191e401e3 [INFO] running `Command { std: "docker" "start" "-a" "d017ede89a381421f314089de18f948660c832d50f4189db6cff08d191e401e3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d017ede89a381421f314089de18f948660c832d50f4189db6cff08d191e401e3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d017ede89a381421f314089de18f948660c832d50f4189db6cff08d191e401e3", kill_on_drop: false }` [INFO] [stdout] d017ede89a381421f314089de18f948660c832d50f4189db6cff08d191e401e3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8dace0246a6b7584daf2dfd570001c9e79108a4dc60effd7d5f674d6e37a46b5 [INFO] running `Command { std: "docker" "start" "-a" "8dace0246a6b7584daf2dfd570001c9e79108a4dc60effd7d5f674d6e37a46b5", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling zerocopy v0.8.37 [INFO] [stderr] Compiling bytes v1.11.0 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling pest v2.8.5 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling zmij v1.0.19 [INFO] [stderr] Compiling libdbus-sys v0.2.7 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling clap_lex v0.7.7 [INFO] [stderr] Compiling home v0.5.12 [INFO] [stderr] Compiling ipnet v2.11.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling arraydeque v0.5.1 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling convert_case v0.6.0 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling pathdiff v0.2.3 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling smawk v0.3.2 [INFO] [stderr] Compiling number_prefix v0.4.0 [INFO] [stderr] Compiling quicommit v0.1.11 (/opt/rustwide/workdir) [INFO] [stderr] Compiling shell-words v1.1.1 [INFO] [stderr] Compiling unicode-linebreak v0.1.5 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling textwrap v0.16.2 [INFO] [stderr] Compiling pest_meta v2.8.5 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling cc v1.2.55 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling const-random-macro v0.1.16 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling polyval v0.6.2 [INFO] [stderr] Compiling dbus v0.9.10 [INFO] [stderr] Compiling ctr v0.9.2 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling ghash v0.5.1 [INFO] [stderr] Compiling blake2 v0.10.6 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling const-random v0.1.18 [INFO] [stderr] Compiling password-hash v0.5.0 [INFO] [stderr] Compiling dlv-list v0.5.2 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling which v6.0.3 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling argon2 v0.5.3 [INFO] [stderr] Compiling indicatif v0.17.11 [INFO] [stderr] Compiling aes-gcm v0.10.3 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling libz-sys v1.1.23 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Compiling libgit2-sys v0.18.3+1.9.2 [INFO] [stderr] Compiling terminal_size v0.4.3 [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling clap_builder v4.5.56 [INFO] [stderr] Compiling edit v0.1.5 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling pest_generator v2.8.5 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling rand_chacha v0.3.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 zeroize_derive v1.4.3 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling ordered-multimap v0.7.3 [INFO] [stderr] Compiling pest_derive v2.8.5 [INFO] [stderr] Compiling hashlink v0.8.4 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling yaml-rust2 v0.8.1 [INFO] [stderr] Compiling dbus-secret-service v4.1.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling rust-ini v0.20.0 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling webpki-roots v1.0.5 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling dialoguer v0.11.0 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling keyring v3.6.3 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling clap v4.5.56 [INFO] [stderr] Compiling clap_complete v4.5.65 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling ron v0.8.1 [INFO] [stderr] Compiling json5 v0.4.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling handlebars v5.1.2 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.19 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling config v0.14.1 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling git2 v0.20.3 [INFO] [stdout] warning: unused variable: `grouped` [INFO] [stdout] --> src/git/changelog.rs:162:17 [INFO] [stdout] | [INFO] [stdout] 162 | let grouped = self.group_commits(commits); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grouped` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `version` [INFO] [stdout] --> src/git/changelog.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | version: &str, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/git/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut normalized = path.to_path_buf(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `code` [INFO] [stdout] --> src/utils/editor.rs:44:27 [INFO] [stdout] | [INFO] [stdout] 44 | if let Ok(code) = which::which("code") { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `notepad` [INFO] [stdout] --> src/utils/editor.rs:47:27 [INFO] [stdout] | [INFO] [stdout] 47 | if let Ok(notepad) = which::which("notepad") { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_notepad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `has_encrypted_pats` are never used [INFO] [stdout] --> src/config/mod.rs:555:12 [INFO] [stdout] | [INFO] [stdout] 554 | impl ExportData { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 555 | pub fn new(config: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 571 | pub fn has_encrypted_pats(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `builder`, `validate`, `get_token`, and `usage_stats` are never used [INFO] [stdout] --> src/config/profile.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl GitProfile { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn builder() -> GitProfileBuilder { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn validate(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn get_token(&self, service: &str) -> Option<&TokenConfig> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | pub fn usage_stats(&self) -> &UsageStats { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `validate` and `git_ssh_command` are never used [INFO] [stdout] --> src/config/profile.rs:351:12 [INFO] [stdout] | [INFO] [stdout] 349 | impl SshConfig { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 350 | /// Validate SSH configuration [INFO] [stdout] 351 | pub fn validate(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn git_ssh_command(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `validate` and `program` are never used [INFO] [stdout] --> src/config/profile.rs:412:12 [INFO] [stdout] | [INFO] [stdout] 410 | impl GpgConfig { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 411 | /// Validate GPG configuration [INFO] [stdout] 412 | pub fn validate(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 418 | pub fn program(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `without_token`, `validate`, `record_usage`, and `set_has_token` are never used [INFO] [stdout] --> src/config/profile.rs:465:12 [INFO] [stdout] | [INFO] [stdout] 451 | impl TokenConfig { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 465 | pub fn without_token(token_type: TokenType) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 477 | pub fn validate(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 485 | pub fn record_usage(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 490 | pub fn set_has_token(&mut self, has_token: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `profile_name` is never read [INFO] [stdout] --> src/config/profile.rs:543:9 [INFO] [stdout] | [INFO] [stdout] 542 | pub struct ProfileComparison { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 543 | pub profile_name: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProfileComparison` 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: struct `GitProfileBuilder` is never constructed [INFO] [stdout] --> src/config/profile.rs:570:12 [INFO] [stdout] | [INFO] [stdout] 570 | pub struct GitProfileBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/config/profile.rs:585:12 [INFO] [stdout] | [INFO] [stdout] 584 | impl GitProfileBuilder { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] 585 | pub fn name(mut self, name: impl Into) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 590 | pub fn user_name(mut self, user_name: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 595 | pub fn user_email(mut self, user_email: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 600 | pub fn settings(mut self, settings: ProfileSettings) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 605 | pub fn ssh(mut self, ssh: SshConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 610 | pub fn gpg(mut self, gpg: GpgConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 615 | pub fn signing_key(mut self, key: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 620 | pub fn description(mut self, desc: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 625 | pub fn work(mut self, is_work: bool) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 630 | pub fn organization(mut self, org: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 635 | pub fn token(mut self, service: impl Into, token: TokenConfig) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 640 | pub fn build(self) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `generate_changelog_from_repo` is never used [INFO] [stdout] --> src/generator/mod.rs:94:18 [INFO] [stdout] | [INFO] [stdout] 12 | impl ContentGenerator { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 94 | pub async fn generate_changelog_from_repo( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_simple_commit` is never used [INFO] [stdout] --> src/generator/mod.rs:191:12 [INFO] [stdout] | [INFO] [stdout] 191 | pub fn generate_simple_commit(files: &[String]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_date_commit` is never used [INFO] [stdout] --> src/generator/mod.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 202 | pub fn generate_date_commit() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_by_file_types` is never used [INFO] [stdout] --> src/generator/mod.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn generate_by_file_types(files: &[String]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/git/mod.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 177 | impl GitRepo { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn config(&self) -> Option<&Config> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub fn get_config_regex(&self, _pattern: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | pub fn get_signing_key(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn should_sign_commits(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn should_sign_tags(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 289 | pub fn get_gpg_program(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | pub fn is_valid(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | pub fn has_changes(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | pub fn get_unstaged_diff(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn get_full_diff(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn get_changed_files(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 412 | pub fn stage_files>(&self, paths: &[P]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 451 | pub fn unstage_files>(&self, paths: &[P]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 547 | pub fn current_branch(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 560 | pub fn current_commit_short(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 568 | pub fn current_commit(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 706 | fn create_gpg_signature_for_content(&self, _content: &str, _gpg_program: &str, _signing_key: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 711 | pub fn delete_tag(&self, name: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 732 | pub fn get_remote_url(&self, remote: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 740 | pub fn is_clean(&self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `email`, and `time` are never read [INFO] [stdout] --> src/git/mod.rs:806:9 [INFO] [stdout] | [INFO] [stdout] 805 | pub struct CommitInfo { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 806 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 810 | pub email: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 811 | pub time: i64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommitInfo` 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: fields `target` and `message` are never read [INFO] [stdout] --> src/git/mod.rs:837:9 [INFO] [stdout] | [INFO] [stdout] 835 | pub struct TagInfo { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 836 | pub name: String, [INFO] [stdout] 837 | pub target: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 838 | pub message: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TagInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `conflicted` is never read [INFO] [stdout] --> src/git/mod.rs:848:9 [INFO] [stdout] | [INFO] [stdout] 844 | pub struct StatusSummary { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 848 | pub conflicted: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StatusSummary` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `format` is never used [INFO] [stdout] --> src/git/mod.rs:854:12 [INFO] [stdout] | [INFO] [stdout] 852 | impl StatusSummary { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 853 | /// Format as human-readable string [INFO] [stdout] 854 | pub fn format(&self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_git_repo` is never used [INFO] [stdout] --> src/git/mod.rs:948:8 [INFO] [stdout] | [INFO] [stdout] 948 | pub fn is_git_repo>(path: P) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GitConfigHelper` is never constructed [INFO] [stdout] --> src/git/mod.rs:953:12 [INFO] [stdout] | [INFO] [stdout] 953 | pub struct GitConfigHelper<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/git/mod.rs:960:12 [INFO] [stdout] | [INFO] [stdout] 958 | impl<'a> GitConfigHelper<'a> { [INFO] [stdout] | ---------------------------- associated items in this implementation [INFO] [stdout] 959 | /// Create a helper for repository-level configuration [INFO] [stdout] 960 | pub fn for_repo(repo: &'a Repository) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 968 | pub fn for_global() -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 977 | pub fn get(&self, key: &str) -> Result> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 990 | pub fn set(&self, key: &str, value: &str) -> Result<()> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1004 | pub fn remove(&self, key: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1018 | pub fn get_user_config(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1028 | pub fn set_user_config(&self, config: &UserConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_local` and `is_global` are never used [INFO] [stdout] --> src/git/mod.rs:1091:12 [INFO] [stdout] | [INFO] [stdout] 1072 | impl ConfigEntry { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 1091 | pub fn is_local(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1095 | pub fn is_global(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_local_overrides` is never used [INFO] [stdout] --> src/git/mod.rs:1136:12 [INFO] [stdout] | [INFO] [stdout] 1111 | impl MergedUserConfig { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1136 | pub fn has_local_overrides(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserConfig` is never constructed [INFO] [stdout] --> src/git/mod.rs:1143:12 [INFO] [stdout] | [INFO] [stdout] 1143 | pub struct UserConfig { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_complete` and `compare` are never used [INFO] [stdout] --> src/git/mod.rs:1152:12 [INFO] [stdout] | [INFO] [stdout] 1150 | impl UserConfig { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 1151 | /// Check if configuration is complete [INFO] [stdout] 1152 | pub fn is_complete(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1157 | pub fn compare(&self, other: &UserConfig) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConfigDiff` is never constructed [INFO] [stdout] --> src/git/mod.rs:1190:12 [INFO] [stdout] | [INFO] [stdout] 1190 | pub struct ConfigDiff { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `group_by_type`, `add_category`, and `generate_and_prepend` are never used [INFO] [stdout] --> src/git/changelog.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl ChangelogGenerator { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn group_by_type(mut self, group: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn add_category(mut self, title: impl Into, types: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn generate_and_prepend( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_changelog` is never used [INFO] [stdout] --> src/git/changelog.rs:382:8 [INFO] [stdout] | [INFO] [stdout] 382 | pub fn read_changelog(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_version_links` is never used [INFO] [stdout] --> src/git/changelog.rs:416:8 [INFO] [stdout] | [INFO] [stdout] 416 | pub fn update_version_links( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_versions` is never used [INFO] [stdout] --> src/git/changelog.rs:426:8 [INFO] [stdout] | [INFO] [stdout] 426 | pub fn parse_versions(changelog: &str) -> Vec<(String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_unreleased_changes` is never used [INFO] [stdout] --> src/git/changelog.rs:449:8 [INFO] [stdout] | [INFO] [stdout] 449 | pub fn get_unreleased_changes(repo: &GitRepo) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChangelogEntry` is never constructed [INFO] [stdout] --> src/git/changelog.rs:460:12 [INFO] [stdout] | [INFO] [stdout] 460 | pub struct ChangelogEntry { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_date` are never used [INFO] [stdout] --> src/git/changelog.rs:468:12 [INFO] [stdout] | [INFO] [stdout] 466 | impl ChangelogEntry { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 467 | /// Create new entry [INFO] [stdout] 468 | pub fn new(version: impl Into, commits: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 477 | pub fn with_date(mut self, date: DateTime) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `scope`, `body`, `footer`, `amend`, and `no_verify` are never used [INFO] [stdout] --> src/git/commit.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl CommitBuilder { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn scope(mut self, scope: impl Into) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn body(mut self, body: impl Into) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn footer(mut self, footer: impl Into) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn amend(mut self, amend: bool) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn no_verify(mut self, no_verify: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `suggest_commit_type` is never used [INFO] [stdout] --> src/git/commit.rs:230:8 [INFO] [stdout] | [INFO] [stdout] 230 | pub fn suggest_commit_type(diff: &str) -> Vec<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_message` is never used [INFO] [stdout] --> src/git/commit.rs:351:12 [INFO] [stdout] | [INFO] [stdout] 349 | impl ParsedCommit { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 350 | /// Convert back to commit message [INFO] [stdout] 351 | pub fn to_message(&self, format: crate::config::CommitFormat) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `version_prefix` is never read [INFO] [stdout] --> src/git/tag.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct TagBuilder { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 12 | version_prefix: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `version_prefix`, `version`, and `execute_and_push` are never used [INFO] [stdout] --> src/git/tag.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl TagBuilder { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn version_prefix(mut self, prefix: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn version(mut self, version: &Version) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn execute_and_push(&self, repo: &GitRepo, remote: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `variants` is never used [INFO] [stdout] --> src/git/tag.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 131 | impl VersionBump { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn variants() -> &'static [&'static str] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_tag_message` is never used [INFO] [stdout] --> src/git/tag.rs:215:8 [INFO] [stdout] | [INFO] [stdout] 215 | pub fn generate_tag_message(version: &str, commits: &[super::CommitInfo]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_tag` is never used [INFO] [stdout] --> src/git/tag.rs:278:8 [INFO] [stdout] | [INFO] [stdout] 278 | pub fn delete_tag(repo: &GitRepo, name: &str, remote: Option<&str>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_tags` is never used [INFO] [stdout] --> src/git/tag.rs:300:8 [INFO] [stdout] | [INFO] [stdout] 300 | pub fn list_tags( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/i18n/messages.rs:660:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Messages { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 660 | pub fn staged_files(&self, count: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 672 | pub fn generating_commit_message(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 684 | pub fn generated_commit_message(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 696 | pub fn what_would_you_like_to_do(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 708 | pub fn accept_and_commit(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 720 | pub fn regenerate(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 732 | pub fn edit(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 744 | pub fn copy_to_clipboard(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 756 | pub fn cancel(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 768 | pub fn regenerating(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 780 | pub fn copied_to_clipboard(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 792 | pub fn cancelled_by_user(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1092 | pub fn model(&self) -> &str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1104 | pub fn base_url(&self) -> &str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1116 | pub fn configuration_updated(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1128 | pub fn set_value(&self, key: &str, value: &str) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `keep_types_english` is never read [INFO] [stdout] --> src/i18n/translator.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Translator { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 4 | language: Language, [INFO] [stdout] 5 | keep_types_english: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/i18n/translator.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Translator { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn translate_commit_type(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | fn translate_commit_type_zh(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | fn translate_commit_type_ja(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | fn translate_commit_type_ko(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | fn translate_commit_type_es(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | fn translate_commit_type_fr(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | fn translate_commit_type_de(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `translate_commit_type` is never used [INFO] [stdout] --> src/i18n/translator.rs:225:8 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn translate_commit_type(commit_type: &str, language: Language, keep_english: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `name` is never used [INFO] [stdout] --> src/llm/mod.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub trait LlmProvider: Send + Sync { [INFO] [stdout] | ----------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 33 | fn name(&self) -> &str; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/llm/mod.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct LlmClient { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 38 | provider: Box, [INFO] [stdout] 39 | config: LlmClientConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_tokens`, `temperature`, and `timeout` are never read [INFO] [stdout] --> src/llm/mod.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct LlmClientConfig { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 44 | pub max_tokens: u32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 45 | pub temperature: f32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 46 | pub timeout: Duration, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LlmClientConfig` 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: associated function `with_provider` is never used [INFO] [stdout] --> src/llm/mod.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl LlmClient { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn with_provider(provider: Box) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_commitlint` is never used [INFO] [stdout] --> src/llm/mod.rs:385:12 [INFO] [stdout] | [INFO] [stdout] 371 | impl GeneratedCommit { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 385 | pub fn to_commitlint(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `done` is never read [INFO] [stdout] --> src/llm/ollama.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 32 | struct GenerateResponse { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 33 | response: String, [INFO] [stdout] 34 | done: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GenerateResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ListModelsResponse` is never constructed [INFO] [stdout] --> src/llm/ollama.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | struct ListModelsResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ModelInfo` is never constructed [INFO] [stdout] --> src/llm/ollama.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | struct ModelInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `with_timeout`, `list_models`, `pull_model`, and `model_exists` are never used [INFO] [stdout] --> src/llm/ollama.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl OllamaClient { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn with_timeout(mut self, timeout: Duration) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub async fn list_models(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub async fn pull_model(&self, model: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub async fn model_exists(&self, model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `with_timeout` is never used [INFO] [stdout] --> src/llm/openai.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl OpenAiClient { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AzureOpenAiClient` is never constructed [INFO] [stdout] --> src/llm/openai.rs:212:12 [INFO] [stdout] | [INFO] [stdout] 212 | pub struct AzureOpenAiClient { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `chat_completion` are never used [INFO] [stdout] --> src/llm/openai.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 220 | impl AzureOpenAiClient { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 221 | /// Create new Azure OpenAI client [INFO] [stdout] 222 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 239 | async fn chat_completion(&self, messages: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `with_timeout` and `list_models` are never used [INFO] [stdout] --> src/llm/anthropic.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl AnthropicClient { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub async fn list_models(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ANTHROPIC_MODELS` is never used [INFO] [stdout] --> src/llm/anthropic.rs:210:11 [INFO] [stdout] | [INFO] [stdout] 210 | pub const ANTHROPIC_MODELS: &[&str] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_model` is never used [INFO] [stdout] --> src/llm/anthropic.rs:220:8 [INFO] [stdout] | [INFO] [stdout] 220 | pub fn is_valid_model(model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_timeout` are never used [INFO] [stdout] --> src/llm/kimi.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl KimiClient { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 55 | /// Create new Kimi client [INFO] [stdout] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KIMI_MODELS` is never used [INFO] [stdout] --> src/llm/kimi.rs:224:11 [INFO] [stdout] | [INFO] [stdout] 224 | pub const KIMI_MODELS: &[&str] = &[ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_model` is never used [INFO] [stdout] --> src/llm/kimi.rs:231:8 [INFO] [stdout] | [INFO] [stdout] 231 | pub fn is_valid_model(model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_timeout` are never used [INFO] [stdout] --> src/llm/deepseek.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl DeepSeekClient { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 55 | /// Create new DeepSeek client [INFO] [stdout] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEEPSEEK_MODELS` is never used [INFO] [stdout] --> src/llm/deepseek.rs:224:11 [INFO] [stdout] | [INFO] [stdout] 224 | pub const DEEPSEEK_MODELS: &[&str] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_model` is never used [INFO] [stdout] --> src/llm/deepseek.rs:230:8 [INFO] [stdout] | [INFO] [stdout] 230 | pub fn is_valid_model(model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_timeout` are never used [INFO] [stdout] --> src/llm/openrouter.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl OpenRouterClient { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 55 | /// Create new OpenRouter client [INFO] [stdout] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OPENROUTER_MODELS` is never used [INFO] [stdout] --> src/llm/openrouter.rs:228:11 [INFO] [stdout] | [INFO] [stdout] 228 | pub const OPENROUTER_MODELS: &[&str] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_model` is never used [INFO] [stdout] --> src/llm/openrouter.rs:242:8 [INFO] [stdout] | [INFO] [stdout] 242 | pub fn is_valid_model(_model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_success` is never used [INFO] [stdout] --> src/utils/mod.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn print_success(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_error` is never used [INFO] [stdout] --> src/utils/mod.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn print_error(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_warning` is never used [INFO] [stdout] --> src/utils/mod.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn print_warning(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_info` is never used [INFO] [stdout] --> src/utils/mod.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn print_info(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `confirm` is never used [INFO] [stdout] --> src/utils/mod.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn confirm(prompt: &str) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `input` is never used [INFO] [stdout] --> src/utils/mod.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn input(prompt: &str) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_terminal` is never used [INFO] [stdout] --> src/utils/mod.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn is_terminal() -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_duration` is never used [INFO] [stdout] --> src/utils/mod.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn format_duration(secs: u64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_to_file` is never used [INFO] [stdout] --> src/utils/crypto.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn encrypt_to_file(data: &[u8], password: &str, path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_from_file` is never used [INFO] [stdout] --> src/utils/crypto.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn decrypt_from_file(path: &Path, password: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_token` is never used [INFO] [stdout] --> src/utils/crypto.rs:97:8 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn generate_token(length: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sha256` is never used [INFO] [stdout] --> src/utils/crypto.rs:110:8 [INFO] [stdout] | [INFO] [stdout] 110 | pub fn sha256(data: &[u8]) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `edit_temp` is never used [INFO] [stdout] --> src/utils/editor.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn edit_temp(initial_content: &str, extension: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_editor` is never used [INFO] [stdout] --> src/utils/editor.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn get_editor() -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_editor` is never used [INFO] [stdout] --> src/utils/editor.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn check_editor() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wrap_text` is never used [INFO] [stdout] --> src/utils/formatter.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn wrap_text(text: &str, width: usize) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clean_message` is never used [INFO] [stdout] --> src/utils/formatter.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn clean_message(message: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `status` and `has_api_key` are never used [INFO] [stdout] --> src/utils/keyring.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl KeyringManager { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn status(&self) -> KeyringStatus { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn has_api_key(&self, provider: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_scope` is never used [INFO] [stdout] --> src/utils/validators.rs:136:8 [INFO] [stdout] | [INFO] [stdout] 136 | pub fn validate_scope(scope: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_gpg_key_id` is never used [INFO] [stdout] --> src/utils/validators.rs:172:8 [INFO] [stdout] | [INFO] [stdout] 172 | pub fn validate_gpg_key_id(key_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_commit_type` is never used [INFO] [stdout] --> src/utils/validators.rs:198:8 [INFO] [stdout] | [INFO] [stdout] 198 | pub fn is_valid_commit_type(commit_type: &str, use_commitlint: bool) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s [INFO] running `Command { std: "docker" "inspect" "8dace0246a6b7584daf2dfd570001c9e79108a4dc60effd7d5f674d6e37a46b5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8dace0246a6b7584daf2dfd570001c9e79108a4dc60effd7d5f674d6e37a46b5", kill_on_drop: false }` [INFO] [stdout] 8dace0246a6b7584daf2dfd570001c9e79108a4dc60effd7d5f674d6e37a46b5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 98d52a5b2a0c3bee020d5180e719f6e4cc99798fbe0ad6c062205b684856a579 [INFO] running `Command { std: "docker" "start" "-a" "98d52a5b2a0c3bee020d5180e719f6e4cc99798fbe0ad6c062205b684856a579", kill_on_drop: false }` [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling predicates-core v1.0.9 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling assert_cmd v2.1.2 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling mockall_derive v0.12.1 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling downcast v0.11.0 [INFO] [stderr] Compiling fragile v2.0.1 [INFO] [stderr] Compiling predicates-tree v1.0.12 [INFO] [stderr] Compiling predicates v3.1.3 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling mockall v0.12.1 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.19 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling quicommit v0.1.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:35:28 [INFO] [stdout] | [INFO] [stdout] 35 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:49:32 [INFO] [stdout] | [INFO] [stdout] 49 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:62:28 [INFO] [stdout] | [INFO] [stdout] 62 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:65:32 [INFO] [stdout] | [INFO] [stdout] 65 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:73:32 [INFO] [stdout] | [INFO] [stdout] 73 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:91:32 [INFO] [stdout] | [INFO] [stdout] 91 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:86:32 [INFO] [stdout] | [INFO] [stdout] 86 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:95:32 [INFO] [stdout] | [INFO] [stdout] 95 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:109:32 [INFO] [stdout] | [INFO] [stdout] 109 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:167:32 [INFO] [stdout] | [INFO] [stdout] 167 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:125:32 [INFO] [stdout] | [INFO] [stdout] 125 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:178:32 [INFO] [stdout] | [INFO] [stdout] 178 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:138:32 [INFO] [stdout] | [INFO] [stdout] 138 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:155:32 [INFO] [stdout] | [INFO] [stdout] 155 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:194:32 [INFO] [stdout] | [INFO] [stdout] 194 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:167:32 [INFO] [stdout] | [INFO] [stdout] 167 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:201:32 [INFO] [stdout] | [INFO] [stdout] 201 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:171:32 [INFO] [stdout] | [INFO] [stdout] 171 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:210:32 [INFO] [stdout] | [INFO] [stdout] 210 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:221:32 [INFO] [stdout] | [INFO] [stdout] 221 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:187:32 [INFO] [stdout] | [INFO] [stdout] 187 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:236:32 [INFO] [stdout] | [INFO] [stdout] 236 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:245:32 [INFO] [stdout] | [INFO] [stdout] 245 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:200:32 [INFO] [stdout] | [INFO] [stdout] 200 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:204:32 [INFO] [stdout] | [INFO] [stdout] 204 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:221:32 [INFO] [stdout] | [INFO] [stdout] 221 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:270:32 [INFO] [stdout] | [INFO] [stdout] 270 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:225:32 [INFO] [stdout] | [INFO] [stdout] 225 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:277:32 [INFO] [stdout] | [INFO] [stdout] 277 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:286:32 [INFO] [stdout] | [INFO] [stdout] 286 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:294:32 [INFO] [stdout] | [INFO] [stdout] 294 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:238:32 [INFO] [stdout] | [INFO] [stdout] 238 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:242:32 [INFO] [stdout] | [INFO] [stdout] 242 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:259:32 [INFO] [stdout] | [INFO] [stdout] 259 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:263:32 [INFO] [stdout] | [INFO] [stdout] 263 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:311:32 [INFO] [stdout] | [INFO] [stdout] 311 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:318:32 [INFO] [stdout] | [INFO] [stdout] 318 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:325:32 [INFO] [stdout] | [INFO] [stdout] 325 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:338:32 [INFO] [stdout] | [INFO] [stdout] 338 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:347:32 [INFO] [stdout] | [INFO] [stdout] 347 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/config_export_import_tests.rs:353:32 [INFO] [stdout] | [INFO] [stdout] 353 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:281:32 [INFO] [stdout] | [INFO] [stdout] 281 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:299:32 [INFO] [stdout] | [INFO] [stdout] 299 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:317:32 [INFO] [stdout] | [INFO] [stdout] 317 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:335:32 [INFO] [stdout] | [INFO] [stdout] 335 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:339:32 [INFO] [stdout] | [INFO] [stdout] 339 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:361:32 [INFO] [stdout] | [INFO] [stdout] 361 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:385:32 [INFO] [stdout] | [INFO] [stdout] 385 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:407:32 [INFO] [stdout] | [INFO] [stdout] 407 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:424:32 [INFO] [stdout] | [INFO] [stdout] 424 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:438:32 [INFO] [stdout] | [INFO] [stdout] 438 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:452:32 [INFO] [stdout] | [INFO] [stdout] 452 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:526:32 [INFO] [stdout] | [INFO] [stdout] 526 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:544:32 [INFO] [stdout] | [INFO] [stdout] 544 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:566:32 [INFO] [stdout] | [INFO] [stdout] 566 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_git_repo` is never used [INFO] [stdout] --> tests/config_export_import_tests.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn create_git_repo(dir: &PathBuf) -> std::process::Output { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:580:32 [INFO] [stdout] | [INFO] [stdout] 580 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `configure_git_user` is never used [INFO] [stdout] --> tests/config_export_import_tests.rs:15:4 [INFO] [stdout] | [INFO] [stdout] 15 | fn configure_git_user(dir: &PathBuf) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:593:32 [INFO] [stdout] | [INFO] [stdout] 593 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `setup_git_repo` is never used [INFO] [stdout] --> tests/config_export_import_tests.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn setup_git_repo(dir: &PathBuf) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:597:32 [INFO] [stdout] | [INFO] [stdout] 597 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:614:32 [INFO] [stdout] | [INFO] [stdout] 614 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:630:32 [INFO] [stdout] | [INFO] [stdout] 630 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:634:32 [INFO] [stdout] | [INFO] [stdout] 634 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/integration_tests.rs:652:32 [INFO] [stdout] | [INFO] [stdout] 652 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `grouped` [INFO] [stdout] --> src/git/changelog.rs:162:17 [INFO] [stdout] | [INFO] [stdout] 162 | let grouped = self.group_commits(commits); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grouped` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `version` [INFO] [stdout] --> src/git/changelog.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | version: &str, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/git/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut normalized = path.to_path_buf(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `grouped` [INFO] [stdout] --> src/git/changelog.rs:162:17 [INFO] [stdout] | [INFO] [stdout] 162 | let grouped = self.group_commits(commits); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grouped` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `version` [INFO] [stdout] --> src/git/changelog.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | version: &str, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/git/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut normalized = path.to_path_buf(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `code` [INFO] [stdout] --> src/utils/editor.rs:44:27 [INFO] [stdout] | [INFO] [stdout] 44 | if let Ok(code) = which::which("code") { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `notepad` [INFO] [stdout] --> src/utils/editor.rs:47:27 [INFO] [stdout] | [INFO] [stdout] 47 | if let Ok(notepad) = which::which("notepad") { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_notepad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `has_encrypted_pats` are never used [INFO] [stdout] --> src/config/mod.rs:555:12 [INFO] [stdout] | [INFO] [stdout] 554 | impl ExportData { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 555 | pub fn new(config: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 571 | pub fn has_encrypted_pats(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_token` and `usage_stats` are never used [INFO] [stdout] --> src/config/profile.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl GitProfile { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn get_token(&self, service: &str) -> Option<&TokenConfig> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | pub fn usage_stats(&self) -> &UsageStats { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `git_ssh_command` is never used [INFO] [stdout] --> src/config/profile.rs:368:12 [INFO] [stdout] | [INFO] [stdout] 349 | impl SshConfig { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn git_ssh_command(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `program` is never used [INFO] [stdout] --> src/config/profile.rs:418:12 [INFO] [stdout] | [INFO] [stdout] 410 | impl GpgConfig { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 418 | pub fn program(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `without_token`, `record_usage`, and `set_has_token` are never used [INFO] [stdout] --> src/config/profile.rs:465:12 [INFO] [stdout] | [INFO] [stdout] 451 | impl TokenConfig { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 465 | pub fn without_token(token_type: TokenType) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 485 | pub fn record_usage(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 490 | pub fn set_has_token(&mut self, has_token: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `profile_name` is never read [INFO] [stdout] --> src/config/profile.rs:543:9 [INFO] [stdout] | [INFO] [stdout] 542 | pub struct ProfileComparison { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 543 | pub profile_name: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProfileComparison` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/config/profile.rs:600:12 [INFO] [stdout] | [INFO] [stdout] 584 | impl GitProfileBuilder { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 600 | pub fn settings(mut self, settings: ProfileSettings) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 605 | pub fn ssh(mut self, ssh: SshConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 610 | pub fn gpg(mut self, gpg: GpgConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 615 | pub fn signing_key(mut self, key: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 625 | pub fn work(mut self, is_work: bool) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 630 | pub fn organization(mut self, org: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 635 | pub fn token(mut self, service: impl Into, token: TokenConfig) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `generate_changelog_from_repo` is never used [INFO] [stdout] --> src/generator/mod.rs:94:18 [INFO] [stdout] | [INFO] [stdout] 12 | impl ContentGenerator { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 94 | pub async fn generate_changelog_from_repo( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_simple_commit` is never used [INFO] [stdout] --> src/generator/mod.rs:191:12 [INFO] [stdout] | [INFO] [stdout] 191 | pub fn generate_simple_commit(files: &[String]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_date_commit` is never used [INFO] [stdout] --> src/generator/mod.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 202 | pub fn generate_date_commit() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_by_file_types` is never used [INFO] [stdout] --> src/generator/mod.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn generate_by_file_types(files: &[String]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/git/mod.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 177 | impl GitRepo { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn config(&self) -> Option<&Config> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub fn get_config_regex(&self, _pattern: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | pub fn get_signing_key(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn should_sign_commits(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn should_sign_tags(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 289 | pub fn get_gpg_program(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | pub fn is_valid(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | pub fn has_changes(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | pub fn get_unstaged_diff(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn get_full_diff(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn get_changed_files(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 412 | pub fn stage_files>(&self, paths: &[P]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 451 | pub fn unstage_files>(&self, paths: &[P]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 547 | pub fn current_branch(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 560 | pub fn current_commit_short(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 568 | pub fn current_commit(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 706 | fn create_gpg_signature_for_content(&self, _content: &str, _gpg_program: &str, _signing_key: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 711 | pub fn delete_tag(&self, name: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 732 | pub fn get_remote_url(&self, remote: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 740 | pub fn is_clean(&self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `email`, and `time` are never read [INFO] [stdout] --> src/git/mod.rs:806:9 [INFO] [stdout] | [INFO] [stdout] 805 | pub struct CommitInfo { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 806 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 810 | pub email: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 811 | pub time: i64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommitInfo` 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: fields `target` and `message` are never read [INFO] [stdout] --> src/git/mod.rs:837:9 [INFO] [stdout] | [INFO] [stdout] 835 | pub struct TagInfo { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 836 | pub name: String, [INFO] [stdout] 837 | pub target: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 838 | pub message: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TagInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `conflicted` is never read [INFO] [stdout] --> src/git/mod.rs:848:9 [INFO] [stdout] | [INFO] [stdout] 844 | pub struct StatusSummary { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 848 | pub conflicted: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StatusSummary` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `format` is never used [INFO] [stdout] --> src/git/mod.rs:854:12 [INFO] [stdout] | [INFO] [stdout] 852 | impl StatusSummary { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 853 | /// Format as human-readable string [INFO] [stdout] 854 | pub fn format(&self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_git_repo` is never used [INFO] [stdout] --> src/git/mod.rs:948:8 [INFO] [stdout] | [INFO] [stdout] 948 | pub fn is_git_repo>(path: P) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GitConfigHelper` is never constructed [INFO] [stdout] --> src/git/mod.rs:953:12 [INFO] [stdout] | [INFO] [stdout] 953 | pub struct GitConfigHelper<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/git/mod.rs:960:12 [INFO] [stdout] | [INFO] [stdout] 958 | impl<'a> GitConfigHelper<'a> { [INFO] [stdout] | ---------------------------- associated items in this implementation [INFO] [stdout] 959 | /// Create a helper for repository-level configuration [INFO] [stdout] 960 | pub fn for_repo(repo: &'a Repository) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 968 | pub fn for_global() -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 977 | pub fn get(&self, key: &str) -> Result> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 990 | pub fn set(&self, key: &str, value: &str) -> Result<()> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1004 | pub fn remove(&self, key: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1018 | pub fn get_user_config(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1028 | pub fn set_user_config(&self, config: &UserConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_local` and `is_global` are never used [INFO] [stdout] --> src/git/mod.rs:1091:12 [INFO] [stdout] | [INFO] [stdout] 1072 | impl ConfigEntry { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 1091 | pub fn is_local(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1095 | pub fn is_global(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_local_overrides` is never used [INFO] [stdout] --> src/git/mod.rs:1136:12 [INFO] [stdout] | [INFO] [stdout] 1111 | impl MergedUserConfig { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1136 | pub fn has_local_overrides(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserConfig` is never constructed [INFO] [stdout] --> src/git/mod.rs:1143:12 [INFO] [stdout] | [INFO] [stdout] 1143 | pub struct UserConfig { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_complete` and `compare` are never used [INFO] [stdout] --> src/git/mod.rs:1152:12 [INFO] [stdout] | [INFO] [stdout] 1150 | impl UserConfig { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 1151 | /// Check if configuration is complete [INFO] [stdout] 1152 | pub fn is_complete(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1157 | pub fn compare(&self, other: &UserConfig) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConfigDiff` is never constructed [INFO] [stdout] --> src/git/mod.rs:1190:12 [INFO] [stdout] | [INFO] [stdout] 1190 | pub struct ConfigDiff { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `group_by_type`, `add_category`, and `generate_and_prepend` are never used [INFO] [stdout] --> src/git/changelog.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl ChangelogGenerator { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn group_by_type(mut self, group: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn add_category(mut self, title: impl Into, types: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn generate_and_prepend( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_changelog` is never used [INFO] [stdout] --> src/git/changelog.rs:382:8 [INFO] [stdout] | [INFO] [stdout] 382 | pub fn read_changelog(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_version_links` is never used [INFO] [stdout] --> src/git/changelog.rs:416:8 [INFO] [stdout] | [INFO] [stdout] 416 | pub fn update_version_links( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_versions` is never used [INFO] [stdout] --> src/git/changelog.rs:426:8 [INFO] [stdout] | [INFO] [stdout] 426 | pub fn parse_versions(changelog: &str) -> Vec<(String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_unreleased_changes` is never used [INFO] [stdout] --> src/git/changelog.rs:449:8 [INFO] [stdout] | [INFO] [stdout] 449 | pub fn get_unreleased_changes(repo: &GitRepo) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChangelogEntry` is never constructed [INFO] [stdout] --> src/git/changelog.rs:460:12 [INFO] [stdout] | [INFO] [stdout] 460 | pub struct ChangelogEntry { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_date` are never used [INFO] [stdout] --> src/git/changelog.rs:468:12 [INFO] [stdout] | [INFO] [stdout] 466 | impl ChangelogEntry { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 467 | /// Create new entry [INFO] [stdout] 468 | pub fn new(version: impl Into, commits: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 477 | pub fn with_date(mut self, date: DateTime) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `scope`, `body`, `footer`, `amend`, and `no_verify` are never used [INFO] [stdout] --> src/git/commit.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl CommitBuilder { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn scope(mut self, scope: impl Into) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn body(mut self, body: impl Into) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn footer(mut self, footer: impl Into) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn amend(mut self, amend: bool) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn no_verify(mut self, no_verify: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `suggest_commit_type` is never used [INFO] [stdout] --> src/git/commit.rs:230:8 [INFO] [stdout] | [INFO] [stdout] 230 | pub fn suggest_commit_type(diff: &str) -> Vec<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_message` is never used [INFO] [stdout] --> src/git/commit.rs:351:12 [INFO] [stdout] | [INFO] [stdout] 349 | impl ParsedCommit { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 350 | /// Convert back to commit message [INFO] [stdout] 351 | pub fn to_message(&self, format: crate::config::CommitFormat) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `version_prefix` is never read [INFO] [stdout] --> src/git/tag.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct TagBuilder { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 12 | version_prefix: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `version_prefix`, `version`, and `execute_and_push` are never used [INFO] [stdout] --> src/git/tag.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl TagBuilder { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn version_prefix(mut self, prefix: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn version(mut self, version: &Version) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn execute_and_push(&self, repo: &GitRepo, remote: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `variants` is never used [INFO] [stdout] --> src/git/tag.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 131 | impl VersionBump { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn variants() -> &'static [&'static str] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_tag_message` is never used [INFO] [stdout] --> src/git/tag.rs:215:8 [INFO] [stdout] | [INFO] [stdout] 215 | pub fn generate_tag_message(version: &str, commits: &[super::CommitInfo]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_tag` is never used [INFO] [stdout] --> src/git/tag.rs:278:8 [INFO] [stdout] | [INFO] [stdout] 278 | pub fn delete_tag(repo: &GitRepo, name: &str, remote: Option<&str>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_tags` is never used [INFO] [stdout] --> src/git/tag.rs:300:8 [INFO] [stdout] | [INFO] [stdout] 300 | pub fn list_tags( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/i18n/messages.rs:660:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Messages { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 660 | pub fn staged_files(&self, count: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 672 | pub fn generating_commit_message(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 684 | pub fn generated_commit_message(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 696 | pub fn what_would_you_like_to_do(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 708 | pub fn accept_and_commit(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 720 | pub fn regenerate(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 732 | pub fn edit(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 744 | pub fn copy_to_clipboard(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 756 | pub fn cancel(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 768 | pub fn regenerating(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 780 | pub fn copied_to_clipboard(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 792 | pub fn cancelled_by_user(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1092 | pub fn model(&self) -> &str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1104 | pub fn base_url(&self) -> &str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1116 | pub fn configuration_updated(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1128 | pub fn set_value(&self, key: &str, value: &str) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `keep_types_english` is never read [INFO] [stdout] --> src/i18n/translator.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Translator { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 4 | language: Language, [INFO] [stdout] 5 | keep_types_english: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/i18n/translator.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Translator { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn translate_commit_type(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | fn translate_commit_type_zh(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | fn translate_commit_type_ja(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | fn translate_commit_type_ko(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | fn translate_commit_type_es(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | fn translate_commit_type_fr(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | fn translate_commit_type_de(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `translate_commit_type` is never used [INFO] [stdout] --> src/i18n/translator.rs:225:8 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn translate_commit_type(commit_type: &str, language: Language, keep_english: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `name` is never used [INFO] [stdout] --> src/llm/mod.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub trait LlmProvider: Send + Sync { [INFO] [stdout] | ----------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 33 | fn name(&self) -> &str; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/llm/mod.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct LlmClient { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 38 | provider: Box, [INFO] [stdout] 39 | config: LlmClientConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_tokens`, `temperature`, and `timeout` are never read [INFO] [stdout] --> src/llm/mod.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct LlmClientConfig { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 44 | pub max_tokens: u32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 45 | pub temperature: f32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 46 | pub timeout: Duration, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LlmClientConfig` 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: associated function `with_provider` is never used [INFO] [stdout] --> src/llm/mod.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl LlmClient { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn with_provider(provider: Box) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_commitlint` is never used [INFO] [stdout] --> src/llm/mod.rs:385:12 [INFO] [stdout] | [INFO] [stdout] 371 | impl GeneratedCommit { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 385 | pub fn to_commitlint(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `done` is never read [INFO] [stdout] --> src/llm/ollama.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 32 | struct GenerateResponse { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 33 | response: String, [INFO] [stdout] 34 | done: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GenerateResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ListModelsResponse` is never constructed [INFO] [stdout] --> src/llm/ollama.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | struct ListModelsResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ModelInfo` is never constructed [INFO] [stdout] --> src/llm/ollama.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | struct ModelInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `with_timeout`, `list_models`, `pull_model`, and `model_exists` are never used [INFO] [stdout] --> src/llm/ollama.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl OllamaClient { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn with_timeout(mut self, timeout: Duration) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub async fn list_models(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub async fn pull_model(&self, model: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub async fn model_exists(&self, model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `with_timeout` is never used [INFO] [stdout] --> src/llm/openai.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl OpenAiClient { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AzureOpenAiClient` is never constructed [INFO] [stdout] --> src/llm/openai.rs:212:12 [INFO] [stdout] | [INFO] [stdout] 212 | pub struct AzureOpenAiClient { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `chat_completion` are never used [INFO] [stdout] --> src/llm/openai.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 220 | impl AzureOpenAiClient { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 221 | /// Create new Azure OpenAI client [INFO] [stdout] 222 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 239 | async fn chat_completion(&self, messages: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `with_timeout` and `list_models` are never used [INFO] [stdout] --> src/llm/anthropic.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl AnthropicClient { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub async fn list_models(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_timeout` are never used [INFO] [stdout] --> src/llm/kimi.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl KimiClient { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 55 | /// Create new Kimi client [INFO] [stdout] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_timeout` are never used [INFO] [stdout] --> src/llm/deepseek.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl DeepSeekClient { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 55 | /// Create new DeepSeek client [INFO] [stdout] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_timeout` are never used [INFO] [stdout] --> src/llm/openrouter.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl OpenRouterClient { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 55 | /// Create new OpenRouter client [INFO] [stdout] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OPENROUTER_MODELS` is never used [INFO] [stdout] --> src/llm/openrouter.rs:228:11 [INFO] [stdout] | [INFO] [stdout] 228 | pub const OPENROUTER_MODELS: &[&str] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_success` is never used [INFO] [stdout] --> src/utils/mod.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn print_success(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_error` is never used [INFO] [stdout] --> src/utils/mod.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn print_error(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_warning` is never used [INFO] [stdout] --> src/utils/mod.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn print_warning(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_info` is never used [INFO] [stdout] --> src/utils/mod.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn print_info(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `confirm` is never used [INFO] [stdout] --> src/utils/mod.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn confirm(prompt: &str) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `input` is never used [INFO] [stdout] --> src/utils/mod.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn input(prompt: &str) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_terminal` is never used [INFO] [stdout] --> src/utils/mod.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn is_terminal() -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_duration` is never used [INFO] [stdout] --> src/utils/mod.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn format_duration(secs: u64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_to_file` is never used [INFO] [stdout] --> src/utils/crypto.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn encrypt_to_file(data: &[u8], password: &str, path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_from_file` is never used [INFO] [stdout] --> src/utils/crypto.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn decrypt_from_file(path: &Path, password: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_token` is never used [INFO] [stdout] --> src/utils/crypto.rs:97:8 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn generate_token(length: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sha256` is never used [INFO] [stdout] --> src/utils/crypto.rs:110:8 [INFO] [stdout] | [INFO] [stdout] 110 | pub fn sha256(data: &[u8]) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `edit_temp` is never used [INFO] [stdout] --> src/utils/editor.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn edit_temp(initial_content: &str, extension: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_editor` is never used [INFO] [stdout] --> src/utils/editor.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn get_editor() -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_editor` is never used [INFO] [stdout] --> src/utils/editor.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn check_editor() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wrap_text` is never used [INFO] [stdout] --> src/utils/formatter.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn wrap_text(text: &str, width: usize) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clean_message` is never used [INFO] [stdout] --> src/utils/formatter.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn clean_message(message: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `status` and `has_api_key` are never used [INFO] [stdout] --> src/utils/keyring.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl KeyringManager { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn status(&self) -> KeyringStatus { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn has_api_key(&self, provider: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_scope` is never used [INFO] [stdout] --> src/utils/validators.rs:136:8 [INFO] [stdout] | [INFO] [stdout] 136 | pub fn validate_scope(scope: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_commit_type` is never used [INFO] [stdout] --> src/utils/validators.rs:198:8 [INFO] [stdout] | [INFO] [stdout] 198 | pub fn is_valid_commit_type(commit_type: &str, use_commitlint: bool) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `code` [INFO] [stdout] --> src/utils/editor.rs:44:27 [INFO] [stdout] | [INFO] [stdout] 44 | if let Ok(code) = which::which("code") { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `notepad` [INFO] [stdout] --> src/utils/editor.rs:47:27 [INFO] [stdout] | [INFO] [stdout] 47 | if let Ok(notepad) = which::which("notepad") { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_notepad` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `has_encrypted_pats` are never used [INFO] [stdout] --> src/config/mod.rs:555:12 [INFO] [stdout] | [INFO] [stdout] 554 | impl ExportData { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 555 | pub fn new(config: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 571 | pub fn has_encrypted_pats(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `builder`, `validate`, `get_token`, and `usage_stats` are never used [INFO] [stdout] --> src/config/profile.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl GitProfile { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn builder() -> GitProfileBuilder { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn validate(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn get_token(&self, service: &str) -> Option<&TokenConfig> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | pub fn usage_stats(&self) -> &UsageStats { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `validate` and `git_ssh_command` are never used [INFO] [stdout] --> src/config/profile.rs:351:12 [INFO] [stdout] | [INFO] [stdout] 349 | impl SshConfig { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 350 | /// Validate SSH configuration [INFO] [stdout] 351 | pub fn validate(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn git_ssh_command(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `validate` and `program` are never used [INFO] [stdout] --> src/config/profile.rs:412:12 [INFO] [stdout] | [INFO] [stdout] 410 | impl GpgConfig { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 411 | /// Validate GPG configuration [INFO] [stdout] 412 | pub fn validate(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 418 | pub fn program(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `without_token`, `validate`, `record_usage`, and `set_has_token` are never used [INFO] [stdout] --> src/config/profile.rs:465:12 [INFO] [stdout] | [INFO] [stdout] 451 | impl TokenConfig { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 465 | pub fn without_token(token_type: TokenType) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 477 | pub fn validate(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 485 | pub fn record_usage(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 490 | pub fn set_has_token(&mut self, has_token: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `profile_name` is never read [INFO] [stdout] --> src/config/profile.rs:543:9 [INFO] [stdout] | [INFO] [stdout] 542 | pub struct ProfileComparison { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 543 | pub profile_name: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProfileComparison` 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: struct `GitProfileBuilder` is never constructed [INFO] [stdout] --> src/config/profile.rs:570:12 [INFO] [stdout] | [INFO] [stdout] 570 | pub struct GitProfileBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/config/profile.rs:585:12 [INFO] [stdout] | [INFO] [stdout] 584 | impl GitProfileBuilder { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] 585 | pub fn name(mut self, name: impl Into) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 590 | pub fn user_name(mut self, user_name: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 595 | pub fn user_email(mut self, user_email: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 600 | pub fn settings(mut self, settings: ProfileSettings) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 605 | pub fn ssh(mut self, ssh: SshConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 610 | pub fn gpg(mut self, gpg: GpgConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 615 | pub fn signing_key(mut self, key: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 620 | pub fn description(mut self, desc: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 625 | pub fn work(mut self, is_work: bool) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 630 | pub fn organization(mut self, org: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 635 | pub fn token(mut self, service: impl Into, token: TokenConfig) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 640 | pub fn build(self) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `generate_changelog_from_repo` is never used [INFO] [stdout] --> src/generator/mod.rs:94:18 [INFO] [stdout] | [INFO] [stdout] 12 | impl ContentGenerator { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 94 | pub async fn generate_changelog_from_repo( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_simple_commit` is never used [INFO] [stdout] --> src/generator/mod.rs:191:12 [INFO] [stdout] | [INFO] [stdout] 191 | pub fn generate_simple_commit(files: &[String]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_date_commit` is never used [INFO] [stdout] --> src/generator/mod.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 202 | pub fn generate_date_commit() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_by_file_types` is never used [INFO] [stdout] --> src/generator/mod.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn generate_by_file_types(files: &[String]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/git/mod.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 177 | impl GitRepo { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn config(&self) -> Option<&Config> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub fn get_config_regex(&self, _pattern: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | pub fn get_signing_key(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn should_sign_commits(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub fn should_sign_tags(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 289 | pub fn get_gpg_program(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | pub fn is_valid(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | pub fn has_changes(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | pub fn get_unstaged_diff(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn get_full_diff(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 373 | pub fn get_changed_files(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 412 | pub fn stage_files>(&self, paths: &[P]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 451 | pub fn unstage_files>(&self, paths: &[P]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 547 | pub fn current_branch(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 560 | pub fn current_commit_short(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 568 | pub fn current_commit(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 706 | fn create_gpg_signature_for_content(&self, _content: &str, _gpg_program: &str, _signing_key: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 711 | pub fn delete_tag(&self, name: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 732 | pub fn get_remote_url(&self, remote: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 740 | pub fn is_clean(&self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `email`, and `time` are never read [INFO] [stdout] --> src/git/mod.rs:806:9 [INFO] [stdout] | [INFO] [stdout] 805 | pub struct CommitInfo { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 806 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 810 | pub email: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 811 | pub time: i64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommitInfo` 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: fields `target` and `message` are never read [INFO] [stdout] --> src/git/mod.rs:837:9 [INFO] [stdout] | [INFO] [stdout] 835 | pub struct TagInfo { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 836 | pub name: String, [INFO] [stdout] 837 | pub target: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 838 | pub message: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TagInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `conflicted` is never read [INFO] [stdout] --> src/git/mod.rs:848:9 [INFO] [stdout] | [INFO] [stdout] 844 | pub struct StatusSummary { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 848 | pub conflicted: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StatusSummary` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `format` is never used [INFO] [stdout] --> src/git/mod.rs:854:12 [INFO] [stdout] | [INFO] [stdout] 852 | impl StatusSummary { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 853 | /// Format as human-readable string [INFO] [stdout] 854 | pub fn format(&self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_git_repo` is never used [INFO] [stdout] --> src/git/mod.rs:948:8 [INFO] [stdout] | [INFO] [stdout] 948 | pub fn is_git_repo>(path: P) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GitConfigHelper` is never constructed [INFO] [stdout] --> src/git/mod.rs:953:12 [INFO] [stdout] | [INFO] [stdout] 953 | pub struct GitConfigHelper<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/git/mod.rs:960:12 [INFO] [stdout] | [INFO] [stdout] 958 | impl<'a> GitConfigHelper<'a> { [INFO] [stdout] | ---------------------------- associated items in this implementation [INFO] [stdout] 959 | /// Create a helper for repository-level configuration [INFO] [stdout] 960 | pub fn for_repo(repo: &'a Repository) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 968 | pub fn for_global() -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 977 | pub fn get(&self, key: &str) -> Result> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 990 | pub fn set(&self, key: &str, value: &str) -> Result<()> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1004 | pub fn remove(&self, key: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1018 | pub fn get_user_config(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1028 | pub fn set_user_config(&self, config: &UserConfig) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_local` and `is_global` are never used [INFO] [stdout] --> src/git/mod.rs:1091:12 [INFO] [stdout] | [INFO] [stdout] 1072 | impl ConfigEntry { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 1091 | pub fn is_local(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1095 | pub fn is_global(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_local_overrides` is never used [INFO] [stdout] --> src/git/mod.rs:1136:12 [INFO] [stdout] | [INFO] [stdout] 1111 | impl MergedUserConfig { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1136 | pub fn has_local_overrides(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserConfig` is never constructed [INFO] [stdout] --> src/git/mod.rs:1143:12 [INFO] [stdout] | [INFO] [stdout] 1143 | pub struct UserConfig { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_complete` and `compare` are never used [INFO] [stdout] --> src/git/mod.rs:1152:12 [INFO] [stdout] | [INFO] [stdout] 1150 | impl UserConfig { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 1151 | /// Check if configuration is complete [INFO] [stdout] 1152 | pub fn is_complete(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1157 | pub fn compare(&self, other: &UserConfig) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConfigDiff` is never constructed [INFO] [stdout] --> src/git/mod.rs:1190:12 [INFO] [stdout] | [INFO] [stdout] 1190 | pub struct ConfigDiff { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `group_by_type`, `add_category`, and `generate_and_prepend` are never used [INFO] [stdout] --> src/git/changelog.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl ChangelogGenerator { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn group_by_type(mut self, group: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn add_category(mut self, title: impl Into, types: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn generate_and_prepend( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_changelog` is never used [INFO] [stdout] --> src/git/changelog.rs:382:8 [INFO] [stdout] | [INFO] [stdout] 382 | pub fn read_changelog(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_version_links` is never used [INFO] [stdout] --> src/git/changelog.rs:416:8 [INFO] [stdout] | [INFO] [stdout] 416 | pub fn update_version_links( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_versions` is never used [INFO] [stdout] --> src/git/changelog.rs:426:8 [INFO] [stdout] | [INFO] [stdout] 426 | pub fn parse_versions(changelog: &str) -> Vec<(String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_unreleased_changes` is never used [INFO] [stdout] --> src/git/changelog.rs:449:8 [INFO] [stdout] | [INFO] [stdout] 449 | pub fn get_unreleased_changes(repo: &GitRepo) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChangelogEntry` is never constructed [INFO] [stdout] --> src/git/changelog.rs:460:12 [INFO] [stdout] | [INFO] [stdout] 460 | pub struct ChangelogEntry { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_date` are never used [INFO] [stdout] --> src/git/changelog.rs:468:12 [INFO] [stdout] | [INFO] [stdout] 466 | impl ChangelogEntry { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 467 | /// Create new entry [INFO] [stdout] 468 | pub fn new(version: impl Into, commits: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 477 | pub fn with_date(mut self, date: DateTime) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `scope`, `body`, `footer`, `amend`, and `no_verify` are never used [INFO] [stdout] --> src/git/commit.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl CommitBuilder { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn scope(mut self, scope: impl Into) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn body(mut self, body: impl Into) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn footer(mut self, footer: impl Into) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn amend(mut self, amend: bool) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn no_verify(mut self, no_verify: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `suggest_commit_type` is never used [INFO] [stdout] --> src/git/commit.rs:230:8 [INFO] [stdout] | [INFO] [stdout] 230 | pub fn suggest_commit_type(diff: &str) -> Vec<&'static str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_message` is never used [INFO] [stdout] --> src/git/commit.rs:351:12 [INFO] [stdout] | [INFO] [stdout] 349 | impl ParsedCommit { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 350 | /// Convert back to commit message [INFO] [stdout] 351 | pub fn to_message(&self, format: crate::config::CommitFormat) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `version_prefix` is never read [INFO] [stdout] --> src/git/tag.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct TagBuilder { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 12 | version_prefix: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `version_prefix`, `version`, and `execute_and_push` are never used [INFO] [stdout] --> src/git/tag.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl TagBuilder { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn version_prefix(mut self, prefix: impl Into) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn version(mut self, version: &Version) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn execute_and_push(&self, repo: &GitRepo, remote: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `variants` is never used [INFO] [stdout] --> src/git/tag.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 131 | impl VersionBump { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn variants() -> &'static [&'static str] { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_tag_message` is never used [INFO] [stdout] --> src/git/tag.rs:215:8 [INFO] [stdout] | [INFO] [stdout] 215 | pub fn generate_tag_message(version: &str, commits: &[super::CommitInfo]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_tag` is never used [INFO] [stdout] --> src/git/tag.rs:278:8 [INFO] [stdout] | [INFO] [stdout] 278 | pub fn delete_tag(repo: &GitRepo, name: &str, remote: Option<&str>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_tags` is never used [INFO] [stdout] --> src/git/tag.rs:300:8 [INFO] [stdout] | [INFO] [stdout] 300 | pub fn list_tags( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/i18n/messages.rs:660:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Messages { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 660 | pub fn staged_files(&self, count: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 672 | pub fn generating_commit_message(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 684 | pub fn generated_commit_message(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 696 | pub fn what_would_you_like_to_do(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 708 | pub fn accept_and_commit(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 720 | pub fn regenerate(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 732 | pub fn edit(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 744 | pub fn copy_to_clipboard(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 756 | pub fn cancel(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 768 | pub fn regenerating(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 780 | pub fn copied_to_clipboard(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 792 | pub fn cancelled_by_user(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1092 | pub fn model(&self) -> &str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1104 | pub fn base_url(&self) -> &str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1116 | pub fn configuration_updated(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1128 | pub fn set_value(&self, key: &str, value: &str) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `keep_types_english` is never read [INFO] [stdout] --> src/i18n/translator.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Translator { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 4 | language: Language, [INFO] [stdout] 5 | keep_types_english: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/i18n/translator.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Translator { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn translate_commit_type(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | fn translate_commit_type_zh(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | fn translate_commit_type_ja(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | fn translate_commit_type_ko(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | fn translate_commit_type_es(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | fn translate_commit_type_fr(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | fn translate_commit_type_de(&self, commit_type: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `translate_commit_type` is never used [INFO] [stdout] --> src/i18n/translator.rs:225:8 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn translate_commit_type(commit_type: &str, language: Language, keep_english: bool) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `name` is never used [INFO] [stdout] --> src/llm/mod.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub trait LlmProvider: Send + Sync { [INFO] [stdout] | ----------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 33 | fn name(&self) -> &str; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/llm/mod.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct LlmClient { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 38 | provider: Box, [INFO] [stdout] 39 | config: LlmClientConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_tokens`, `temperature`, and `timeout` are never read [INFO] [stdout] --> src/llm/mod.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct LlmClientConfig { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 44 | pub max_tokens: u32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 45 | pub temperature: f32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 46 | pub timeout: Duration, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LlmClientConfig` 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: associated function `with_provider` is never used [INFO] [stdout] --> src/llm/mod.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl LlmClient { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn with_provider(provider: Box) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_commitlint` is never used [INFO] [stdout] --> src/llm/mod.rs:385:12 [INFO] [stdout] | [INFO] [stdout] 371 | impl GeneratedCommit { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 385 | pub fn to_commitlint(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `done` is never read [INFO] [stdout] --> src/llm/ollama.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 32 | struct GenerateResponse { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 33 | response: String, [INFO] [stdout] 34 | done: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GenerateResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ListModelsResponse` is never constructed [INFO] [stdout] --> src/llm/ollama.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | struct ListModelsResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ModelInfo` is never constructed [INFO] [stdout] --> src/llm/ollama.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | struct ModelInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `with_timeout`, `list_models`, `pull_model`, and `model_exists` are never used [INFO] [stdout] --> src/llm/ollama.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 47 | impl OllamaClient { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn with_timeout(mut self, timeout: Duration) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub async fn list_models(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub async fn pull_model(&self, model: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub async fn model_exists(&self, model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `with_timeout` is never used [INFO] [stdout] --> src/llm/openai.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl OpenAiClient { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AzureOpenAiClient` is never constructed [INFO] [stdout] --> src/llm/openai.rs:212:12 [INFO] [stdout] | [INFO] [stdout] 212 | pub struct AzureOpenAiClient { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `chat_completion` are never used [INFO] [stdout] --> src/llm/openai.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 220 | impl AzureOpenAiClient { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 221 | /// Create new Azure OpenAI client [INFO] [stdout] 222 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 239 | async fn chat_completion(&self, messages: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `with_timeout` and `list_models` are never used [INFO] [stdout] --> src/llm/anthropic.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl AnthropicClient { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub async fn list_models(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ANTHROPIC_MODELS` is never used [INFO] [stdout] --> src/llm/anthropic.rs:210:11 [INFO] [stdout] | [INFO] [stdout] 210 | pub const ANTHROPIC_MODELS: &[&str] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_model` is never used [INFO] [stdout] --> src/llm/anthropic.rs:220:8 [INFO] [stdout] | [INFO] [stdout] 220 | pub fn is_valid_model(model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_timeout` are never used [INFO] [stdout] --> src/llm/kimi.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl KimiClient { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 55 | /// Create new Kimi client [INFO] [stdout] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KIMI_MODELS` is never used [INFO] [stdout] --> src/llm/kimi.rs:224:11 [INFO] [stdout] | [INFO] [stdout] 224 | pub const KIMI_MODELS: &[&str] = &[ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_model` is never used [INFO] [stdout] --> src/llm/kimi.rs:231:8 [INFO] [stdout] | [INFO] [stdout] 231 | pub fn is_valid_model(model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_timeout` are never used [INFO] [stdout] --> src/llm/deepseek.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl DeepSeekClient { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 55 | /// Create new DeepSeek client [INFO] [stdout] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEEPSEEK_MODELS` is never used [INFO] [stdout] --> src/llm/deepseek.rs:224:11 [INFO] [stdout] | [INFO] [stdout] 224 | pub const DEEPSEEK_MODELS: &[&str] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_model` is never used [INFO] [stdout] --> src/llm/deepseek.rs:230:8 [INFO] [stdout] | [INFO] [stdout] 230 | pub fn is_valid_model(model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_timeout` are never used [INFO] [stdout] --> src/llm/openrouter.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl OpenRouterClient { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 55 | /// Create new OpenRouter client [INFO] [stdout] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OPENROUTER_MODELS` is never used [INFO] [stdout] --> src/llm/openrouter.rs:228:11 [INFO] [stdout] | [INFO] [stdout] 228 | pub const OPENROUTER_MODELS: &[&str] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_model` is never used [INFO] [stdout] --> src/llm/openrouter.rs:242:8 [INFO] [stdout] | [INFO] [stdout] 242 | pub fn is_valid_model(_model: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_success` is never used [INFO] [stdout] --> src/utils/mod.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn print_success(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_error` is never used [INFO] [stdout] --> src/utils/mod.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn print_error(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_warning` is never used [INFO] [stdout] --> src/utils/mod.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn print_warning(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_info` is never used [INFO] [stdout] --> src/utils/mod.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn print_info(msg: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `confirm` is never used [INFO] [stdout] --> src/utils/mod.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn confirm(prompt: &str) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `input` is never used [INFO] [stdout] --> src/utils/mod.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn input(prompt: &str) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_terminal` is never used [INFO] [stdout] --> src/utils/mod.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn is_terminal() -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_duration` is never used [INFO] [stdout] --> src/utils/mod.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn format_duration(secs: u64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_to_file` is never used [INFO] [stdout] --> src/utils/crypto.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn encrypt_to_file(data: &[u8], password: &str, path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_from_file` is never used [INFO] [stdout] --> src/utils/crypto.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn decrypt_from_file(path: &Path, password: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_token` is never used [INFO] [stdout] --> src/utils/crypto.rs:97:8 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn generate_token(length: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sha256` is never used [INFO] [stdout] --> src/utils/crypto.rs:110:8 [INFO] [stdout] | [INFO] [stdout] 110 | pub fn sha256(data: &[u8]) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `edit_temp` is never used [INFO] [stdout] --> src/utils/editor.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn edit_temp(initial_content: &str, extension: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_editor` is never used [INFO] [stdout] --> src/utils/editor.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn get_editor() -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_editor` is never used [INFO] [stdout] --> src/utils/editor.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn check_editor() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wrap_text` is never used [INFO] [stdout] --> src/utils/formatter.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn wrap_text(text: &str, width: usize) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clean_message` is never used [INFO] [stdout] --> src/utils/formatter.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn clean_message(message: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `status` and `has_api_key` are never used [INFO] [stdout] --> src/utils/keyring.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl KeyringManager { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn status(&self) -> KeyringStatus { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub fn has_api_key(&self, provider: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_scope` is never used [INFO] [stdout] --> src/utils/validators.rs:136:8 [INFO] [stdout] | [INFO] [stdout] 136 | pub fn validate_scope(scope: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_gpg_key_id` is never used [INFO] [stdout] --> src/utils/validators.rs:172:8 [INFO] [stdout] | [INFO] [stdout] 172 | pub fn validate_gpg_key_id(key_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_commit_type` is never used [INFO] [stdout] --> src/utils/validators.rs:198:8 [INFO] [stdout] | [INFO] [stdout] 198 | pub fn is_valid_commit_type(commit_type: &str, use_commitlint: bool) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 28.98s [INFO] running `Command { std: "docker" "inspect" "98d52a5b2a0c3bee020d5180e719f6e4cc99798fbe0ad6c062205b684856a579", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "98d52a5b2a0c3bee020d5180e719f6e4cc99798fbe0ad6c062205b684856a579", kill_on_drop: false }` [INFO] [stdout] 98d52a5b2a0c3bee020d5180e719f6e4cc99798fbe0ad6c062205b684856a579 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 017fb1cb55c41b3a4e8f5d4ffa842cc5a3547f45eb1d740eca2aefb71398429e [INFO] running `Command { std: "docker" "start" "-a" "017fb1cb55c41b3a4e8f5d4ffa842cc5a3547f45eb1d740eca2aefb71398429e", kill_on_drop: false }` [INFO] [stderr] warning: unused variable: `grouped` [INFO] [stderr] --> src/git/changelog.rs:162:17 [INFO] [stderr] | [INFO] [stderr] 162 | let grouped = self.group_commits(commits); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grouped` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `version` [INFO] [stderr] --> src/git/changelog.rs:233:9 [INFO] [stderr] | [INFO] [stderr] 233 | version: &str, [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/git/mod.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | let mut normalized = path.to_path_buf(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `code` [INFO] [stderr] --> src/utils/editor.rs:44:27 [INFO] [stderr] | [INFO] [stderr] 44 | if let Ok(code) = which::which("code") { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_code` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `notepad` [INFO] [stderr] --> src/utils/editor.rs:47:27 [INFO] [stderr] | [INFO] [stderr] 47 | if let Ok(notepad) = which::which("notepad") { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_notepad` [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `has_encrypted_pats` are never used [INFO] [stderr] --> src/config/mod.rs:555:12 [INFO] [stderr] | [INFO] [stderr] 554 | impl ExportData { [INFO] [stderr] | --------------- associated items in this implementation [INFO] [stderr] 555 | pub fn new(config: String) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 571 | pub fn has_encrypted_pats(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: associated items `builder`, `validate`, `get_token`, and `usage_stats` are never used [INFO] [stderr] --> src/config/profile.rs:74:12 [INFO] [stderr] | [INFO] [stderr] 54 | impl GitProfile { [INFO] [stderr] | --------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 74 | pub fn builder() -> GitProfileBuilder { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 79 | pub fn validate(&self) -> Result<()> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 134 | pub fn get_token(&self, service: &str) -> Option<&TokenConfig> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 155 | pub fn usage_stats(&self) -> &UsageStats { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `validate` and `git_ssh_command` are never used [INFO] [stderr] --> src/config/profile.rs:351:12 [INFO] [stderr] | [INFO] [stderr] 349 | impl SshConfig { [INFO] [stderr] | -------------- methods in this implementation [INFO] [stderr] 350 | /// Validate SSH configuration [INFO] [stderr] 351 | pub fn validate(&self) -> Result<()> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 368 | pub fn git_ssh_command(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `validate` and `program` are never used [INFO] [stderr] --> src/config/profile.rs:412:12 [INFO] [stderr] | [INFO] [stderr] 410 | impl GpgConfig { [INFO] [stderr] | -------------- methods in this implementation [INFO] [stderr] 411 | /// Validate GPG configuration [INFO] [stderr] 412 | pub fn validate(&self) -> Result<()> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 418 | pub fn program(&self) -> &str { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `without_token`, `validate`, `record_usage`, and `set_has_token` are never used [INFO] [stderr] --> src/config/profile.rs:465:12 [INFO] [stderr] | [INFO] [stderr] 451 | impl TokenConfig { [INFO] [stderr] | ---------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 465 | pub fn without_token(token_type: TokenType) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 477 | pub fn validate(&self) -> Result<()> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 485 | pub fn record_usage(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 490 | pub fn set_has_token(&mut self, has_token: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `profile_name` is never read [INFO] [stderr] --> src/config/profile.rs:543:9 [INFO] [stderr] | [INFO] [stderr] 542 | pub struct ProfileComparison { [INFO] [stderr] | ----------------- field in this struct [INFO] [stderr] 543 | pub profile_name: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ProfileComparison` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `GitProfileBuilder` is never constructed [INFO] [stderr] --> src/config/profile.rs:570:12 [INFO] [stderr] | [INFO] [stderr] 570 | pub struct GitProfileBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/config/profile.rs:585:12 [INFO] [stderr] | [INFO] [stderr] 584 | impl GitProfileBuilder { [INFO] [stderr] | ---------------------- methods in this implementation [INFO] [stderr] 585 | pub fn name(mut self, name: impl Into) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 590 | pub fn user_name(mut self, user_name: impl Into) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 595 | pub fn user_email(mut self, user_email: impl Into) -> Self { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 600 | pub fn settings(mut self, settings: ProfileSettings) -> Self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 605 | pub fn ssh(mut self, ssh: SshConfig) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 610 | pub fn gpg(mut self, gpg: GpgConfig) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 615 | pub fn signing_key(mut self, key: impl Into) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 620 | pub fn description(mut self, desc: impl Into) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 625 | pub fn work(mut self, is_work: bool) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 630 | pub fn organization(mut self, org: impl Into) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 635 | pub fn token(mut self, service: impl Into, token: TokenConfig) -> Self { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 640 | pub fn build(self) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `generate_changelog_from_repo` is never used [INFO] [stderr] --> src/generator/mod.rs:94:18 [INFO] [stderr] | [INFO] [stderr] 12 | impl ContentGenerator { [INFO] [stderr] | --------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 94 | pub async fn generate_changelog_from_repo( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `generate_simple_commit` is never used [INFO] [stderr] --> src/generator/mod.rs:191:12 [INFO] [stderr] | [INFO] [stderr] 191 | pub fn generate_simple_commit(files: &[String]) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `generate_date_commit` is never used [INFO] [stderr] --> src/generator/mod.rs:202:12 [INFO] [stderr] | [INFO] [stderr] 202 | pub fn generate_date_commit() -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `generate_by_file_types` is never used [INFO] [stderr] --> src/generator/mod.rs:207:12 [INFO] [stderr] | [INFO] [stderr] 207 | pub fn generate_by_file_types(files: &[String]) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/git/mod.rs:232:12 [INFO] [stderr] | [INFO] [stderr] 177 | impl GitRepo { [INFO] [stderr] | ------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 232 | pub fn config(&self) -> Option<&Config> { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 246 | pub fn get_config_regex(&self, _pattern: &str) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 265 | pub fn get_signing_key(&self) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 271 | pub fn should_sign_commits(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 280 | pub fn should_sign_tags(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 289 | pub fn get_gpg_program(&self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 315 | pub fn is_valid(&self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 320 | pub fn has_changes(&self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 350 | pub fn get_unstaged_diff(&self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 365 | pub fn get_full_diff(&self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 373 | pub fn get_changed_files(&self) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 412 | pub fn stage_files>(&self, paths: &[P]) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 451 | pub fn unstage_files>(&self, paths: &[P]) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 547 | pub fn current_branch(&self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 560 | pub fn current_commit_short(&self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 568 | pub fn current_commit(&self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 706 | fn create_gpg_signature_for_content(&self, _content: &str, _gpg_program: &str, _signing_key: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 711 | pub fn delete_tag(&self, name: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 732 | pub fn get_remote_url(&self, remote: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 740 | pub fn is_clean(&self) -> Result { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `id`, `email`, and `time` are never read [INFO] [stderr] --> src/git/mod.rs:806:9 [INFO] [stderr] | [INFO] [stderr] 805 | pub struct CommitInfo { [INFO] [stderr] | ---------- fields in this struct [INFO] [stderr] 806 | pub id: String, [INFO] [stderr] | ^^ [INFO] [stderr] ... [INFO] [stderr] 810 | pub email: String, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 811 | pub time: i64, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CommitInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `target` and `message` are never read [INFO] [stderr] --> src/git/mod.rs:837:9 [INFO] [stderr] | [INFO] [stderr] 835 | pub struct TagInfo { [INFO] [stderr] | ------- fields in this struct [INFO] [stderr] 836 | pub name: String, [INFO] [stderr] 837 | pub target: String, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 838 | pub message: String, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TagInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `conflicted` is never read [INFO] [stderr] --> src/git/mod.rs:848:9 [INFO] [stderr] | [INFO] [stderr] 844 | pub struct StatusSummary { [INFO] [stderr] | ------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 848 | pub conflicted: usize, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `StatusSummary` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `format` is never used [INFO] [stderr] --> src/git/mod.rs:854:12 [INFO] [stderr] | [INFO] [stderr] 852 | impl StatusSummary { [INFO] [stderr] | ------------------ method in this implementation [INFO] [stderr] 853 | /// Format as human-readable string [INFO] [stderr] 854 | pub fn format(&self) -> String { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_git_repo` is never used [INFO] [stderr] --> src/git/mod.rs:948:8 [INFO] [stderr] | [INFO] [stderr] 948 | pub fn is_git_repo>(path: P) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `GitConfigHelper` is never constructed [INFO] [stderr] --> src/git/mod.rs:953:12 [INFO] [stderr] | [INFO] [stderr] 953 | pub struct GitConfigHelper<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/git/mod.rs:960:12 [INFO] [stderr] | [INFO] [stderr] 958 | impl<'a> GitConfigHelper<'a> { [INFO] [stderr] | ---------------------------- associated items in this implementation [INFO] [stderr] 959 | /// Create a helper for repository-level configuration [INFO] [stderr] 960 | pub fn for_repo(repo: &'a Repository) -> Self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 968 | pub fn for_global() -> Result { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 977 | pub fn get(&self, key: &str) -> Result> { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 990 | pub fn set(&self, key: &str, value: &str) -> Result<()> { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1004 | pub fn remove(&self, key: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1018 | pub fn get_user_config(&self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1028 | pub fn set_user_config(&self, config: &UserConfig) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `is_local` and `is_global` are never used [INFO] [stderr] --> src/git/mod.rs:1091:12 [INFO] [stderr] | [INFO] [stderr] 1072 | impl ConfigEntry { [INFO] [stderr] | ---------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 1091 | pub fn is_local(&self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1095 | pub fn is_global(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `has_local_overrides` is never used [INFO] [stderr] --> src/git/mod.rs:1136:12 [INFO] [stderr] | [INFO] [stderr] 1111 | impl MergedUserConfig { [INFO] [stderr] | --------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 1136 | pub fn has_local_overrides(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `UserConfig` is never constructed [INFO] [stderr] --> src/git/mod.rs:1143:12 [INFO] [stderr] | [INFO] [stderr] 1143 | pub struct UserConfig { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `is_complete` and `compare` are never used [INFO] [stderr] --> src/git/mod.rs:1152:12 [INFO] [stderr] | [INFO] [stderr] 1150 | impl UserConfig { [INFO] [stderr] | --------------- methods in this implementation [INFO] [stderr] 1151 | /// Check if configuration is complete [INFO] [stderr] 1152 | pub fn is_complete(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1157 | pub fn compare(&self, other: &UserConfig) -> Vec { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ConfigDiff` is never constructed [INFO] [stderr] --> src/git/mod.rs:1190:12 [INFO] [stderr] | [INFO] [stderr] 1190 | pub struct ConfigDiff { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `group_by_type`, `add_category`, and `generate_and_prepend` are never used [INFO] [stderr] --> src/git/changelog.rs:70:12 [INFO] [stderr] | [INFO] [stderr] 39 | impl ChangelogGenerator { [INFO] [stderr] | ----------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 70 | pub fn group_by_type(mut self, group: bool) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 76 | pub fn add_category(mut self, title: impl Into, types: Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | pub fn generate_and_prepend( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `read_changelog` is never used [INFO] [stderr] --> src/git/changelog.rs:382:8 [INFO] [stderr] | [INFO] [stderr] 382 | pub fn read_changelog(path: &Path) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `update_version_links` is never used [INFO] [stderr] --> src/git/changelog.rs:416:8 [INFO] [stderr] | [INFO] [stderr] 416 | pub fn update_version_links( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_versions` is never used [INFO] [stderr] --> src/git/changelog.rs:426:8 [INFO] [stderr] | [INFO] [stderr] 426 | pub fn parse_versions(changelog: &str) -> Vec<(String, String)> { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_unreleased_changes` is never used [INFO] [stderr] --> src/git/changelog.rs:449:8 [INFO] [stderr] | [INFO] [stderr] 449 | pub fn get_unreleased_changes(repo: &GitRepo) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ChangelogEntry` is never constructed [INFO] [stderr] --> src/git/changelog.rs:460:12 [INFO] [stderr] | [INFO] [stderr] 460 | pub struct ChangelogEntry { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `with_date` are never used [INFO] [stderr] --> src/git/changelog.rs:468:12 [INFO] [stderr] | [INFO] [stderr] 466 | impl ChangelogEntry { [INFO] [stderr] | ------------------- associated items in this implementation [INFO] [stderr] 467 | /// Create new entry [INFO] [stderr] 468 | pub fn new(version: impl Into, commits: Vec) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 477 | pub fn with_date(mut self, date: DateTime) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `scope`, `body`, `footer`, `amend`, and `no_verify` are never used [INFO] [stderr] --> src/git/commit.rs:45:12 [INFO] [stderr] | [INFO] [stderr] 20 | impl CommitBuilder { [INFO] [stderr] | ------------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 45 | pub fn scope(mut self, scope: impl Into) -> Self { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 63 | pub fn body(mut self, body: impl Into) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 75 | pub fn footer(mut self, footer: impl Into) -> Self { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 99 | pub fn amend(mut self, amend: bool) -> Self { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | pub fn no_verify(mut self, no_verify: bool) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `suggest_commit_type` is never used [INFO] [stderr] --> src/git/commit.rs:230:8 [INFO] [stderr] | [INFO] [stderr] 230 | pub fn suggest_commit_type(diff: &str) -> Vec<&'static str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `to_message` is never used [INFO] [stderr] --> src/git/commit.rs:351:12 [INFO] [stderr] | [INFO] [stderr] 349 | impl ParsedCommit { [INFO] [stderr] | ----------------- method in this implementation [INFO] [stderr] 350 | /// Convert back to commit message [INFO] [stderr] 351 | pub fn to_message(&self, format: crate::config::CommitFormat) -> String { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `version_prefix` is never read [INFO] [stderr] --> src/git/tag.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 6 | pub struct TagBuilder { [INFO] [stderr] | ---------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 12 | version_prefix: String, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `version_prefix`, `version`, and `execute_and_push` are never used [INFO] [stderr] --> src/git/tag.rs:59:12 [INFO] [stderr] | [INFO] [stderr] 15 | impl TagBuilder { [INFO] [stderr] | --------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 59 | pub fn version_prefix(mut self, prefix: impl Into) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 65 | pub fn version(mut self, version: &Version) -> Self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 106 | pub fn execute_and_push(&self, repo: &GitRepo, remote: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `variants` is never used [INFO] [stderr] --> src/git/tag.rs:144:12 [INFO] [stderr] | [INFO] [stderr] 131 | impl VersionBump { [INFO] [stderr] | ---------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 144 | pub fn variants() -> &'static [&'static str] { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `generate_tag_message` is never used [INFO] [stderr] --> src/git/tag.rs:215:8 [INFO] [stderr] | [INFO] [stderr] 215 | pub fn generate_tag_message(version: &str, commits: &[super::CommitInfo]) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `delete_tag` is never used [INFO] [stderr] --> src/git/tag.rs:278:8 [INFO] [stderr] | [INFO] [stderr] 278 | pub fn delete_tag(repo: &GitRepo, name: &str, remote: Option<&str>) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `list_tags` is never used [INFO] [stderr] --> src/git/tag.rs:300:8 [INFO] [stderr] | [INFO] [stderr] 300 | pub fn list_tags( [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/i18n/messages.rs:660:12 [INFO] [stderr] | [INFO] [stderr] 7 | impl Messages { [INFO] [stderr] | ------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 660 | pub fn staged_files(&self, count: usize) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 672 | pub fn generating_commit_message(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 684 | pub fn generated_commit_message(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 696 | pub fn what_would_you_like_to_do(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 708 | pub fn accept_and_commit(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 720 | pub fn regenerate(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 732 | pub fn edit(&self) -> &str { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 744 | pub fn copy_to_clipboard(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 756 | pub fn cancel(&self) -> &str { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 768 | pub fn regenerating(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 780 | pub fn copied_to_clipboard(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 792 | pub fn cancelled_by_user(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1092 | pub fn model(&self) -> &str { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1104 | pub fn base_url(&self) -> &str { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1116 | pub fn configuration_updated(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1128 | pub fn set_value(&self, key: &str, value: &str) -> String { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `keep_types_english` is never read [INFO] [stderr] --> src/i18n/translator.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 3 | pub struct Translator { [INFO] [stderr] | ---------- field in this struct [INFO] [stderr] 4 | language: Language, [INFO] [stderr] 5 | keep_types_english: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/i18n/translator.rs:18:12 [INFO] [stderr] | [INFO] [stderr] 9 | impl Translator { [INFO] [stderr] | --------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 18 | pub fn translate_commit_type(&self, commit_type: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 50 | fn translate_commit_type_zh(&self, commit_type: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 67 | fn translate_commit_type_ja(&self, commit_type: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 84 | fn translate_commit_type_ko(&self, commit_type: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 101 | fn translate_commit_type_es(&self, commit_type: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 118 | fn translate_commit_type_fr(&self, commit_type: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 135 | fn translate_commit_type_de(&self, commit_type: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `translate_commit_type` is never used [INFO] [stderr] --> src/i18n/translator.rs:225:8 [INFO] [stderr] | [INFO] [stderr] 225 | pub fn translate_commit_type(commit_type: &str, language: Language, keep_english: bool) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `name` is never used [INFO] [stderr] --> src/llm/mod.rs:33:8 [INFO] [stderr] | [INFO] [stderr] 22 | pub trait LlmProvider: Send + Sync { [INFO] [stderr] | ----------- method in this trait [INFO] [stderr] ... [INFO] [stderr] 33 | fn name(&self) -> &str; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `config` is never read [INFO] [stderr] --> src/llm/mod.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 37 | pub struct LlmClient { [INFO] [stderr] | --------- field in this struct [INFO] [stderr] 38 | provider: Box, [INFO] [stderr] 39 | config: LlmClientConfig, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `max_tokens`, `temperature`, and `timeout` are never read [INFO] [stderr] --> src/llm/mod.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 43 | pub struct LlmClientConfig { [INFO] [stderr] | --------------- fields in this struct [INFO] [stderr] 44 | pub max_tokens: u32, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 45 | pub temperature: f32, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 46 | pub timeout: Duration, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `LlmClientConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `with_provider` is never used [INFO] [stderr] --> src/llm/mod.rs:113:12 [INFO] [stderr] | [INFO] [stderr] 59 | impl LlmClient { [INFO] [stderr] | -------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 113 | pub fn with_provider(provider: Box) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `to_commitlint` is never used [INFO] [stderr] --> src/llm/mod.rs:385:12 [INFO] [stderr] | [INFO] [stderr] 371 | impl GeneratedCommit { [INFO] [stderr] | -------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 385 | pub fn to_commitlint(&self) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `done` is never read [INFO] [stderr] --> src/llm/ollama.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 32 | struct GenerateResponse { [INFO] [stderr] | ---------------- field in this struct [INFO] [stderr] 33 | response: String, [INFO] [stderr] 34 | done: bool, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `GenerateResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `ListModelsResponse` is never constructed [INFO] [stderr] --> src/llm/ollama.rs:38:8 [INFO] [stderr] | [INFO] [stderr] 38 | struct ListModelsResponse { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ModelInfo` is never constructed [INFO] [stderr] --> src/llm/ollama.rs:43:8 [INFO] [stderr] | [INFO] [stderr] 43 | struct ModelInfo { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `with_timeout`, `list_models`, `pull_model`, and `model_exists` are never used [INFO] [stderr] --> src/llm/ollama.rs:61:12 [INFO] [stderr] | [INFO] [stderr] 47 | impl OllamaClient { [INFO] [stderr] | ----------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 61 | pub fn with_timeout(mut self, timeout: Duration) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 68 | pub async fn list_models(&self) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 92 | pub async fn pull_model(&self, model: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 117 | pub async fn model_exists(&self, model: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `with_timeout` is never used [INFO] [stderr] --> src/llm/openai.rs:68:12 [INFO] [stderr] | [INFO] [stderr] 54 | impl OpenAiClient { [INFO] [stderr] | ----------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 68 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `AzureOpenAiClient` is never constructed [INFO] [stderr] --> src/llm/openai.rs:212:12 [INFO] [stderr] | [INFO] [stderr] 212 | pub struct AzureOpenAiClient { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `chat_completion` are never used [INFO] [stderr] --> src/llm/openai.rs:222:12 [INFO] [stderr] | [INFO] [stderr] 220 | impl AzureOpenAiClient { [INFO] [stderr] | ---------------------- associated items in this implementation [INFO] [stderr] 221 | /// Create new Azure OpenAI client [INFO] [stderr] 222 | pub fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 239 | async fn chat_completion(&self, messages: Vec) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `with_timeout` and `list_models` are never used [INFO] [stderr] --> src/llm/anthropic.rs:68:12 [INFO] [stderr] | [INFO] [stderr] 55 | impl AnthropicClient { [INFO] [stderr] | -------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 68 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 74 | pub async fn list_models(&self) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `ANTHROPIC_MODELS` is never used [INFO] [stderr] --> src/llm/anthropic.rs:210:11 [INFO] [stderr] | [INFO] [stderr] 210 | pub const ANTHROPIC_MODELS: &[&str] = &[ [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_valid_model` is never used [INFO] [stderr] --> src/llm/anthropic.rs:220:8 [INFO] [stderr] | [INFO] [stderr] 220 | pub fn is_valid_model(model: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `with_timeout` are never used [INFO] [stderr] --> src/llm/kimi.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 54 | impl KimiClient { [INFO] [stderr] | --------------- associated items in this implementation [INFO] [stderr] 55 | /// Create new Kimi client [INFO] [stderr] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `KIMI_MODELS` is never used [INFO] [stderr] --> src/llm/kimi.rs:224:11 [INFO] [stderr] | [INFO] [stderr] 224 | pub const KIMI_MODELS: &[&str] = &[ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_valid_model` is never used [INFO] [stderr] --> src/llm/kimi.rs:231:8 [INFO] [stderr] | [INFO] [stderr] 231 | pub fn is_valid_model(model: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `with_timeout` are never used [INFO] [stderr] --> src/llm/deepseek.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 54 | impl DeepSeekClient { [INFO] [stderr] | ------------------- associated items in this implementation [INFO] [stderr] 55 | /// Create new DeepSeek client [INFO] [stderr] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `DEEPSEEK_MODELS` is never used [INFO] [stderr] --> src/llm/deepseek.rs:224:11 [INFO] [stderr] | [INFO] [stderr] 224 | pub const DEEPSEEK_MODELS: &[&str] = &[ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_valid_model` is never used [INFO] [stderr] --> src/llm/deepseek.rs:230:8 [INFO] [stderr] | [INFO] [stderr] 230 | pub fn is_valid_model(model: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `with_timeout` are never used [INFO] [stderr] --> src/llm/openrouter.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 54 | impl OpenRouterClient { [INFO] [stderr] | --------------------- associated items in this implementation [INFO] [stderr] 55 | /// Create new OpenRouter client [INFO] [stderr] 56 | pub fn new(api_key: &str, model: &str) -> Result { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 80 | pub fn with_timeout(mut self, timeout: Duration) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `OPENROUTER_MODELS` is never used [INFO] [stderr] --> src/llm/openrouter.rs:228:11 [INFO] [stderr] | [INFO] [stderr] 228 | pub const OPENROUTER_MODELS: &[&str] = &[ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_valid_model` is never used [INFO] [stderr] --> src/llm/openrouter.rs:242:8 [INFO] [stderr] | [INFO] [stderr] 242 | pub fn is_valid_model(_model: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_success` is never used [INFO] [stderr] --> src/utils/mod.rs:12:8 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn print_success(msg: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_error` is never used [INFO] [stderr] --> src/utils/mod.rs:17:8 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn print_error(msg: &str) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_warning` is never used [INFO] [stderr] --> src/utils/mod.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn print_warning(msg: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_info` is never used [INFO] [stderr] --> src/utils/mod.rs:27:8 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn print_info(msg: &str) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `confirm` is never used [INFO] [stderr] --> src/utils/mod.rs:32:8 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn confirm(prompt: &str) -> Result { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `input` is never used [INFO] [stderr] --> src/utils/mod.rs:43:8 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn input(prompt: &str) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_terminal` is never used [INFO] [stderr] --> src/utils/mod.rs:64:8 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn is_terminal() -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `format_duration` is never used [INFO] [stderr] --> src/utils/mod.rs:69:8 [INFO] [stderr] | [INFO] [stderr] 69 | pub fn format_duration(secs: u64) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `encrypt_to_file` is never used [INFO] [stderr] --> src/utils/crypto.rs:82:8 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn encrypt_to_file(data: &[u8], password: &str, path: &Path) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `decrypt_from_file` is never used [INFO] [stderr] --> src/utils/crypto.rs:90:8 [INFO] [stderr] | [INFO] [stderr] 90 | pub fn decrypt_from_file(path: &Path, password: &str) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `generate_token` is never used [INFO] [stderr] --> src/utils/crypto.rs:97:8 [INFO] [stderr] | [INFO] [stderr] 97 | pub fn generate_token(length: usize) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `sha256` is never used [INFO] [stderr] --> src/utils/crypto.rs:110:8 [INFO] [stderr] | [INFO] [stderr] 110 | pub fn sha256(data: &[u8]) -> String { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `edit_temp` is never used [INFO] [stderr] --> src/utils/editor.rs:25:8 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn edit_temp(initial_content: &str, extension: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_editor` is never used [INFO] [stderr] --> src/utils/editor.rs:39:8 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn get_editor() -> String { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `check_editor` is never used [INFO] [stderr] --> src/utils/editor.rs:66:8 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn check_editor() -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `wrap_text` is never used [INFO] [stderr] --> src/utils/formatter.rs:69:8 [INFO] [stderr] | [INFO] [stderr] 69 | pub fn wrap_text(text: &str, width: usize) -> String { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `clean_message` is never used [INFO] [stderr] --> src/utils/formatter.rs:74:8 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn clean_message(message: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `status` and `has_api_key` are never used [INFO] [stderr] --> src/utils/keyring.rs:65:12 [INFO] [stderr] | [INFO] [stderr] 19 | impl KeyringManager { [INFO] [stderr] | ------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 65 | pub fn status(&self) -> KeyringStatus { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 122 | pub fn has_api_key(&self, provider: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `validate_scope` is never used [INFO] [stderr] --> src/utils/validators.rs:136:8 [INFO] [stderr] | [INFO] [stderr] 136 | pub fn validate_scope(scope: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `validate_gpg_key_id` is never used [INFO] [stderr] --> src/utils/validators.rs:172:8 [INFO] [stderr] | [INFO] [stderr] 172 | pub fn validate_gpg_key_id(key_id: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_valid_commit_type` is never used [INFO] [stderr] --> src/utils/validators.rs:198:8 [INFO] [stderr] | [INFO] [stderr] 198 | pub fn is_valid_commit_type(commit_type: &str, use_commitlint: bool) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `quicommit` (bin "quicommit") generated 95 warnings (run `cargo fix --bin "quicommit" -p quicommit` to apply 5 suggestions) [INFO] [stderr] warning: methods `get_token` and `usage_stats` are never used [INFO] [stderr] --> src/config/profile.rs:134:12 [INFO] [stderr] | [INFO] [stderr] 54 | impl GitProfile { [INFO] [stderr] | --------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 134 | pub fn get_token(&self, service: &str) -> Option<&TokenConfig> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 155 | pub fn usage_stats(&self) -> &UsageStats { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `git_ssh_command` is never used [INFO] [stderr] --> src/config/profile.rs:368:12 [INFO] [stderr] | [INFO] [stderr] 349 | impl SshConfig { [INFO] [stderr] | -------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 368 | pub fn git_ssh_command(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `program` is never used [INFO] [stderr] --> src/config/profile.rs:418:12 [INFO] [stderr] | [INFO] [stderr] 410 | impl GpgConfig { [INFO] [stderr] | -------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 418 | pub fn program(&self) -> &str { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `without_token`, `record_usage`, and `set_has_token` are never used [INFO] [stderr] --> src/config/profile.rs:465:12 [INFO] [stderr] | [INFO] [stderr] 451 | impl TokenConfig { [INFO] [stderr] | ---------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 465 | pub fn without_token(token_type: TokenType) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 485 | pub fn record_usage(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 490 | pub fn set_has_token(&mut self, has_token: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/config/profile.rs:600:12 [INFO] [stderr] | [INFO] [stderr] 584 | impl GitProfileBuilder { [INFO] [stderr] | ---------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 600 | pub fn settings(mut self, settings: ProfileSettings) -> Self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 605 | pub fn ssh(mut self, ssh: SshConfig) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 610 | pub fn gpg(mut self, gpg: GpgConfig) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 615 | pub fn signing_key(mut self, key: impl Into) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 625 | pub fn work(mut self, is_work: bool) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 630 | pub fn organization(mut self, org: impl Into) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 635 | pub fn token(mut self, service: impl Into, token: TokenConfig) -> Self { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:62:28 [INFO] [stderr] | [INFO] [stderr] 62 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:73:32 [INFO] [stderr] | [INFO] [stderr] 73 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:86:32 [INFO] [stderr] | [INFO] [stderr] 86 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:95:32 [INFO] [stderr] | [INFO] [stderr] 95 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:109:32 [INFO] [stderr] | [INFO] [stderr] 109 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:125:32 [INFO] [stderr] | [INFO] [stderr] 125 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:138:32 [INFO] [stderr] | [INFO] [stderr] 138 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:155:32 [INFO] [stderr] | [INFO] [stderr] 155 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:167:32 [INFO] [stderr] | [INFO] [stderr] 167 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:171:32 [INFO] [stderr] | [INFO] [stderr] 171 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:187:32 [INFO] [stderr] | [INFO] [stderr] 187 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:200:32 [INFO] [stderr] | [INFO] [stderr] 200 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:204:32 [INFO] [stderr] | [INFO] [stderr] 204 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:221:32 [INFO] [stderr] | [INFO] [stderr] 221 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:225:32 [INFO] [stderr] | [INFO] [stderr] 225 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:238:32 [INFO] [stderr] | [INFO] [stderr] 238 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:242:32 [INFO] [stderr] | [INFO] [stderr] 242 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:259:32 [INFO] [stderr] | [INFO] [stderr] 259 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:263:32 [INFO] [stderr] | [INFO] [stderr] 263 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:281:32 [INFO] [stderr] | [INFO] [stderr] 281 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:299:32 [INFO] [stderr] | [INFO] [stderr] 299 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:317:32 [INFO] [stderr] | [INFO] [stderr] 317 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:335:32 [INFO] [stderr] | [INFO] [stderr] 335 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:339:32 [INFO] [stderr] | [INFO] [stderr] 339 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:361:32 [INFO] [stderr] | [INFO] [stderr] 361 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:385:32 [INFO] [stderr] | [INFO] [stderr] 385 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:407:32 [INFO] [stderr] | [INFO] [stderr] 407 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:424:32 [INFO] [stderr] | [INFO] [stderr] 424 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:438:32 [INFO] [stderr] | [INFO] [stderr] 438 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:452:32 [INFO] [stderr] | [INFO] [stderr] 452 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:526:32 [INFO] [stderr] | [INFO] [stderr] 526 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:544:32 [INFO] [stderr] | [INFO] [stderr] 544 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:566:32 [INFO] [stderr] | [INFO] [stderr] 566 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:580:32 [INFO] [stderr] | [INFO] [stderr] 580 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:593:32 [INFO] [stderr] | [INFO] [stderr] 593 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:597:32 [INFO] [stderr] | [INFO] [stderr] 597 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:614:32 [INFO] [stderr] | [INFO] [stderr] 614 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:630:32 [INFO] [stderr] | [INFO] [stderr] 630 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:634:32 [INFO] [stderr] | [INFO] [stderr] 634 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/integration_tests.rs:652:32 [INFO] [stderr] | [INFO] [stderr] 652 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:35:28 [INFO] [stderr] | [INFO] [stderr] 35 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:49:32 [INFO] [stderr] | [INFO] [stderr] 49 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:65:32 [INFO] [stderr] | [INFO] [stderr] 65 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:91:32 [INFO] [stderr] | [INFO] [stderr] 91 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:167:32 [INFO] [stderr] | [INFO] [stderr] 167 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:178:32 [INFO] [stderr] | [INFO] [stderr] 178 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:194:32 [INFO] [stderr] | [INFO] [stderr] 194 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:201:32 [INFO] [stderr] | [INFO] [stderr] 201 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:210:32 [INFO] [stderr] | [INFO] [stderr] 210 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:221:32 [INFO] [stderr] | [INFO] [stderr] 221 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:236:32 [INFO] [stderr] | [INFO] [stderr] 236 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:245:32 [INFO] [stderr] | [INFO] [stderr] 245 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:270:32 [INFO] [stderr] | [INFO] [stderr] 270 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:277:32 [INFO] [stderr] | [INFO] [stderr] 277 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:286:32 [INFO] [stderr] | [INFO] [stderr] 286 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:294:32 [INFO] [stderr] | [INFO] [stderr] 294 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:311:32 [INFO] [stderr] | [INFO] [stderr] 311 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:318:32 [INFO] [stderr] | [INFO] [stderr] 318 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:325:32 [INFO] [stderr] | [INFO] [stderr] 325 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:338:32 [INFO] [stderr] | [INFO] [stderr] 338 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:347:32 [INFO] [stderr] | [INFO] [stderr] 347 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/config_export_import_tests.rs:353:32 [INFO] [stderr] | [INFO] [stderr] 353 | let mut cmd = Command::cargo_bin("quicommit").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `create_git_repo` is never used [INFO] [stderr] --> tests/config_export_import_tests.rs:7:4 [INFO] [stderr] | [INFO] [stderr] 7 | fn create_git_repo(dir: &PathBuf) -> std::process::Output { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `configure_git_user` is never used [INFO] [stderr] --> tests/config_export_import_tests.rs:15:4 [INFO] [stderr] | [INFO] [stderr] 15 | fn configure_git_user(dir: &PathBuf) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `setup_git_repo` is never used [INFO] [stderr] --> tests/config_export_import_tests.rs:29:4 [INFO] [stderr] | [INFO] [stderr] 29 | fn setup_git_repo(dir: &PathBuf) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `quicommit` (bin "quicommit" test) generated 86 warnings (81 duplicates) [INFO] [stderr] warning: `quicommit` (test "integration_tests") generated 40 warnings [INFO] [stderr] warning: `quicommit` (test "config_export_import_tests") generated 25 warnings [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.55s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/quicommit-f12ddc0307e62571) [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test config::profile::tests::test_token_config ... ok [INFO] [stdout] test llm::anthropic::tests::test_model_validation ... ok [INFO] [stdout] test config::profile::tests::test_profile_validation ... ok [INFO] [stdout] test llm::ollama::tests::test_ollama_connection ... ignored [INFO] [stdout] test llm::ollama::tests::test_ollama_generate ... ignored [INFO] [stdout] test llm::deepseek::tests::test_model_validation ... ok [INFO] [stdout] test utils::formatter::tests::test_format_conventional_commit ... ok [INFO] [stdout] test utils::formatter::tests::test_format_conventional_commit_breaking ... ok [INFO] [stdout] test llm::kimi::tests::test_model_validation ... ok [INFO] [stdout] test utils::keyring::tests::test_get_default_base_url ... ok [INFO] [stdout] test utils::crypto::tests::test_wrong_password ... ok [INFO] [stdout] test utils::crypto::tests::test_encrypt_decrypt ... ok [INFO] [stdout] test utils::validators::tests::test_validate_email ... ok [INFO] [stdout] test utils::validators::tests::test_validate_profile_name ... ok [INFO] [stdout] test utils::keyring::tests::test_provider_needs_api_key ... ok [INFO] [stdout] test utils::validators::tests::test_validate_conventional_commit ... ok [INFO] [stdout] test llm::openrouter::tests::test_model_validation ... ok [INFO] [stdout] test utils::validators::tests::test_validate_semver ... ok [INFO] [stdout] test config::profile::tests::test_profile_builder ... ok [INFO] [stdout] test utils::keyring::tests::test_get_default_model ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 18 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/config_export_import_tests.rs (/opt/rustwide/target/debug/deps/config_export_import_tests-48dd5a419f3a96bb) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test config_import::test_import_plain_config ... ok [INFO] [stdout] test config_export::test_export_to_file ... ok [INFO] [stdout] test config_export::test_export_encrypted ... ok [INFO] [stdout] test config_export::test_export_to_stdout ... ok [INFO] [stdout] test config_export_import_roundtrip::test_roundtrip_plain ... ok [INFO] [stdout] test config_import::test_import_encrypted_config ... ok [INFO] [stdout] test config_export_import_roundtrip::test_roundtrip_encrypted ... ok [INFO] [stdout] test config_import::test_import_encrypted_wrong_password ... ok [INFO] [stdout] [INFO] [stderr] Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-2483ab6f6cb342fd) [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 34 tests [INFO] [stdout] test edge_cases::test_config_file_not_found ... ok [INFO] [stdout] test cli_basic::test_verbose_flag ... ok [INFO] [stdout] test cli_basic::test_version ... ok [INFO] [stdout] test cli_basic::test_help ... ok [INFO] [stdout] test git_operations::test_git_repo_detection ... ok [INFO] [stdout] test cli_basic::test_no_args_shows_help ... ok [INFO] [stdout] test cross_platform::test_config_with_unicode_path ... ok [INFO] [stdout] test git_operations::test_git_commit_creation ... ok [INFO] [stdout] test cross_platform::test_config_with_spaces_in_path ... ok [INFO] [stdout] test init_command::test_init_quick ... ok [INFO] [stdout] test cross_platform::test_path_handling_windows_style ... ok [INFO] [stdout] test changelog_command::test_changelog_dry_run ... ok [INFO] [stdout] test config_command::test_config_show ... ok [INFO] [stdout] test git_operations::test_git_status_clean ... ok [INFO] [stdout] test init_command::test_init_creates_config_file ... ok [INFO] [stdout] test profile_command::test_profile_list_empty ... ok [INFO] [stdout] test commit_command::test_commit_with_staged_changes ... ok [INFO] [stdout] test config_command::test_config_path ... ok [INFO] [stdout] test subcommands::test_init_alias ... ok [INFO] [stdout] test init_command::test_init_in_git_repo ... ok [INFO] [stdout] test edge_cases::test_invalid_git_repo ... ok [INFO] [stdout] test profile_command::test_profile_list_with_profile ... ok [INFO] [stdout] test tag_command::test_tag_list_empty ... ok [INFO] [stdout] test edge_cases::test_empty_commit_message ... ok [INFO] [stdout] test changelog_command::test_changelog_init ... ok [INFO] [stdout] test subcommands::test_profile_alias ... ok [INFO] [stdout] test commit_command::test_commit_no_changes ... ok [INFO] [stdout] test init_command::test_init_reset ... ok [INFO] [stdout] test validators::test_valid_conventional_commit ... ok [INFO] [stdout] test commit_command::test_commit_date_mode ... ok [INFO] [stdout] test subcommands::test_commit_alias ... ok [INFO] [stdout] test validators::test_commit_message_validation ... ok [INFO] [stdout] test commit_command::test_commit_no_repo ... ok [INFO] [stdout] test tag_command::test_tag_no_repo ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.13s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "017fb1cb55c41b3a4e8f5d4ffa842cc5a3547f45eb1d740eca2aefb71398429e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "017fb1cb55c41b3a4e8f5d4ffa842cc5a3547f45eb1d740eca2aefb71398429e", kill_on_drop: false }` [INFO] [stdout] 017fb1cb55c41b3a4e8f5d4ffa842cc5a3547f45eb1d740eca2aefb71398429e