[INFO] fetching crate cargo-mate 1.7.9...
[INFO] checking cargo-mate-1.7.9 against master#8b6b15b877fbceb1ee5d9a5a4746e7515901574a for pr-147294
[INFO] extracting crate cargo-mate 1.7.9 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate cargo-mate 1.7.9
[INFO] finished tweaking crates.io crate cargo-mate 1.7.9
[INFO] tweaked toml for crates.io crate cargo-mate 1.7.9 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate cargo-mate 1.7.9 on toolchain 8b6b15b877fbceb1ee5d9a5a4746e7515901574a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8b6b15b877fbceb1ee5d9a5a4746e7515901574a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate cargo-mate 1.7.9 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" "+8b6b15b877fbceb1ee5d9a5a4746e7515901574a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded stability v0.2.1
[INFO] [stderr]   Downloaded compact_str v0.7.1
[INFO] [stderr]   Downloaded handlebars v5.1.2
[INFO] [stderr]   Downloaded camino v1.1.11
[INFO] [stderr]   Downloaded ratatui v0.26.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+8b6b15b877fbceb1ee5d9a5a4746e7515901574a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2dcb58043a34aed30575ea9ae2de4297de459c4e43f48d8bab500ebfe032b423
[INFO] running `Command { std: "docker" "start" "-a" "2dcb58043a34aed30575ea9ae2de4297de459c4e43f48d8bab500ebfe032b423", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2dcb58043a34aed30575ea9ae2de4297de459c4e43f48d8bab500ebfe032b423", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2dcb58043a34aed30575ea9ae2de4297de459c4e43f48d8bab500ebfe032b423", kill_on_drop: false }`
[INFO] [stdout] 2dcb58043a34aed30575ea9ae2de4297de459c4e43f48d8bab500ebfe032b423
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+8b6b15b877fbceb1ee5d9a5a4746e7515901574a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 75e84fec6a0456a54dae2c3ab7aff04a0859da69a43458a6d6c7dfa83a731808
[INFO] running `Command { std: "docker" "start" "-a" "75e84fec6a0456a54dae2c3ab7aff04a0859da69a43458a6d6c7dfa83a731808", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]     Checking cfg-if v1.0.3
[INFO] [stderr]    Compiling serde_core v1.0.226
[INFO] [stderr]    Compiling serde v1.0.226
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking bitflags v2.9.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking opaque-debug v0.3.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking indexmap v2.10.0
[INFO] [stderr]     Checking unicode-ident v1.0.18
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking socket2 v0.6.0
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking termios v0.2.2
[INFO] [stderr]     Checking serial-core v0.4.0
[INFO] [stderr]     Checking ioctl-rs v0.1.6
[INFO] [stderr]     Checking filetime v0.2.26
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking predicates-core v1.0.9
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]     Checking anstyle-query v1.1.4
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]    Compiling camino v1.1.11
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking anstream v0.6.20
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking serial-unix v0.4.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking inotify v0.9.6
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking quote v1.0.40
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking difflib v0.4.0
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking normalize-line-endings v0.3.0
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]     Checking winnow v0.7.12
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking unicode-segmentation v1.12.0
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]     Checking unicode-width v0.2.1
[INFO] [stderr]     Checking ucd-trie v0.1.7
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking clap_builder v4.5.44
[INFO] [stderr]     Checking xattr v1.5.1
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking notify v6.1.1
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking compact_str v0.7.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling tempfile v3.21.0
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking serial v0.4.0
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]    Compiling cargo-mate v1.7.9 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking chacha20 v0.9.1
[INFO] [stderr]     Checking poly1305 v0.8.0
[INFO] [stderr]     Checking rtoolbox v0.0.3
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking number_prefix v0.4.0
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking webpki-roots v0.25.4
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking home v0.5.11
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]     Checking arrayref v0.3.9
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking shell-words v1.1.0
[INFO] [stderr]     Checking constant_time_eq v0.3.1
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]    Compiling doc-comment v0.3.3
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]     Checking chacha20poly1305 v0.10.1
[INFO] [stderr]     Checking rpassword v7.4.0
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking notify-debouncer-mini v0.4.1
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking which v6.0.3
[INFO] [stderr]     Checking tar v0.4.44
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking uuid v1.18.0
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking subprocess v0.2.9
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking glob v0.3.3
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking termtree v0.5.1
[INFO] [stderr]     Checking dotenvy v0.15.7
[INFO] [stderr]    Compiling assert_cmd v2.0.17
[INFO] [stderr]     Checking bstr v1.12.0
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking predicates-tree v1.0.12
[INFO] [stderr]     Checking predicates v3.1.3
[INFO] [stderr]    Compiling serde_derive v1.0.226
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling stability v0.2.1
[INFO] [stderr]    Compiling clap_derive v4.5.45
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling pest v2.8.1
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking filedescriptor v0.8.3
[INFO] [stderr]     Checking portable-pty v0.8.1
[INFO] [stderr]     Checking zerovec v0.11.4
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking ratatui v0.26.3
[INFO] [stderr]     Checking clap v4.5.45
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking cargo-platform v0.1.9
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]    Compiling pest_meta v2.8.1
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking rustc_version v0.4.1
[INFO] [stderr]    Compiling pest_generator v2.8.1
[INFO] [stderr]     Checking cargo_metadata v0.18.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]    Compiling pest_derive v2.8.1
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking handlebars v5.1.2
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking rusqlite v0.31.0
[INFO] [stdout] warning: unexpected `cfg` condition value: `wasm`
[INFO] [stdout]   --> src/lib.rs:21:35
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[cfg(all(target_arch = "wasm32", feature = "wasm"))]
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `console_log`, `default`, `embedded_binary`, `pristine`, and `shine`
[INFO] [stdout]    = help: consider adding `wasm` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/captain/captain.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LogAnalysis`
[INFO] [stdout]   --> src/captain/captain.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |     CaptainLog, LogAnalysis, BuildResult, ExportFormat, show_build_health_dashboard,
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::version`
[INFO] [stdout]   --> src/captain/captain.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::version;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/captain/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub use captain_log::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ the name `ParsedError` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 43 | pub use parser::*;
[INFO] [stdout]    |         --------- but the name `ParsedError` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/captain/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub use captain_log::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ the name `CargoMessage` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 43 | pub use parser::*;
[INFO] [stdout]    |         --------- but the name `CargoMessage` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `create_secure_binary::*`
[INFO] [stdout]   --> src/captain/mod.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub use create_secure_binary::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `create_self_protected_binary::*`
[INFO] [stdout]   --> src/captain/mod.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub use create_self_protected_binary::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encrypt_binaries::*`
[INFO] [stdout]   --> src/captain/mod.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub use encrypt_binaries::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> src/cmd/anchor.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cmd/utils.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono`
[INFO] [stdout]  --> src/cmd/utils.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/cmd/utils.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/cmd/utils.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::captain::license`
[INFO] [stdout]  --> src/cmd/utils.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::captain::license;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::captain::wtf`
[INFO] [stdout]  --> src/cmd/utils.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::captain::wtf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/cmd/captain.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LogAnalysis`
[INFO] [stdout]   --> src/cmd/captain.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |     CaptainLog, LogAnalysis, BuildResult, ExportFormat, show_build_health_dashboard,
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::version`
[INFO] [stdout]   --> src/cmd/captain.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::version;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cmd/init.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/cmd/init.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::captain::config::ConfigManager`
[INFO] [stdout]  --> src/cmd/init.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::captain::config::ConfigManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cmd/idea.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> src/cmd/idea.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/cmd/idea.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> src/cmd/register.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cmd::init::is_build_process`
[INFO] [stdout]  --> src/cmd/register.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cmd::init::is_build_process;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cmd/ddr.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context, bail};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/cmd/ddr.rs:6:33
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> src/cmd/ddr.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::process::{Command, Stdio};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]   --> src/display.rs:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]    |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> src/display.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CommandBuilder`, `PtySize`, and `native_pty_system`
[INFO] [stdout]  --> src/journey.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use portable_pty::{native_pty_system, CommandBuilder, PtySize};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]   --> src/journey.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::{BufReader, Write};
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/journey.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> src/mutiny.rs:7:29
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::process::{Command, Stdio};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/probe.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cargo_metadata::MetadataCommand`
[INFO] [stdout]   --> src/probe.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use cargo_metadata::MetadataCommand;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::SeedableRng`
[INFO] [stdout]   --> src/probe.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rand::SeedableRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_chacha::ChaCha20Rng`
[INFO] [stdout]   --> src/probe.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use rand_chacha::ChaCha20Rng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::fs::MetadataExt`
[INFO] [stdout]   --> src/scrubme/mod.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         use std::os::unix::fs::MetadataExt;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Parser`
[INFO] [stdout]  --> src/scat.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use clap::{Parser, Subcommand};
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cmd::smune::ScrubAction`
[INFO] [stdout]  --> src/scrub.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cmd::smune::ScrubAction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reqwest`
[INFO] [stdout]  --> src/smart_parser.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use reqwest;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/sweeping/src/away.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Expr` and `Stmt`
[INFO] [stdout]   --> src/sweeping/src/away.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 | use syn::{visit_mut::VisitMut, Expr, ExprMacro, Stmt};
[INFO] [stdout]    |                                ^^^^             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: private item shadows public glob re-export
[INFO] [stdout]     --> src/sweeping/src/away.rs:1090:1
[INFO] [stdout]      |
[INFO] [stdout] 1090 | / fn main() -> Result<()> {
[INFO] [stdout] 1091 | |     let cli = Cli::parse();
[INFO] [stdout] 1092 | |     run_with_cli(cli)
[INFO] [stdout] 1093 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout] note: the name `main` in the value namespace is supposed to be publicly re-exported here
[INFO] [stdout]     --> src/sweeping/src/away.rs:13:9
[INFO] [stdout]      |
[INFO] [stdout]   13 | pub use crate::*;
[INFO] [stdout]      |         ^^^^^^^^
[INFO] [stdout] note: but the private item here shadows it
[INFO] [stdout]     --> src/sweeping/src/away.rs:1090:1
[INFO] [stdout]      |
[INFO] [stdout] 1090 | / fn main() -> Result<()> {
[INFO] [stdout] 1091 | |     let cli = Cli::parse();
[INFO] [stdout] 1092 | |     run_with_cli(cli)
[INFO] [stdout] 1093 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      = note: `#[warn(hidden_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/sweeping/src/embedder.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::ToTokens`
[INFO] [stdout]  --> src/tools/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use quote::ToTokens;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/tools/cross_test.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> src/tools/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub mod cross_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/tools/cross_test.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> src/tools/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub mod cross_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap`, `HashSet`, and `VecDeque`
[INFO] [stdout]  --> src/tools/refactor_engine.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, `ItemImpl`, `ItemMod`, `Item`, and `PathSegment`
[INFO] [stdout]   --> src/tools/refactor_engine.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 |     parse_file, File, Item, ItemFn, ItemStruct, ItemTrait, ItemImpl, ItemMod, Fields,
[INFO] [stdout]    |                 ^^^^  ^^^^                                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 12 |     Type, PathSegment, Ident, visit::Visit,
[INFO] [stdout]    |           ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `File`, `Ident`, `Item`, and `PathSegment`
[INFO] [stdout]  --> src/tools/rust_mentor.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemFn, ItemStruct, ItemTrait, Fields, Field, Type,
[INFO] [stdout]   |                 ^^^^  ^^^^                                         ^^^^^
[INFO] [stdout] 9 |     PathSegment, Ident, visit::Visit,
[INFO] [stdout]   |     ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OutputFormat` and `parse_output_format`
[INFO] [stdout]  --> src/tools/release_automation.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/bloat_check.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/cache_analyzer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprAwait`, `ExprCall`, `ItemFn`, `Type`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/async_lint.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, visit::Visit, ItemFn, ExprAwait, ExprCall, Type, spanned::Spanned};
[INFO] [stdout]   |                                     ^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::ToTokens`
[INFO] [stdout]  --> src/tools/async_lint.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::ToTokens;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, and `PathSegment`
[INFO] [stdout]  --> src/tools/crud_gen.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident};
[INFO] [stdout]   |                       ^^^^                                         ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/crud_gen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/crud_gen.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `Fields`, `File`, `Ident`, `ItemStruct`, `Item`, `PathSegment`, `Type`, and `parse_file`
[INFO] [stdout]  --> src/tools/proto_bind.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use syn::{parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^  ^^^^^^^^^^  ^^^^^^  ^^^^^  ^^^^  ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/proto_bind.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/proto_bind.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File` and `Item`
[INFO] [stdout]  --> src/tools/error_derive.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, File, Item, ItemFn, ItemImpl, ReturnType, Type, visit::Visit};
[INFO] [stdout]   |                       ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/error_derive.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/error_derive.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, `PathSegment`, and `visit::Visit`
[INFO] [stdout]  --> src/tools/builder_gen.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident,
[INFO] [stdout]   |                 ^^^^                                         ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 8 |     visit::Visit,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/builder_gen.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/builder_gen.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `Fields`, `File`, `Ident`, `Item`, `PathSegment`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/example_gen.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parse_file, File, Item, ItemFn, Fields, Field, Type, PathSegment, Ident,
[INFO] [stdout]   |                 ^^^^  ^^^^          ^^^^^^  ^^^^^        ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 8 |     visit::Visit, spanned::Spanned,
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/example_gen.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/example_gen.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `File`, `Ident`, `Item`, `PathSegment`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/api_changelog.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemFn, ItemStruct, ItemEnum, Fields, Field, Type,
[INFO] [stdout]   |                 ^^^^  ^^^^                                        ^^^^^
[INFO] [stdout] 9 |     PathSegment, Ident, visit::Visit, spanned::Spanned,
[INFO] [stdout]   |     ^^^^^^^^^^^  ^^^^^                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/api_changelog.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/api_changelog.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Item`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/trait_explorer.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemTrait, ItemImpl, TraitItem, visit::Visit,
[INFO] [stdout]   |                 ^^^^  ^^^^
[INFO] [stdout] 9 |     spanned::Spanned,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/trait_explorer.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/trait_explorer.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]  --> src/tools/feature_map.rs:4:42
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glob`
[INFO] [stdout]  --> src/tools/vendorize.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use glob;
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ItemMacro`
[INFO] [stdout]  --> src/tools/macro_expand.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, visit::Visit, ItemMacro, Macro};
[INFO] [stdout]   |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToTokens`
[INFO] [stdout]  --> src/tools/macro_expand.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use quote::{quote, ToTokens};
[INFO] [stdout]   |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/lifetime_visualizer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Lifetime` and `TypeReference`
[INFO] [stdout]  --> src/tools/lifetime_visualizer.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, visit::Visit, ItemFn, Lifetime, TypeReference, FnArg, ReturnType,
[INFO] [stdout]   |                                       ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FnArg`, `ItemTrait`, `Pat`, `TraitItem`, and `Type`
[INFO] [stdout]  --> src/tools/mock_derive.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, ItemTrait, TraitItem, FnArg, Pat, Type};
[INFO] [stdout]   |                       ^^^^^^^^^  ^^^^^^^^^  ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/mock_derive.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tools/coverage_guard.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/tools/wasm_optimize.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path as SynPath`
[INFO] [stdout]  --> src/tools/migration_gen.rs:7:62
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, Item, ItemStruct, Fields, Field, Type, Path as SynPath};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Attribute`, `Fields`, `ItemStruct`, `Type`, and `parse2`
[INFO] [stdout]  --> src/tools/serde_validator.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, parse2, Item, ItemStruct, Fields, Field, Type, Attribute, Meta};
[INFO] [stdout]   |                       ^^^^^^        ^^^^^^^^^^  ^^^^^^         ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Map` and `Value`
[INFO] [stdout]  --> src/tools/serde_validator.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use serde_json::{Value, Map};
[INFO] [stdout]   |                  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/sql_macro_check.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ItemMacro`, `Item`, `Lit`, and `parse_file`
[INFO] [stdout]  --> src/tools/sql_macro_check.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use syn::{parse_file, Item, ItemMacro, Lit};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/secret_scanner.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/secret_scanner.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FnArg`, `ItemFn`, `Item`, `Pat`, `Type`, and `parse_file`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, Item, ItemFn, FnArg, Pat, Type, visit::Visit, visit};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^^^  ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OutputFormat` and `parse_output_format`
[INFO] [stdout]  --> src/tools/code_analyzer.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/code_analyzer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `wasm`
[INFO] [stdout]   --> src/lib.rs:21:35
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[cfg(all(target_arch = "wasm32", feature = "wasm"))]
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `console_log`, `default`, `embedded_binary`, `pristine`, and `shine`
[INFO] [stdout]    = help: consider adding `wasm` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/captain/captain.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LogAnalysis`
[INFO] [stdout]   --> src/captain/captain.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |     CaptainLog, LogAnalysis, BuildResult, ExportFormat, show_build_health_dashboard,
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::version`
[INFO] [stdout]   --> src/captain/captain.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::version;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/captain/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub use captain_log::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ the name `ParsedError` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 43 | pub use parser::*;
[INFO] [stdout]    |         --------- but the name `ParsedError` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/captain/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub use captain_log::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ the name `CargoMessage` in the type namespace is first re-exported here
[INFO] [stdout] ...
[INFO] [stdout] 43 | pub use parser::*;
[INFO] [stdout]    |         --------- but the name `CargoMessage` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `create_secure_binary::*`
[INFO] [stdout]   --> src/captain/mod.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub use create_secure_binary::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `create_self_protected_binary::*`
[INFO] [stdout]   --> src/captain/mod.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub use create_self_protected_binary::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encrypt_binaries::*`
[INFO] [stdout]   --> src/captain/mod.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub use encrypt_binaries::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> src/cmd/anchor.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cmd/utils.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono`
[INFO] [stdout]  --> src/cmd/utils.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/cmd/utils.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/cmd/utils.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::captain::license`
[INFO] [stdout]  --> src/cmd/utils.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::captain::license;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::captain::wtf`
[INFO] [stdout]  --> src/cmd/utils.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::captain::wtf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/cmd/captain.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LogAnalysis`
[INFO] [stdout]   --> src/cmd/captain.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |     CaptainLog, LogAnalysis, BuildResult, ExportFormat, show_build_health_dashboard,
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::version`
[INFO] [stdout]   --> src/cmd/captain.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::version;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cmd/init.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/cmd/init.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::captain::config::ConfigManager`
[INFO] [stdout]  --> src/cmd/init.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::captain::config::ConfigManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cmd/idea.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> src/cmd/idea.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/cmd/idea.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> src/cmd/register.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cmd::init::is_build_process`
[INFO] [stdout]  --> src/cmd/register.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cmd::init::is_build_process;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cmd/ddr.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context, bail};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/cmd/ddr.rs:6:33
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> src/cmd/ddr.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::process::{Command, Stdio};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]   --> src/display.rs:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]    |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> src/display.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::path::PathBuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CommandBuilder`, `PtySize`, and `native_pty_system`
[INFO] [stdout]  --> src/journey.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use portable_pty::{native_pty_system, CommandBuilder, PtySize};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]   --> src/journey.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::io::{BufReader, Write};
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/journey.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stdio`
[INFO] [stdout]  --> src/mutiny.rs:7:29
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::process::{Command, Stdio};
[INFO] [stdout]   |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/probe.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cargo_metadata::MetadataCommand`
[INFO] [stdout]   --> src/probe.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use cargo_metadata::MetadataCommand;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::SeedableRng`
[INFO] [stdout]   --> src/probe.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rand::SeedableRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_chacha::ChaCha20Rng`
[INFO] [stdout]   --> src/probe.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use rand_chacha::ChaCha20Rng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::fs::MetadataExt`
[INFO] [stdout]   --> src/scrubme/mod.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         use std::os::unix::fs::MetadataExt;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Parser`
[INFO] [stdout]  --> src/scat.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use clap::{Parser, Subcommand};
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cmd::smune::ScrubAction`
[INFO] [stdout]  --> src/scrub.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cmd::smune::ScrubAction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reqwest`
[INFO] [stdout]  --> src/smart_parser.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use reqwest;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/sweeping/src/away.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Expr` and `Stmt`
[INFO] [stdout]   --> src/sweeping/src/away.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 | use syn::{visit_mut::VisitMut, Expr, ExprMacro, Stmt};
[INFO] [stdout]    |                                ^^^^             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: private item shadows public glob re-export
[INFO] [stdout]     --> src/sweeping/src/away.rs:1090:1
[INFO] [stdout]      |
[INFO] [stdout] 1090 | / fn main() -> Result<()> {
[INFO] [stdout] 1091 | |     let cli = Cli::parse();
[INFO] [stdout] 1092 | |     run_with_cli(cli)
[INFO] [stdout] 1093 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout] note: the name `main` in the value namespace is supposed to be publicly re-exported here
[INFO] [stdout]     --> src/sweeping/src/away.rs:13:9
[INFO] [stdout]      |
[INFO] [stdout]   13 | pub use crate::*;
[INFO] [stdout]      |         ^^^^^^^^
[INFO] [stdout] note: but the private item here shadows it
[INFO] [stdout]     --> src/sweeping/src/away.rs:1090:1
[INFO] [stdout]      |
[INFO] [stdout] 1090 | / fn main() -> Result<()> {
[INFO] [stdout] 1091 | |     let cli = Cli::parse();
[INFO] [stdout] 1092 | |     run_with_cli(cli)
[INFO] [stdout] 1093 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      = note: `#[warn(hidden_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/sweeping/src/embedder.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::ToTokens`
[INFO] [stdout]  --> src/tools/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use quote::ToTokens;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tools/cross_test.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/cross_test.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap`, `HashSet`, and `VecDeque`
[INFO] [stdout]  --> src/tools/refactor_engine.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, `ItemImpl`, `ItemMod`, `Item`, and `PathSegment`
[INFO] [stdout]   --> src/tools/refactor_engine.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 |     parse_file, File, Item, ItemFn, ItemStruct, ItemTrait, ItemImpl, ItemMod, Fields,
[INFO] [stdout]    |                 ^^^^  ^^^^                                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 12 |     Type, PathSegment, Ident, visit::Visit,
[INFO] [stdout]    |           ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `File`, `Ident`, `Item`, and `PathSegment`
[INFO] [stdout]  --> src/tools/rust_mentor.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemFn, ItemStruct, ItemTrait, Fields, Field, Type,
[INFO] [stdout]   |                 ^^^^  ^^^^                                         ^^^^^
[INFO] [stdout] 9 |     PathSegment, Ident, visit::Visit,
[INFO] [stdout]   |     ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OutputFormat` and `parse_output_format`
[INFO] [stdout]  --> src/tools/release_automation.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/bloat_check.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/cache_analyzer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprAwait`, `ExprCall`, `ItemFn`, `Type`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/async_lint.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, visit::Visit, ItemFn, ExprAwait, ExprCall, Type, spanned::Spanned};
[INFO] [stdout]   |                                     ^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::ToTokens`
[INFO] [stdout]  --> src/tools/async_lint.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::ToTokens;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, and `PathSegment`
[INFO] [stdout]  --> src/tools/crud_gen.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident};
[INFO] [stdout]   |                       ^^^^                                         ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/crud_gen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/crud_gen.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `Fields`, `File`, `Ident`, `ItemStruct`, `Item`, `PathSegment`, `Type`, and `parse_file`
[INFO] [stdout]  --> src/tools/proto_bind.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use syn::{parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^  ^^^^^^^^^^  ^^^^^^  ^^^^^  ^^^^  ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/proto_bind.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/proto_bind.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File` and `Item`
[INFO] [stdout]  --> src/tools/error_derive.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, File, Item, ItemFn, ItemImpl, ReturnType, Type, visit::Visit};
[INFO] [stdout]   |                       ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/error_derive.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/error_derive.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, `PathSegment`, and `visit::Visit`
[INFO] [stdout]  --> src/tools/builder_gen.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident,
[INFO] [stdout]   |                 ^^^^                                         ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 8 |     visit::Visit,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/builder_gen.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/builder_gen.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `Fields`, `File`, `Ident`, `Item`, `PathSegment`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/example_gen.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parse_file, File, Item, ItemFn, Fields, Field, Type, PathSegment, Ident,
[INFO] [stdout]   |                 ^^^^  ^^^^          ^^^^^^  ^^^^^        ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 8 |     visit::Visit, spanned::Spanned,
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/example_gen.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/example_gen.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `File`, `Ident`, `Item`, `PathSegment`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/api_changelog.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemFn, ItemStruct, ItemEnum, Fields, Field, Type,
[INFO] [stdout]   |                 ^^^^  ^^^^                                        ^^^^^
[INFO] [stdout] 9 |     PathSegment, Ident, visit::Visit, spanned::Spanned,
[INFO] [stdout]   |     ^^^^^^^^^^^  ^^^^^                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/api_changelog.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/api_changelog.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Item`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/trait_explorer.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemTrait, ItemImpl, TraitItem, visit::Visit,
[INFO] [stdout]   |                 ^^^^  ^^^^
[INFO] [stdout] 9 |     spanned::Spanned,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/trait_explorer.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/trait_explorer.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]  --> src/tools/feature_map.rs:4:42
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glob`
[INFO] [stdout]  --> src/tools/vendorize.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use glob;
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ItemMacro`
[INFO] [stdout]  --> src/tools/macro_expand.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, visit::Visit, ItemMacro, Macro};
[INFO] [stdout]   |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToTokens`
[INFO] [stdout]  --> src/tools/macro_expand.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use quote::{quote, ToTokens};
[INFO] [stdout]   |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/lifetime_visualizer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Lifetime` and `TypeReference`
[INFO] [stdout]  --> src/tools/lifetime_visualizer.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, visit::Visit, ItemFn, Lifetime, TypeReference, FnArg, ReturnType,
[INFO] [stdout]   |                                       ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FnArg`, `ItemTrait`, `Pat`, `TraitItem`, and `Type`
[INFO] [stdout]  --> src/tools/mock_derive.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, ItemTrait, TraitItem, FnArg, Pat, Type};
[INFO] [stdout]   |                       ^^^^^^^^^  ^^^^^^^^^  ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/mock_derive.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tools/coverage_guard.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/snapshot_test.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/tools/wasm_optimize.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path as SynPath`
[INFO] [stdout]  --> src/tools/migration_gen.rs:7:62
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, Item, ItemStruct, Fields, Field, Type, Path as SynPath};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Attribute`, `Fields`, `ItemStruct`, `Type`, and `parse2`
[INFO] [stdout]  --> src/tools/serde_validator.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, parse2, Item, ItemStruct, Fields, Field, Type, Attribute, Meta};
[INFO] [stdout]   |                       ^^^^^^        ^^^^^^^^^^  ^^^^^^         ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Map` and `Value`
[INFO] [stdout]  --> src/tools/serde_validator.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use serde_json::{Value, Map};
[INFO] [stdout]   |                  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/sql_macro_check.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ItemMacro`, `Item`, `Lit`, and `parse_file`
[INFO] [stdout]  --> src/tools/sql_macro_check.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use syn::{parse_file, Item, ItemMacro, Lit};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/secret_scanner.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/secret_scanner.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FnArg`, `ItemFn`, `Item`, `Pat`, `Type`, and `parse_file`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, Item, ItemFn, FnArg, Pat, Type, visit::Visit, visit};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^^^  ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OutputFormat` and `parse_output_format`
[INFO] [stdout]  --> src/tools/code_analyzer.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/code_analyzer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/affiliate.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/affiliate.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `jobs_guard`
[INFO] [stdout]    --> src/cmd/ddr.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let jobs_guard = self.jobs.read().await;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_jobs_guard`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `jobs_guard`
[INFO] [stdout]    --> src/cmd/ddr.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let jobs_guard = self.jobs.read().await;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_jobs_guard`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/affiliate.rs:28:27
[INFO] [stdout]    |
[INFO] [stdout] 28 |             let idx = rng.gen_range(0..CHARS.len());
[INFO] [stdout]    |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/affiliate.rs:28:27
[INFO] [stdout]    |
[INFO] [stdout] 28 |             let idx = rng.gen_range(0..CHARS.len());
[INFO] [stdout]    |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::fs::PermissionsExt`
[INFO] [stdout]  --> src/captain/create_secure_binary.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::os::unix::fs::PermissionsExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/probe.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/sweeping/src/away.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_str`
[INFO] [stdout]    --> src/captain/captain.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let result_str = if success { "success" } else { "error" };
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/captain.rs:257:21
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 Err(e) => {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `patterns`
[INFO] [stdout]    --> src/captain/captain.rs:384:17
[INFO] [stdout]     |
[INFO] [stdout] 384 |             let patterns = pattern_cache.calculate_project_health();
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/captain/captain.rs:472:13
[INFO] [stdout]     |
[INFO] [stdout] 472 |         let error = String::from_utf8_lossy(&output.stderr);
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::fs::PermissionsExt`
[INFO] [stdout]  --> src/captain/create_secure_binary.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::os::unix::fs::PermissionsExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/probe.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/sweeping/src/away.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]    --> src/captain/captain_log.rs:889:21
[INFO] [stdout]     |
[INFO] [stdout] 889 |                 let parts: Vec<&str> = key.split(':').collect();
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_str`
[INFO] [stdout]    --> src/captain/captain.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let result_str = if success { "success" } else { "error" };
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/captain.rs:257:21
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 Err(e) => {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `patterns`
[INFO] [stdout]    --> src/captain/captain.rs:384:17
[INFO] [stdout]     |
[INFO] [stdout] 384 |             let patterns = pattern_cache.calculate_project_health();
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/captain/captain.rs:472:13
[INFO] [stdout]     |
[INFO] [stdout] 472 |         let error = String::from_utf8_lossy(&output.stderr);
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loader_binary`
[INFO] [stdout]    --> src/captain/create_secure_binary.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let loader_binary = temp_dir.join("secure_loader");
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loader_binary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform`
[INFO] [stdout]   --> src/captain/encrypt_binaries.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         platform: &str,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]   --> src/captain/license.rs:89:17
[INFO] [stdout]    |
[INFO] [stdout] 89 |             let status = response.status();
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_text`
[INFO] [stdout]   --> src/captain/license.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |             let error_text = response
[INFO] [stdout]    |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:122:20
[INFO] [stdout]     |
[INFO] [stdout] 122 |         if let Err(e) = LicenseGuard::store_license(&obfuscated_license) {
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]    --> src/captain/license.rs:133:13
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let user_id = self.get_or_create_user_id()?;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `license_key`
[INFO] [stdout]    --> src/captain/license.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let license_key = match LicenseGuard::retrieve_license() {
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_license_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expires_at`
[INFO] [stdout]    --> src/captain/license.rs:157:29
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 if let Some(expires_at) = validation.expires_at {
[INFO] [stdout]     |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expires_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remaining`
[INFO] [stdout]    --> src/captain/license.rs:161:33
[INFO] [stdout]     |
[INFO] [stdout] 161 |                     if let Some(remaining) = validation.remaining {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remaining`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status_code`
[INFO] [stdout]    --> src/captain/license.rs:227:21
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 let status_code = resp.status();
[INFO] [stdout]     |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_status_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `command`
[INFO] [stdout]    --> src/captain/license.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn record_usage(&self, command: &str) -> Result<()> {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]    --> src/captain/license.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let user_id = self.get_or_create_user_id()?;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `license_key`
[INFO] [stdout]    --> src/captain/license.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let license_key = match LicenseGuard::retrieve_license() {
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_license_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/captain/license.rs:324:25
[INFO] [stdout]     |
[INFO] [stdout] 324 |             if let Some(error) = validation.error {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:371:21
[INFO] [stdout]     |
[INFO] [stdout] 371 |                 Err(e) => {}
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:414:40
[INFO] [stdout]     |
[INFO] [stdout] 414 | ...                   if let Err(e) = crate::license_guard::LicenseGuard::store_license(
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:439:40
[INFO] [stdout]     |
[INFO] [stdout] 439 | ...                   if let Err(e) = result {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:532:20
[INFO] [stdout]     |
[INFO] [stdout] 532 |         if let Err(e) = LicenseGuard::store_license(&obfuscated_license) {
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log`
[INFO] [stdout]    --> src/captain/license.rs:545:13
[INFO] [stdout]     |
[INFO] [stdout] 545 |         let log = Log::new();
[INFO] [stdout]     |             ^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 545 |         let _log = Log::new();
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named struct `Log`
[INFO] [stdout]     |
[INFO] [stdout] 545 -         let log = Log::new();
[INFO] [stdout] 545 +         let captain::log::Log = Log::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `incremented` is assigned to, but never used
[INFO] [stdout]    --> src/captain/license.rs:576:17
[INFO] [stdout]     |
[INFO] [stdout] 576 |         let mut incremented = false;
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_incremented` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `incremented` is never read
[INFO] [stdout]    --> src/captain/license.rs:595:21
[INFO] [stdout]     |
[INFO] [stdout] 595 |                     incremented = true;
[INFO] [stdout]     |                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home`
[INFO] [stdout]    --> src/captain/license.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |         let home = dirs::home_dir().unwrap_or_else(|| PathBuf::from("."));
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_count`
[INFO] [stdout]    --> src/captain/license.rs:880:13
[INFO] [stdout]     |
[INFO] [stdout] 880 |         let local_count = self.get_local_command_count()?;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]    --> src/captain/license.rs:944:13
[INFO] [stdout]     |
[INFO] [stdout] 944 |         let user_id = self.get_or_create_user_id()?;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]    --> src/captain/captain_log.rs:889:21
[INFO] [stdout]     |
[INFO] [stdout] 889 |                 let parts: Vec<&str> = key.split(':').collect();
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shipwreck_bin`
[INFO] [stdout]    --> src/captain/shell_integration.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let shipwreck_bin = format!("{}/.shipwreck/bin", home);
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_shipwreck_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loader_binary`
[INFO] [stdout]    --> src/captain/create_secure_binary.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let loader_binary = temp_dir.join("secure_loader");
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loader_binary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform`
[INFO] [stdout]   --> src/captain/encrypt_binaries.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         platform: &str,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]   --> src/captain/license.rs:89:17
[INFO] [stdout]    |
[INFO] [stdout] 89 |             let status = response.status();
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_text`
[INFO] [stdout]   --> src/captain/license.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |             let error_text = response
[INFO] [stdout]    |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:122:20
[INFO] [stdout]     |
[INFO] [stdout] 122 |         if let Err(e) = LicenseGuard::store_license(&obfuscated_license) {
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]    --> src/captain/license.rs:133:13
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let user_id = self.get_or_create_user_id()?;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `license_key`
[INFO] [stdout]    --> src/captain/license.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let license_key = match LicenseGuard::retrieve_license() {
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_license_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expires_at`
[INFO] [stdout]    --> src/captain/license.rs:157:29
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 if let Some(expires_at) = validation.expires_at {
[INFO] [stdout]     |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expires_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remaining`
[INFO] [stdout]    --> src/captain/license.rs:161:33
[INFO] [stdout]     |
[INFO] [stdout] 161 |                     if let Some(remaining) = validation.remaining {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remaining`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status_code`
[INFO] [stdout]    --> src/captain/license.rs:227:21
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 let status_code = resp.status();
[INFO] [stdout]     |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_status_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `command`
[INFO] [stdout]    --> src/captain/license.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn record_usage(&self, command: &str) -> Result<()> {
[INFO] [stdout]     |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]    --> src/captain/license.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let user_id = self.get_or_create_user_id()?;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `license_key`
[INFO] [stdout]    --> src/captain/license.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let license_key = match LicenseGuard::retrieve_license() {
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_license_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/captain/license.rs:324:25
[INFO] [stdout]     |
[INFO] [stdout] 324 |             if let Some(error) = validation.error {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:371:21
[INFO] [stdout]     |
[INFO] [stdout] 371 |                 Err(e) => {}
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:414:40
[INFO] [stdout]     |
[INFO] [stdout] 414 | ...                   if let Err(e) = crate::license_guard::LicenseGuard::store_license(
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:439:40
[INFO] [stdout]     |
[INFO] [stdout] 439 | ...                   if let Err(e) = result {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/captain/license.rs:532:20
[INFO] [stdout]     |
[INFO] [stdout] 532 |         if let Err(e) = LicenseGuard::store_license(&obfuscated_license) {
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log`
[INFO] [stdout]    --> src/captain/license.rs:545:13
[INFO] [stdout]     |
[INFO] [stdout] 545 |         let log = Log::new();
[INFO] [stdout]     |             ^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 545 |         let _log = Log::new();
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named struct `Log`
[INFO] [stdout]     |
[INFO] [stdout] 545 -         let log = Log::new();
[INFO] [stdout] 545 +         let captain::log::Log = Log::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `incremented` is assigned to, but never used
[INFO] [stdout]    --> src/captain/license.rs:576:17
[INFO] [stdout]     |
[INFO] [stdout] 576 |         let mut incremented = false;
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_incremented` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `incremented` is never read
[INFO] [stdout]    --> src/captain/license.rs:595:21
[INFO] [stdout]     |
[INFO] [stdout] 595 |                     incremented = true;
[INFO] [stdout]     |                     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home`
[INFO] [stdout]    --> src/captain/license.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |         let home = dirs::home_dir().unwrap_or_else(|| PathBuf::from("."));
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_home`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_count`
[INFO] [stdout]    --> src/captain/license.rs:880:13
[INFO] [stdout]     |
[INFO] [stdout] 880 |         let local_count = self.get_local_command_count()?;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]    --> src/captain/license.rs:944:13
[INFO] [stdout]     |
[INFO] [stdout] 944 |         let user_id = self.get_or_create_user_id()?;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shipwreck_bin`
[INFO] [stdout]    --> src/captain/shell_integration.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let shipwreck_bin = format!("{}/.shipwreck/bin", home);
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_shipwreck_bin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/captain/wtf.rs:614:31
[INFO] [stdout]     |
[INFO] [stdout] 614 | fn generate_identity_response(input: &str) -> String {
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/captain/wtf.rs:614:31
[INFO] [stdout]     |
[INFO] [stdout] 614 | fn generate_identity_response(input: &str) -> String {
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_str`
[INFO] [stdout]    --> src/cmd/captain.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let result_str = if success { "success" } else { "error" };
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/cmd/captain.rs:257:21
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 Err(e) => {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `patterns`
[INFO] [stdout]    --> src/cmd/captain.rs:384:17
[INFO] [stdout]     |
[INFO] [stdout] 384 |             let patterns = pattern_cache.calculate_project_health();
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/cmd/captain.rs:472:13
[INFO] [stdout]     |
[INFO] [stdout] 472 |         let error = String::from_utf8_lossy(&output.stderr);
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/display.rs:146:29
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn has_known_fix(&self, error: &ParsedError) -> bool {
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fingerprint`
[INFO] [stdout]    --> src/display.rs:461:37
[INFO] [stdout]     |
[INFO] [stdout] 461 | ...                   let fingerprint = error_deduplicator
[INFO] [stdout]     |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fingerprint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `artifacts`
[INFO] [stdout]    --> src/display.rs:701:5
[INFO] [stdout]     |
[INFO] [stdout] 701 |     artifacts: &[parser::CompilerArtifact],
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artifacts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `build_scripts`
[INFO] [stdout]    --> src/display.rs:702:5
[INFO] [stdout]     |
[INFO] [stdout] 702 |     build_scripts: &[parser::BuildScriptExecuted],
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_build_scripts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result_str`
[INFO] [stdout]    --> src/cmd/captain.rs:181:9
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let result_str = if success { "success" } else { "error" };
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/cmd/captain.rs:257:21
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 Err(e) => {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `patterns`
[INFO] [stdout]    --> src/cmd/captain.rs:384:17
[INFO] [stdout]     |
[INFO] [stdout] 384 |             let patterns = pattern_cache.calculate_project_health();
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/cmd/captain.rs:472:13
[INFO] [stdout]     |
[INFO] [stdout] 472 |         let error = String::from_utf8_lossy(&output.stderr);
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes_read`
[INFO] [stdout]    --> src/journey.rs:122:20
[INFO] [stdout]     |
[INFO] [stdout] 122 |                 Ok(bytes_read) => {
[INFO] [stdout]     |                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes_read`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/display.rs:146:29
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn has_known_fix(&self, error: &ParsedError) -> bool {
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fingerprint`
[INFO] [stdout]    --> src/display.rs:461:37
[INFO] [stdout]     |
[INFO] [stdout] 461 | ...                   let fingerprint = error_deduplicator
[INFO] [stdout]     |                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fingerprint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `artifacts`
[INFO] [stdout]    --> src/display.rs:701:5
[INFO] [stdout]     |
[INFO] [stdout] 701 |     artifacts: &[parser::CompilerArtifact],
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artifacts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `build_scripts`
[INFO] [stdout]    --> src/display.rs:702:5
[INFO] [stdout]     |
[INFO] [stdout] 702 |     build_scripts: &[parser::BuildScriptExecuted],
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_build_scripts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `probe_pattern`
[INFO] [stdout]    --> src/probe.rs:310:49
[INFO] [stdout]     |
[INFO] [stdout] 310 | fn handle_flake(iterations: usize, jobs: usize, probe_pattern: Option<String>, threshold: u8, dry_run: bool) -> Result<()> {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_probe_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_dir`
[INFO] [stdout]    --> src/probe.rs:851:32
[INFO] [stdout]     |
[INFO] [stdout] 851 | fn handle_replay(run_id: &str, output_dir: Option<PathBuf>, no_cleanup: bool) -> Result<()> {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes_read`
[INFO] [stdout]    --> src/journey.rs:122:20
[INFO] [stdout]     |
[INFO] [stdout] 122 |                 Ok(bytes_read) => {
[INFO] [stdout]     |                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes_read`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pristine`
[INFO] [stdout]    --> src/sweeping/mod.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |             pristine,
[INFO] [stdout]     |             ^^^^^^^^ help: try ignoring the field: `pristine: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/sweeping/mod.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |             format,
[INFO] [stdout]     |             ^^^^^^ help: try ignoring the field: `format: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `organize_imports`
[INFO] [stdout]    --> src/sweeping/mod.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |             organize_imports,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: try ignoring the field: `organize_imports: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_docs`
[INFO] [stdout]    --> src/sweeping/mod.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |             add_docs,
[INFO] [stdout]     |             ^^^^^^^^ help: try ignoring the field: `add_docs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix_clippy`
[INFO] [stdout]    --> src/sweeping/mod.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |             fix_clippy,
[INFO] [stdout]     |             ^^^^^^^^^^ help: try ignoring the field: `fix_clippy: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_dependency`
[INFO] [stdout]    --> src/sweeping/mod.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |             add_dependency,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: try ignoring the field: `add_dependency: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `println_level`
[INFO] [stdout]    --> src/sweeping/mod.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |             let println_level = println_level
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_println_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eprintln_level`
[INFO] [stdout]    --> src/sweeping/mod.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |             let eprintln_level = eprintln_level
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eprintln_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verbose`
[INFO] [stdout]   --> src/sweeping/mod.rs:77:42
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn run_sweep(command: SweepCommands, verbose: bool) -> Result<()> {
[INFO] [stdout]    |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verbose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `probe_pattern`
[INFO] [stdout]    --> src/probe.rs:310:49
[INFO] [stdout]     |
[INFO] [stdout] 310 | fn handle_flake(iterations: usize, jobs: usize, probe_pattern: Option<String>, threshold: u8, dry_run: bool) -> Result<()> {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_probe_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_dir`
[INFO] [stdout]    --> src/probe.rs:851:32
[INFO] [stdout]     |
[INFO] [stdout] 851 | fn handle_replay(run_id: &str, output_dir: Option<PathBuf>, no_cleanup: bool) -> Result<()> {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]    --> src/sweeping/src/away.rs:222:17
[INFO] [stdout]     |
[INFO] [stdout] 222 |             let content = fs::read_to_string(path)?;
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/sweeping/src/away.rs:234:27
[INFO] [stdout]     |
[INFO] [stdout] 234 |     fn save_config(&self, path: &Path) -> Result<()> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `statements` is never read
[INFO] [stdout]    --> src/sweeping/src/away.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let mut statements = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_content`
[INFO] [stdout]    --> src/sweeping/src/away.rs:774:5
[INFO] [stdout]     |
[INFO] [stdout] 774 |     old_content: &str,
[INFO] [stdout]     |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/sweeping/src/away.rs:849:13
[INFO] [stdout]     |
[INFO] [stdout] 849 |         let config = SweepConfig::default();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pristine`
[INFO] [stdout]    --> src/sweeping/src/away.rs:999:13
[INFO] [stdout]     |
[INFO] [stdout] 999 |             pristine,
[INFO] [stdout]     |             ^^^^^^^^ help: try ignoring the field: `pristine: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]     --> src/sweeping/src/away.rs:1000:13
[INFO] [stdout]      |
[INFO] [stdout] 1000 |             format,
[INFO] [stdout]      |             ^^^^^^ help: try ignoring the field: `format: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `organize_imports`
[INFO] [stdout]     --> src/sweeping/src/away.rs:1001:13
[INFO] [stdout]      |
[INFO] [stdout] 1001 |             organize_imports,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ help: try ignoring the field: `organize_imports: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_docs`
[INFO] [stdout]     --> src/sweeping/src/away.rs:1002:13
[INFO] [stdout]      |
[INFO] [stdout] 1002 |             add_docs,
[INFO] [stdout]      |             ^^^^^^^^ help: try ignoring the field: `add_docs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix_clippy`
[INFO] [stdout]     --> src/sweeping/src/away.rs:1003:13
[INFO] [stdout]      |
[INFO] [stdout] 1003 |             fix_clippy,
[INFO] [stdout]      |             ^^^^^^^^^^ help: try ignoring the field: `fix_clippy: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/sweeping/src/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let args = vec!["sweep"];
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `license_status`
[INFO] [stdout]    --> src/tools/dep_audit.rs:168:25
[INFO] [stdout]     |
[INFO] [stdout] 168 |                     let license_status = if dep.license.is_some() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_license_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `license_issues` is never read
[INFO] [stdout]    --> src/tools/dep_audit.rs:303:17
[INFO] [stdout]     |
[INFO] [stdout] 303 |         let mut license_issues = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/tools/workspace_sync.rs:232:29
[INFO] [stdout]     |
[INFO] [stdout] 232 |                 if let Some(version) = analysis.versions.values().next() {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_root`
[INFO] [stdout]    --> src/tools/workspace_sync.rs:252:9
[INFO] [stdout]     |
[INFO] [stdout] 252 |         workspace_root: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_root`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pristine`
[INFO] [stdout]    --> src/sweeping/mod.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |             pristine,
[INFO] [stdout]     |             ^^^^^^^^ help: try ignoring the field: `pristine: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/sweeping/mod.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |             format,
[INFO] [stdout]     |             ^^^^^^ help: try ignoring the field: `format: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `organize_imports`
[INFO] [stdout]    --> src/sweeping/mod.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |             organize_imports,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: try ignoring the field: `organize_imports: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_docs`
[INFO] [stdout]    --> src/sweeping/mod.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |             add_docs,
[INFO] [stdout]     |             ^^^^^^^^ help: try ignoring the field: `add_docs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix_clippy`
[INFO] [stdout]    --> src/sweeping/mod.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |             fix_clippy,
[INFO] [stdout]     |             ^^^^^^^^^^ help: try ignoring the field: `fix_clippy: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_dependency`
[INFO] [stdout]    --> src/sweeping/mod.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |             add_dependency,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: try ignoring the field: `add_dependency: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `println_level`
[INFO] [stdout]    --> src/sweeping/mod.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |             let println_level = println_level
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_println_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eprintln_level`
[INFO] [stdout]    --> src/sweeping/mod.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |             let eprintln_level = eprintln_level
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eprintln_level`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verbose`
[INFO] [stdout]   --> src/sweeping/mod.rs:77:42
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn run_sweep(command: SweepCommands, verbose: bool) -> Result<()> {
[INFO] [stdout]    |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_verbose`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context_lines`
[INFO] [stdout]    --> src/tools/panic_analyzer.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let context_lines: usize = matches
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context_lines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suggest_fixes`
[INFO] [stdout]    --> src/tools/panic_analyzer.rs:368:13
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let suggest_fixes = matches.get_flag("suggest-fixes");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_suggest_fixes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `report`
[INFO] [stdout]    --> src/tools/cross_test.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |         let report = matches.get_flag("report");
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_report`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]    --> src/sweeping/src/away.rs:222:17
[INFO] [stdout]     |
[INFO] [stdout] 222 |             let content = fs::read_to_string(path)?;
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/sweeping/src/away.rs:234:27
[INFO] [stdout]     |
[INFO] [stdout] 234 |     fn save_config(&self, path: &Path) -> Result<()> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `statements` is never read
[INFO] [stdout]    --> src/sweeping/src/away.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let mut statements = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_content`
[INFO] [stdout]    --> src/sweeping/src/away.rs:774:5
[INFO] [stdout]     |
[INFO] [stdout] 774 |     old_content: &str,
[INFO] [stdout]     |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/sweeping/src/away.rs:849:13
[INFO] [stdout]     |
[INFO] [stdout] 849 |         let config = SweepConfig::default();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pristine`
[INFO] [stdout]    --> src/sweeping/src/away.rs:999:13
[INFO] [stdout]     |
[INFO] [stdout] 999 |             pristine,
[INFO] [stdout]     |             ^^^^^^^^ help: try ignoring the field: `pristine: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]     --> src/sweeping/src/away.rs:1000:13
[INFO] [stdout]      |
[INFO] [stdout] 1000 |             format,
[INFO] [stdout]      |             ^^^^^^ help: try ignoring the field: `format: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `organize_imports`
[INFO] [stdout]     --> src/sweeping/src/away.rs:1001:13
[INFO] [stdout]      |
[INFO] [stdout] 1001 |             organize_imports,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^ help: try ignoring the field: `organize_imports: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_docs`
[INFO] [stdout]     --> src/sweeping/src/away.rs:1002:13
[INFO] [stdout]      |
[INFO] [stdout] 1002 |             add_docs,
[INFO] [stdout]      |             ^^^^^^^^ help: try ignoring the field: `add_docs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix_clippy`
[INFO] [stdout]     --> src/sweeping/src/away.rs:1003:13
[INFO] [stdout]      |
[INFO] [stdout] 1003 |             fix_clippy,
[INFO] [stdout]      |             ^^^^^^^^^^ help: try ignoring the field: `fix_clippy: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/sweeping/src/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let args = vec!["sweep"];
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `license_status`
[INFO] [stdout]    --> src/tools/dep_audit.rs:168:25
[INFO] [stdout]     |
[INFO] [stdout] 168 |                     let license_status = if dep.license.is_some() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_license_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `license_issues` is never read
[INFO] [stdout]    --> src/tools/dep_audit.rs:303:17
[INFO] [stdout]     |
[INFO] [stdout] 303 |         let mut license_issues = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/tools/workspace_sync.rs:232:29
[INFO] [stdout]     |
[INFO] [stdout] 232 |                 if let Some(version) = analysis.versions.values().next() {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_root`
[INFO] [stdout]    --> src/tools/workspace_sync.rs:252:9
[INFO] [stdout]     |
[INFO] [stdout] 252 |         workspace_root: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_root`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context_lines`
[INFO] [stdout]    --> src/tools/panic_analyzer.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let context_lines: usize = matches
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context_lines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suggest_fixes`
[INFO] [stdout]    --> src/tools/panic_analyzer.rs:368:13
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let suggest_fixes = matches.get_flag("suggest-fixes");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_suggest_fixes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `report`
[INFO] [stdout]    --> src/tools/cross_test.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |         let report = matches.get_flag("report");
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_report`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:376:9
[INFO] [stdout]     |
[INFO] [stdout] 376 |         structs: &[StructInfo],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub_dir_name`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:509:21
[INFO] [stdout]     |
[INFO] [stdout] 509 |                 let sub_dir_name = path
[INFO] [stdout]     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_dir_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/refactor_engine.rs:504:13
[INFO] [stdout]     |
[INFO] [stdout] 504 |         let mut dependencies = Vec::new();
[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: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:592:48
[INFO] [stdout]     |
[INFO] [stdout] 592 |             fn analyze_function(node: &ItemFn, file_path: &str) -> Result<FunctionInfo> {
[INFO] [stdout]     |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:905:37
[INFO] [stdout]     |
[INFO] [stdout] 905 |             fn analyze_impl_methods(node: &ItemStruct, file_path: &str) -> Vec<String> {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:905:56
[INFO] [stdout]     |
[INFO] [stdout] 905 |             fn analyze_impl_methods(node: &ItemStruct, file_path: &str) -> Vec<String> {
[INFO] [stdout]     |                                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:910:17
[INFO] [stdout]     |
[INFO] [stdout] 910 |                 file_path: &str,
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:997:9
[INFO] [stdout]     |
[INFO] [stdout] 997 |         structs: &[StructInfo],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1096:9
[INFO] [stdout]      |
[INFO] [stdout] 1096 |         structs: &[StructInfo],
[INFO] [stdout]      |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1097:9
[INFO] [stdout]      |
[INFO] [stdout] 1097 |         traits: &[TraitInfo],
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1161:9
[INFO] [stdout]      |
[INFO] [stdout] 1161 |         traits: &[TraitInfo],
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1345:9
[INFO] [stdout]      |
[INFO] [stdout] 1345 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1358:9
[INFO] [stdout]      |
[INFO] [stdout] 1358 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1386:9
[INFO] [stdout]      |
[INFO] [stdout] 1386 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1433:9
[INFO] [stdout]      |
[INFO] [stdout] 1433 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1444:9
[INFO] [stdout]      |
[INFO] [stdout] 1444 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transformation`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1542:9
[INFO] [stdout]      |
[INFO] [stdout] 1542 |         transformation: &SafeTransformation,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transformation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `struct_count`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1733:13
[INFO] [stdout]      |
[INFO] [stdout] 1733 |         let struct_count = content.matches("struct ").count();
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_struct_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1738:13
[INFO] [stdout]      |
[INFO] [stdout] 1738 |         let mut deallocation_count = allocation_count;
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_path`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1792:40
[INFO] [stdout]      |
[INFO] [stdout] 1792 |     fn run_performance_analysis(&self, input_path: &str) -> Result<PerformanceData> {
[INFO] [stdout]      |                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_path`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1816:35
[INFO] [stdout]      |
[INFO] [stdout] 1816 |     fn run_clippy_analysis(&self, input_path: &str) -> Result<Vec<ClippyIssue>> {
[INFO] [stdout]      |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `aggressive`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2159:13
[INFO] [stdout]      |
[INFO] [stdout] 2159 |         let aggressive = matches.get_flag("aggressive");
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_aggressive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_complexity`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2161:13
[INFO] [stdout]      |
[INFO] [stdout] 2161 |         let min_complexity: u32 = matches
[INFO] [stdout]      |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_complexity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_line_length`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2166:13
[INFO] [stdout]      |
[INFO] [stdout] 2166 |         let max_line_length: usize = matches
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_line_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `backup_dir`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2171:13
[INFO] [stdout]      |
[INFO] [stdout] 2171 |         let backup_dir = matches.get_one::<String>("backup-dir").unwrap();
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_backup_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:657:9
[INFO] [stdout]     |
[INFO] [stdout] 657 |         structs: &[StructAnalysis],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:658:9
[INFO] [stdout]     |
[INFO] [stdout] 658 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:686:9
[INFO] [stdout]     |
[INFO] [stdout] 686 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:729:9
[INFO] [stdout]     |
[INFO] [stdout] 729 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:800:9
[INFO] [stdout]     |
[INFO] [stdout] 800 |         structs: &[StructAnalysis],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:801:9
[INFO] [stdout]     |
[INFO] [stdout] 801 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dry_run`
[INFO] [stdout]     --> src/tools/rust_mentor.rs:1007:13
[INFO] [stdout]      |
[INFO] [stdout] 1007 |         let dry_run = matches.get_flag("dry-run");
[INFO] [stdout]      |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dry_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dry_run`
[INFO] [stdout]    --> src/tools/release_automation.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         dry_run: bool,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dry_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `changelog`
[INFO] [stdout]    --> src/tools/release_automation.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |         let changelog = matches.get_flag("changelog");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_changelog`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `validate`
[INFO] [stdout]    --> src/tools/release_automation.rs:413:13
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let validate = matches.get_flag("validate");
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_validate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:376:9
[INFO] [stdout]     |
[INFO] [stdout] 376 |         structs: &[StructInfo],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub_dir_name`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:509:21
[INFO] [stdout]     |
[INFO] [stdout] 509 |                 let sub_dir_name = path
[INFO] [stdout]     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_dir_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/refactor_engine.rs:504:13
[INFO] [stdout]     |
[INFO] [stdout] 504 |         let mut dependencies = Vec::new();
[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: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:592:48
[INFO] [stdout]     |
[INFO] [stdout] 592 |             fn analyze_function(node: &ItemFn, file_path: &str) -> Result<FunctionInfo> {
[INFO] [stdout]     |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:905:37
[INFO] [stdout]     |
[INFO] [stdout] 905 |             fn analyze_impl_methods(node: &ItemStruct, file_path: &str) -> Vec<String> {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:905:56
[INFO] [stdout]     |
[INFO] [stdout] 905 |             fn analyze_impl_methods(node: &ItemStruct, file_path: &str) -> Vec<String> {
[INFO] [stdout]     |                                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:910:17
[INFO] [stdout]     |
[INFO] [stdout] 910 |                 file_path: &str,
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:997:9
[INFO] [stdout]     |
[INFO] [stdout] 997 |         structs: &[StructInfo],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1096:9
[INFO] [stdout]      |
[INFO] [stdout] 1096 |         structs: &[StructInfo],
[INFO] [stdout]      |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1097:9
[INFO] [stdout]      |
[INFO] [stdout] 1097 |         traits: &[TraitInfo],
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1161:9
[INFO] [stdout]      |
[INFO] [stdout] 1161 |         traits: &[TraitInfo],
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1345:9
[INFO] [stdout]      |
[INFO] [stdout] 1345 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1358:9
[INFO] [stdout]      |
[INFO] [stdout] 1358 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1386:9
[INFO] [stdout]      |
[INFO] [stdout] 1386 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1433:9
[INFO] [stdout]      |
[INFO] [stdout] 1433 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1444:9
[INFO] [stdout]      |
[INFO] [stdout] 1444 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transformation`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1542:9
[INFO] [stdout]      |
[INFO] [stdout] 1542 |         transformation: &SafeTransformation,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transformation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `struct_count`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1733:13
[INFO] [stdout]      |
[INFO] [stdout] 1733 |         let struct_count = content.matches("struct ").count();
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_struct_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1738:13
[INFO] [stdout]      |
[INFO] [stdout] 1738 |         let mut deallocation_count = allocation_count;
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_path`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1792:40
[INFO] [stdout]      |
[INFO] [stdout] 1792 |     fn run_performance_analysis(&self, input_path: &str) -> Result<PerformanceData> {
[INFO] [stdout]      |                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_path`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1816:35
[INFO] [stdout]      |
[INFO] [stdout] 1816 |     fn run_clippy_analysis(&self, input_path: &str) -> Result<Vec<ClippyIssue>> {
[INFO] [stdout]      |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `aggressive`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2159:13
[INFO] [stdout]      |
[INFO] [stdout] 2159 |         let aggressive = matches.get_flag("aggressive");
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_aggressive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_complexity`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2161:13
[INFO] [stdout]      |
[INFO] [stdout] 2161 |         let min_complexity: u32 = matches
[INFO] [stdout]      |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_complexity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_line_length`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2166:13
[INFO] [stdout]      |
[INFO] [stdout] 2166 |         let max_line_length: usize = matches
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_line_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `backup_dir`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2171:13
[INFO] [stdout]      |
[INFO] [stdout] 2171 |         let backup_dir = matches.get_one::<String>("backup-dir").unwrap();
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_backup_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strict_mode`
[INFO] [stdout]    --> src/tools/async_lint.rs:522:13
[INFO] [stdout]     |
[INFO] [stdout] 522 |         let strict_mode = matches.get_flag("strict");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strict_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tests`
[INFO] [stdout]    --> src/tools/crud_gen.rs:807:13
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let tests = matches.get_flag("tests");
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req_body`
[INFO] [stdout]    --> src/tools/proto_bind.rs:606:25
[INFO] [stdout]     |
[INFO] [stdout] 606 |             if let Some(req_body) = &path.request_body {
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_req_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:657:9
[INFO] [stdout]     |
[INFO] [stdout] 657 |         structs: &[StructAnalysis],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:658:9
[INFO] [stdout]     |
[INFO] [stdout] 658 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:686:9
[INFO] [stdout]     |
[INFO] [stdout] 686 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:729:9
[INFO] [stdout]     |
[INFO] [stdout] 729 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:800:9
[INFO] [stdout]     |
[INFO] [stdout] 800 |         structs: &[StructAnalysis],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:801:9
[INFO] [stdout]     |
[INFO] [stdout] 801 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dry_run`
[INFO] [stdout]     --> src/tools/rust_mentor.rs:1007:13
[INFO] [stdout]      |
[INFO] [stdout] 1007 |         let dry_run = matches.get_flag("dry-run");
[INFO] [stdout]      |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dry_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dry_run`
[INFO] [stdout]    --> src/tools/release_automation.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         dry_run: bool,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dry_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `changelog`
[INFO] [stdout]    --> src/tools/release_automation.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |         let changelog = matches.get_flag("changelog");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_changelog`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `validate`
[INFO] [stdout]    --> src/tools/release_automation.rs:413:13
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let validate = matches.get_flag("validate");
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_validate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `functions`
[INFO] [stdout]   --> src/tools/example_gen.rs:56:17
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut functions: Vec<FunctionInfo> = Vec::new();
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_functions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tools/example_gen.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut functions: Vec<FunctionInfo> = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strict_mode`
[INFO] [stdout]    --> src/tools/async_lint.rs:522:13
[INFO] [stdout]     |
[INFO] [stdout] 522 |         let strict_mode = matches.get_flag("strict");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strict_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `non_breaking_changes`
[INFO] [stdout]    --> src/tools/api_changelog.rs:447:9
[INFO] [stdout]     |
[INFO] [stdout] 447 |         non_breaking_changes: &mut Vec<NonBreakingChange>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_non_breaking_changes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `non_breaking_changes`
[INFO] [stdout]    --> src/tools/api_changelog.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |         non_breaking_changes: &mut Vec<NonBreakingChange>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_non_breaking_changes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `migration_guide`
[INFO] [stdout]     --> src/tools/api_changelog.rs:1041:13
[INFO] [stdout]      |
[INFO] [stdout] 1041 |         let migration_guide = matches.get_flag("migration-guide");
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_migration_guide`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `detailed`
[INFO] [stdout]     --> src/tools/api_changelog.rs:1043:13
[INFO] [stdout]      |
[INFO] [stdout] 1043 |         let detailed = matches.get_flag("detailed");
[INFO] [stdout]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_detailed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tests`
[INFO] [stdout]    --> src/tools/crud_gen.rs:807:13
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let tests = matches.get_flag("tests");
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `usage_analysis`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:745:13
[INFO] [stdout]     |
[INFO] [stdout] 745 |         let usage_analysis = matches.get_flag("usage");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_usage_analysis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:750:13
[INFO] [stdout]     |
[INFO] [stdout] 750 |         let workspace = matches.get_flag("workspace");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `usage_patterns`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:793:13
[INFO] [stdout]     |
[INFO] [stdout] 793 |         let usage_patterns = self.analyze_trait_usage(&filtered_implementations)?;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_usage_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output_content` is never read
[INFO] [stdout]    --> src/tools/trait_explorer.rs:807:17
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let mut output_content = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req_body`
[INFO] [stdout]    --> src/tools/proto_bind.rs:606:25
[INFO] [stdout]     |
[INFO] [stdout] 606 |             if let Some(req_body) = &path.request_body {
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_req_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stat`
[INFO] [stdout]    --> src/tools/env_check.rs:190:19
[INFO] [stdout]     |
[INFO] [stdout] 190 |         if let Ok(stat) = fs::metadata(".") { 100 } else { 0 }
[INFO] [stdout]     |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_stat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `functions`
[INFO] [stdout]   --> src/tools/example_gen.rs:56:17
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut functions: Vec<FunctionInfo> = Vec::new();
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_functions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tools/example_gen.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut functions: Vec<FunctionInfo> = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_type`
[INFO] [stdout]    --> src/tools/feature_map.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 |             let node_type = if info.default {
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace`
[INFO] [stdout]    --> src/tools/feature_map.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |         workspace: bool,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conflicts`
[INFO] [stdout]    --> src/tools/feature_map.rs:514:13
[INFO] [stdout]     |
[INFO] [stdout] 514 |         let conflicts = matches.get_flag("conflicts");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conflicts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combinations`
[INFO] [stdout]    --> src/tools/feature_map.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let combinations = matches.get_flag("combinations");
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combinations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `optimize`
[INFO] [stdout]    --> src/tools/feature_map.rs:518:13
[INFO] [stdout]     |
[INFO] [stdout] 518 |         let optimize = matches.get_flag("optimize");
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_optimize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `impact`
[INFO] [stdout]    --> src/tools/feature_map.rs:520:13
[INFO] [stdout]     |
[INFO] [stdout] 520 |         let impact = matches.get_flag("impact");
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_impact`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manifest_path`
[INFO] [stdout]   --> src/tools/vendorize.rs:84:36
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn analyze_dependencies(&self, manifest_path: &str) -> Result<DependencyAnalysis> {
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manifest_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force`
[INFO] [stdout]    --> src/tools/vendorize.rs:549:13
[INFO] [stdout]     |
[INFO] [stdout] 549 |         let force = matches.get_flag("force");
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_force`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `non_breaking_changes`
[INFO] [stdout]    --> src/tools/api_changelog.rs:447:9
[INFO] [stdout]     |
[INFO] [stdout] 447 |         non_breaking_changes: &mut Vec<NonBreakingChange>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_non_breaking_changes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `non_breaking_changes`
[INFO] [stdout]    --> src/tools/api_changelog.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |         non_breaking_changes: &mut Vec<NonBreakingChange>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_non_breaking_changes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `highlight`
[INFO] [stdout]    --> src/tools/macro_expand.rs:407:13
[INFO] [stdout]     |
[INFO] [stdout] 407 |         let highlight = matches.get_flag("highlight");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_highlight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactive`
[INFO] [stdout]    --> src/tools/macro_expand.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |         let interactive = matches.get_flag("interactive");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/tools/macro_expand.rs:412:13
[INFO] [stdout]     |
[INFO] [stdout] 412 |         let format = matches.get_one::<String>("format").unwrap();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `migration_guide`
[INFO] [stdout]     --> src/tools/api_changelog.rs:1041:13
[INFO] [stdout]      |
[INFO] [stdout] 1041 |         let migration_guide = matches.get_flag("migration-guide");
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_migration_guide`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `detailed`
[INFO] [stdout]     --> src/tools/api_changelog.rs:1043:13
[INFO] [stdout]      |
[INFO] [stdout] 1043 |         let detailed = matches.get_flag("detailed");
[INFO] [stdout]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_detailed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `usage_analysis`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:745:13
[INFO] [stdout]     |
[INFO] [stdout] 745 |         let usage_analysis = matches.get_flag("usage");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_usage_analysis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:750:13
[INFO] [stdout]     |
[INFO] [stdout] 750 |         let workspace = matches.get_flag("workspace");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `usage_patterns`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:793:13
[INFO] [stdout]     |
[INFO] [stdout] 793 |         let usage_patterns = self.analyze_trait_usage(&filtered_implementations)?;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_usage_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output_content` is never read
[INFO] [stdout]    --> src/tools/trait_explorer.rs:807:17
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let mut output_content = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactive`
[INFO] [stdout]    --> src/tools/lifetime_visualizer.rs:544:13
[INFO] [stdout]     |
[INFO] [stdout] 544 |         let interactive = matches.get_flag("interactive");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stat`
[INFO] [stdout]    --> src/tools/env_check.rs:190:19
[INFO] [stdout]     |
[INFO] [stdout] 190 |         if let Ok(stat) = fs::metadata(".") { 100 } else { 0 }
[INFO] [stdout]     |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_stat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/lifetime_visualizer.rs:560:24
[INFO] [stdout]     |
[INFO] [stdout] 560 |                     Ok(mut functions) => all_functions.extend(functions),
[INFO] [stdout]     |                        ----^^^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/tools/compile_time_tracker.rs:488:13
[INFO] [stdout]     |
[INFO] [stdout] 488 |         let threshold: f64 = matches
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_file`
[INFO] [stdout]    --> src/tools/compile_time_tracker.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let output_file = matches.get_one::<String>("output").unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_type`
[INFO] [stdout]    --> src/tools/feature_map.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 |             let node_type = if info.default {
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace`
[INFO] [stdout]    --> src/tools/feature_map.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |         workspace: bool,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conflicts`
[INFO] [stdout]    --> src/tools/feature_map.rs:514:13
[INFO] [stdout]     |
[INFO] [stdout] 514 |         let conflicts = matches.get_flag("conflicts");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conflicts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combinations`
[INFO] [stdout]    --> src/tools/feature_map.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let combinations = matches.get_flag("combinations");
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combinations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `optimize`
[INFO] [stdout]    --> src/tools/feature_map.rs:518:13
[INFO] [stdout]     |
[INFO] [stdout] 518 |         let optimize = matches.get_flag("optimize");
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_optimize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `impact`
[INFO] [stdout]    --> src/tools/feature_map.rs:520:13
[INFO] [stdout]     |
[INFO] [stdout] 520 |         let impact = matches.get_flag("impact");
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_impact`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `return_type`
[INFO] [stdout]    --> src/tools/mock_derive.rs:185:21
[INFO] [stdout]     |
[INFO] [stdout] 185 |         if let Some(return_type) = &method.return_type {
[INFO] [stdout]     |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_async`
[INFO] [stdout]    --> src/tools/mock_derive.rs:400:13
[INFO] [stdout]     |
[INFO] [stdout] 400 |         let include_async = matches.get_flag("include-async");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_async`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/mock_derive.rs:437:14
[INFO] [stdout]     |
[INFO] [stdout] 437 |         for (file_path, trait_info) in &all_traits {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool`
[INFO] [stdout]    --> src/tools/coverage_guard.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let tool = matches.get_one::<String>("tool").unwrap();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_tool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manifest_path`
[INFO] [stdout]   --> src/tools/vendorize.rs:84:36
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn analyze_dependencies(&self, manifest_path: &str) -> Result<DependencyAnalysis> {
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manifest_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force`
[INFO] [stdout]    --> src/tools/vendorize.rs:549:13
[INFO] [stdout]     |
[INFO] [stdout] 549 |         let force = matches.get_flag("force");
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_force`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `highlight`
[INFO] [stdout]    --> src/tools/macro_expand.rs:407:13
[INFO] [stdout]     |
[INFO] [stdout] 407 |         let highlight = matches.get_flag("highlight");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_highlight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactive`
[INFO] [stdout]    --> src/tools/macro_expand.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |         let interactive = matches.get_flag("interactive");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/tools/macro_expand.rs:412:13
[INFO] [stdout]     |
[INFO] [stdout] 412 |         let format = matches.get_one::<String>("format").unwrap();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]   --> src/tools/migration_gen.rs:99:48
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 if let Ok(syn::Meta::NameValue(meta)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `database`
[INFO] [stdout]    --> src/tools/migration_gen.rs:497:13
[INFO] [stdout]     |
[INFO] [stdout] 497 |         let database = matches.get_one::<String>("database").unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_database`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `existing_schema`
[INFO] [stdout]    --> src/tools/migration_gen.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let existing_schema = matches.get_one::<String>("existing-schema");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_existing_schema`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `framework`
[INFO] [stdout]    --> src/tools/migration_gen.rs:501:13
[INFO] [stdout]     |
[INFO] [stdout] 501 |         let framework = matches.get_one::<String>("framework").unwrap();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_framework`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta_list`
[INFO] [stdout]   --> src/tools/serde_validator.rs:83:38
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 if let Ok(Meta::List(meta_list)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]    |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meta_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tools/serde_validator.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let mut has_derive_serde = false;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta_list`
[INFO] [stdout]    --> src/tools/serde_validator.rs:119:38
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 if let Ok(Meta::List(meta_list)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meta_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut default_value = None;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let mut rename = None;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let mut skip_serializing = false;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let mut skip_deserializing = false;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactive`
[INFO] [stdout]    --> src/tools/lifetime_visualizer.rs:544:13
[INFO] [stdout]     |
[INFO] [stdout] 544 |         let interactive = matches.get_flag("interactive");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/lifetime_visualizer.rs:560:24
[INFO] [stdout]     |
[INFO] [stdout] 560 |                     Ok(mut functions) => all_functions.extend(functions),
[INFO] [stdout]     |                        ----^^^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/tools/compile_time_tracker.rs:488:13
[INFO] [stdout]     |
[INFO] [stdout] 488 |         let threshold: f64 = matches
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_file`
[INFO] [stdout]    --> src/tools/compile_time_tracker.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let output_file = matches.get_one::<String>("output").unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `security_icon`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:357:29
[INFO] [stdout]     |
[INFO] [stdout] 357 |                         let security_icon = if analysis.security_score >= 80 {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_security_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `performance_icon`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:362:29
[INFO] [stdout]     |
[INFO] [stdout] 362 |                         let performance_icon = if analysis.performance_score >= 80 {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_performance_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix_suggestions`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:551:13
[INFO] [stdout]     |
[INFO] [stdout] 551 |         let fix_suggestions = matches.get_flag("fix-suggestions");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fix_suggestions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `library`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:552:13
[INFO] [stdout]     |
[INFO] [stdout] 552 |         let library = matches.get_one::<String>("library").unwrap();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_library`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `return_type`
[INFO] [stdout]    --> src/tools/mock_derive.rs:185:21
[INFO] [stdout]     |
[INFO] [stdout] 185 |         if let Some(return_type) = &method.return_type {
[INFO] [stdout]     |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_async`
[INFO] [stdout]    --> src/tools/mock_derive.rs:400:13
[INFO] [stdout]     |
[INFO] [stdout] 400 |         let include_async = matches.get_flag("include-async");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_async`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/mock_derive.rs:437:14
[INFO] [stdout]     |
[INFO] [stdout] 437 |         for (file_path, trait_info) in &all_traits {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:170:9
[INFO] [stdout]     |
[INFO] [stdout] 170 |         pattern: &SecretPattern,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exclude_vendor`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:558:13
[INFO] [stdout]     |
[INFO] [stdout] 558 |         let exclude_vendor = matches.get_flag("exclude-vendor");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exclude_vendor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_tests`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:559:13
[INFO] [stdout]     |
[INFO] [stdout] 559 |         let include_tests = matches.get_flag("include-tests");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `finding`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:603:22
[INFO] [stdout]     |
[INFO] [stdout] 603 |             .filter(|finding| {
[INFO] [stdout]     |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_finding`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool`
[INFO] [stdout]    --> src/tools/coverage_guard.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let tool = matches.get_one::<String>("tool").unwrap();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_tool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:115:54
[INFO] [stdout]     |
[INFO] [stdout] 115 |     fn generate_suggestion(&self, unsafe_type: &str, context: &str) -> String {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_risky`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:376:13
[INFO] [stdout]     |
[INFO] [stdout] 376 |         let total_risky = critical_count + high_count + medium_count;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_risky`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_name`
[INFO] [stdout]    --> src/tools/snapshot_test.rs:132:38
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn generate_snapshot_name(&self, test_name: &str, snapshot_name: &str) -> String {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_context`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 |         let show_context = matches.get_flag("show-context");
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]    --> src/tools/snapshot_test.rs:337:13
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let pattern = matches.get_one::<String>("pattern");
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/tools/license_bundler.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |         version: &str,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `third_party_notices`
[INFO] [stdout]    --> src/tools/license_bundler.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |         let third_party_notices = matches.get_flag("third-party-notices");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_third_party_notices`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/tools/license_bundler.rs:647:13
[INFO] [stdout]     |
[INFO] [stdout] 647 |         let format = matches.get_one::<String>("format").unwrap();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exclude_dev`
[INFO] [stdout]    --> src/tools/license_bundler.rs:648:13
[INFO] [stdout]     |
[INFO] [stdout] 648 |         let exclude_dev = matches.get_flag("exclude-dev");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exclude_dev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]   --> src/tools/migration_gen.rs:99:48
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 if let Ok(syn::Meta::NameValue(meta)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `database`
[INFO] [stdout]    --> src/tools/migration_gen.rs:497:13
[INFO] [stdout]     |
[INFO] [stdout] 497 |         let database = matches.get_one::<String>("database").unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_database`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `existing_schema`
[INFO] [stdout]    --> src/tools/migration_gen.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let existing_schema = matches.get_one::<String>("existing-schema");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_existing_schema`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `framework`
[INFO] [stdout]    --> src/tools/migration_gen.rs:501:13
[INFO] [stdout]     |
[INFO] [stdout] 501 |         let framework = matches.get_one::<String>("framework").unwrap();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_framework`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta_list`
[INFO] [stdout]   --> src/tools/serde_validator.rs:83:38
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 if let Ok(Meta::List(meta_list)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]    |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meta_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `IdeaHistoryEntry` is more private than the item `get_idea_history`
[INFO] [stdout]   --> src/cmd/idea.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_idea_history(limit: usize) -> Result<Vec<IdeaHistoryEntry>> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `get_idea_history` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `IdeaHistoryEntry` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/cmd/idea.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | struct IdeaHistoryEntry {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tools/serde_validator.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let mut has_derive_serde = false;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta_list`
[INFO] [stdout]    --> src/tools/serde_validator.rs:119:38
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 if let Ok(Meta::List(meta_list)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meta_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut default_value = None;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let mut rename = None;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let mut skip_serializing = false;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let mut skip_deserializing = false;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PrintContext` is more private than the item `PrintStatement::context`
[INFO] [stdout]    --> src/sweeping/src/away.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub context: PrintContext,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^ field `PrintStatement::context` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `PrintContext` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/sweeping/src/away.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | enum PrintContext {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `checkout_git_commit` is never used
[INFO] [stdout]    --> src/anchor.rs:379:8
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl AnchorManager {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 379 |     fn checkout_git_commit(&self, commit: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]  --> src/captain/create_secure_binary.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn main() -> Result<()> {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_secure_binary` is never used
[INFO] [stdout]   --> src/captain/create_secure_binary.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn create_secure_binary(input_path: &str, output_path: &str, key: &str) -> Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_self_protected_binary` is never used
[INFO] [stdout]  --> src/captain/create_self_protected_binary.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn create_self_protected_binary(
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryEncryptor` is never constructed
[INFO] [stdout]  --> src/captain/encrypt_binaries.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct BinaryEncryptor {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `xor_encrypt`, `encrypt_binary`, and `create_self_decrypting_binary` are never used
[INFO] [stdout]   --> src/captain/encrypt_binaries.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl BinaryEncryptor {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 10 |     fn new(key: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn xor_encrypt(&self, data: &[u8]) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn encrypt_binary(&self, input_path: &Path, output_path: &Path) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn create_self_decrypting_binary(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encrypt_releases_directory` is never used
[INFO] [stdout]    --> src/captain/encrypt_binaries.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn encrypt_releases_directory(releases_dir: &Path, encryption_key: &str) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_self_decrypting_releases` is never used
[INFO] [stdout]    --> src/captain/encrypt_binaries.rs:136:4
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn create_self_decrypting_releases(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_ip_address` and `fetch_external_ip` are never used
[INFO] [stdout]    --> src/captain/license.rs:468:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl LicenseManager {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 468 |     fn get_ip_address(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 482 |     fn fetch_external_ip(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Red` is never constructed
[INFO] [stdout]    --> src/captain/treasure_map.rs:452:5
[INFO] [stdout]     |
[INFO] [stdout] 449 | enum NodeColor {
[INFO] [stdout]     |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 452 |     Red,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NodeColor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `blocking_compilation` and `frequently_ignored` are never read
[INFO] [stdout]    --> src/display.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  99 | pub struct PriorityWeights {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 100 |     never_seen_before: f32,
[INFO] [stdout] 101 |     blocking_compilation: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 |     has_quick_fix: f32,
[INFO] [stdout] 103 |     frequently_ignored: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PriorityWeights` 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 `priority` is never read
[INFO] [stdout]    --> src/display.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct CoachingTip {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 160 |     priority: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CoachingTip` 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 `start_time` is never read
[INFO] [stdout]   --> src/journey.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct JourneyRecorder {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     start_time: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_command_from_buffer` is never used
[INFO] [stdout]    --> src/journey.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl JourneyRecorder {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn parse_command_from_buffer(buffer: &str) -> Option<JourneyCommand> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_flake_iterations` is never used
[INFO] [stdout]    --> src/probe.rs:358:4
[INFO] [stdout]     |
[INFO] [stdout] 358 | fn run_flake_iterations(binary: &Path, iterations: usize) -> Result<FlakeResult> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_changed_files` is never used
[INFO] [stdout]    --> src/probe.rs:417:4
[INFO] [stdout]     |
[INFO] [stdout] 417 | fn get_changed_files(_base: &str, _head: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_source_to_probe_index` is never used
[INFO] [stdout]    --> src/probe.rs:423:4
[INFO] [stdout]     |
[INFO] [stdout] 423 | fn build_source_to_probe_index(cache_dir: &Path) -> Result<HashMap<String, Vec<String>>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_affected_probes` is never used
[INFO] [stdout]    --> src/probe.rs:451:4
[INFO] [stdout]     |
[INFO] [stdout] 451 | fn find_affected_probes(changed_files: &[String], index: &HashMap<String, Vec<String>>) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CoverageBackend` is never used
[INFO] [stdout]    --> src/probe.rs:501:6
[INFO] [stdout]     |
[INFO] [stdout] 501 | enum CoverageBackend {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_coverage_backend` is never used
[INFO] [stdout]    --> src/probe.rs:506:4
[INFO] [stdout]     |
[INFO] [stdout] 506 | fn detect_coverage_backend() -> CoverageBackend {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_llvm_cov_coverage` is never used
[INFO] [stdout]    --> src/probe.rs:515:4
[INFO] [stdout]     |
[INFO] [stdout] 515 | fn run_llvm_cov_coverage() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_tarpaulin_coverage` is never used
[INFO] [stdout]    --> src/probe.rs:527:4
[INFO] [stdout]     |
[INFO] [stdout] 527 | fn run_tarpaulin_coverage() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_html_report` is never used
[INFO] [stdout]    --> src/probe.rs:539:4
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn generate_html_report() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_html_report` is never used
[INFO] [stdout]    --> src/probe.rs:566:4
[INFO] [stdout]     |
[INFO] [stdout] 566 | fn open_html_report() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_tag_index` is never used
[INFO] [stdout]    --> src/probe.rs:700:4
[INFO] [stdout]     |
[INFO] [stdout] 700 | fn load_tag_index() -> Result<Vec<TagEntry>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filter_probes_by_tags` is never used
[INFO] [stdout]    --> src/probe.rs:710:4
[INFO] [stdout]     |
[INFO] [stdout] 710 | fn filter_probes_by_tags(index: &[TagEntry], include_tags: &[String], exclude_tags: &[String]) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_containers` is never used
[INFO] [stdout]    --> src/probe.rs:825:4
[INFO] [stdout]     |
[INFO] [stdout] 825 | fn start_containers() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_probes_with_env` is never used
[INFO] [stdout]    --> src/probe.rs:833:4
[INFO] [stdout]     |
[INFO] [stdout] 833 | fn run_probes_with_env() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stop_containers` is never used
[INFO] [stdout]    --> src/probe.rs:844:4
[INFO] [stdout]     |
[INFO] [stdout] 844 | fn stop_containers() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_snapshot` is never used
[INFO] [stdout]    --> src/probe.rs:880:4
[INFO] [stdout]     |
[INFO] [stdout] 880 | fn extract_snapshot(snapshot_dir: &Path, output_dir: &Path) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restore_environment` is never used
[INFO] [stdout]    --> src/probe.rs:888:4
[INFO] [stdout]     |
[INFO] [stdout] 888 | fn restore_environment(metadata: &ReplaySnapshot) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_probes` is never used
[INFO] [stdout]     --> src/probe.rs:1001:4
[INFO] [stdout]      |
[INFO] [stdout] 1001 | fn run_probes(probes: &[String]) -> Result<()> {
[INFO] [stdout]      |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]    --> src/scrubme/scrub.rs:714:4
[INFO] [stdout]     |
[INFO] [stdout] 714 | fn main() -> Result<()> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `security_icon`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:357:29
[INFO] [stdout]     |
[INFO] [stdout] 357 |                         let security_icon = if analysis.security_score >= 80 {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_security_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `performance_icon`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:362:29
[INFO] [stdout]     |
[INFO] [stdout] 362 |                         let performance_icon = if analysis.performance_score >= 80 {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_performance_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]    --> src/sweeping/src/away.rs:869:5
[INFO] [stdout]     |
[INFO] [stdout] 867 | struct PrintStatementVisitor<'a> {
[INFO] [stdout]     |        --------------------- field in this struct
[INFO] [stdout] 868 |     file_path: &'a Path,
[INFO] [stdout] 869 |     content: &'a str,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]     --> src/sweeping/src/away.rs:1090:4
[INFO] [stdout]      |
[INFO] [stdout] 1090 | fn main() -> Result<()> {
[INFO] [stdout]      |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `visibility` is never read
[INFO] [stdout]   --> src/tools/test_gen.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct FunctionInfo {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     visibility: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_attribute_tokens` is never used
[INFO] [stdout]    --> src/tools/refactor_engine.rs:851:16
[INFO] [stdout]     |
[INFO] [stdout] 591 |         impl CodeVisitor<'_> {
[INFO] [stdout]     |         -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 851 |             fn parse_attribute_tokens(&self, attr: &syn::Attribute) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_file` is never read
[INFO] [stdout]    --> src/tools/rust_mentor.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |         struct CodeVisitor<'a> {
[INFO] [stdout]     |                ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 180 |             current_file: String,
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReleaseConfig` is never constructed
[INFO] [stdout]   --> src/tools/release_automation.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct ReleaseConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `detect_blocking_operations`, `analyze_await_patterns`, and `detect_deadlock_patterns` are never used
[INFO] [stdout]    --> src/tools/async_lint.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl AsyncLintTool {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn detect_blocking_operations(&self, ast: &syn::File) -> Vec<BlockingOperation> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn analyze_await_patterns(&self, functions: &[syn::ItemFn]) -> Vec<AwaitIssue> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn detect_deadlock_patterns(&self, ast: &syn::File) -> Vec<DeadlockRisk> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `file_path` is never read
[INFO] [stdout]    --> src/tools/async_lint.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 259 | struct AsyncVisitor {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] 260 |     file_path: String,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `number` is never read
[INFO] [stdout]   --> src/tools/proto_bind.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct ProtoField {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     number: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProtoField` 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 `extract_validation_from_meta` is never used
[INFO] [stdout]    --> src/tools/builder_gen.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl BuilderGenTool {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn extract_validation_from_meta(&self, meta: &syn::Meta, rules: &mut Vec<String>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `attributes` and `line_number` are never read
[INFO] [stdout]   --> src/tools/trait_explorer.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct TraitDefinition {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     attributes: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 22 |     file_path: String,
[INFO] [stdout] 23 |     line_number: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitDefinition` 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 `name` is never read
[INFO] [stdout]   --> src/tools/trait_explorer.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct TraitMethod {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 27 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitMethod` 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 `methods`, `line_number`, and `is_foreign` are never read
[INFO] [stdout]   --> src/tools/trait_explorer.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct TraitImplementation {
[INFO] [stdout]    |        ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     methods: Vec<ImplMethod>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 37 |     file_path: String,
[INFO] [stdout] 38 |     line_number: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 39 |     is_foreign: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitImplementation` 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 `name` and `is_override` are never read
[INFO] [stdout]   --> src/tools/trait_explorer.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct ImplMethod {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 43 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 44 |     is_override: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ImplMethod` 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 `TraitAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/trait_explorer.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct TraitAnalysis {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TraitGraph` is never constructed
[INFO] [stdout]   --> src/tools/trait_explorer.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct TraitGraph {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trait_name`, `target_type`, and `reason` are never read
[INFO] [stdout]   --> src/tools/trait_explorer.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct TraitSuggestion {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] 61 |     trait_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 62 |     target_type: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 63 |     reason: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitSuggestion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `extract_dependencies` and `parse_dependency_info` are never used
[INFO] [stdout]   --> src/tools/feature_map.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl FeatureMapTool {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn extract_dependencies(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn parse_dependency_info(&self, dep_value: &Value) -> DependencyInfo {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DependencyInfo` is never constructed
[INFO] [stdout]    --> src/tools/feature_map.rs:441:8
[INFO] [stdout]     |
[INFO] [stdout] 441 | struct DependencyInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `format_expanded_code`, `format_as_html`, and `format_as_json` are never used
[INFO] [stdout]    --> src/tools/macro_expand.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl MacroExpandTool {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 267 |     fn format_expanded_code(&self, code: &str, format: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     fn format_as_html(&self, code: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     fn format_as_json(&self, code: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `has_serde_attrs` is never read
[INFO] [stdout]   --> src/tools/serde_validator.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct FieldAnalysis {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     has_serde_attrs: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldAnalysis` 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 `description` and `example` are never read
[INFO] [stdout]    --> src/tools/secret_scanner.rs:490:5
[INFO] [stdout]     |
[INFO] [stdout] 486 | struct SecretPattern {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 490 |     description: String,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 491 |     example: String,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SecretPattern` 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 `UnsafeVisitor` is never constructed
[INFO] [stdout]   --> src/tools/unsafe_analyzer.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | struct UnsafeVisitor {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_unsafe_usage`, `assess_risk`, and `generate_suggestion` are never used
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:61:8
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl UnsafeVisitor {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  61 |     fn new(file_path: String) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     fn add_unsafe_usage(&mut self, unsafe_type: String, context: String, line: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     fn assess_risk(&self, unsafe_type: &str, context: &str) -> (String, bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn generate_suggestion(&self, unsafe_type: &str, context: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix_suggestions`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:551:13
[INFO] [stdout]     |
[INFO] [stdout] 551 |         let fix_suggestions = matches.get_flag("fix-suggestions");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fix_suggestions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `library`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:552:13
[INFO] [stdout]     |
[INFO] [stdout] 552 |         let library = matches.get_one::<String>("library").unwrap();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_library`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:170:9
[INFO] [stdout]     |
[INFO] [stdout] 170 |         pattern: &SecretPattern,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exclude_vendor`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:558:13
[INFO] [stdout]     |
[INFO] [stdout] 558 |         let exclude_vendor = matches.get_flag("exclude-vendor");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exclude_vendor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_tests`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:559:13
[INFO] [stdout]     |
[INFO] [stdout] 559 |         let include_tests = matches.get_flag("include-tests");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `finding`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:603:22
[INFO] [stdout]     |
[INFO] [stdout] 603 |             .filter(|finding| {
[INFO] [stdout]     |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_finding`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/tools/mod.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 |         if REGISTRY.is_none() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/tools/mod.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |         REGISTRY.as_ref().unwrap()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:115:54
[INFO] [stdout]     |
[INFO] [stdout] 115 |     fn generate_suggestion(&self, unsafe_type: &str, context: &str) -> String {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_risky`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:376:13
[INFO] [stdout]     |
[INFO] [stdout] 376 |         let total_risky = critical_count + high_count + medium_count;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_risky`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_context`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 |         let show_context = matches.get_flag("show-context");
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/tools/lifetime_visualizer.rs:392:32
[INFO] [stdout]     |
[INFO] [stdout] 392 |         for where_predicate in &node.sig.generics.where_clause {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 392 -         for where_predicate in &node.sig.generics.where_clause {
[INFO] [stdout] 392 +         while let Some(where_predicate) = &node.sig.generics.where_clause {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 392 -         for where_predicate in &node.sig.generics.where_clause {
[INFO] [stdout] 392 +         if let Some(where_predicate) = &node.sig.generics.where_clause {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/tools/license_bundler.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |         version: &str,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `third_party_notices`
[INFO] [stdout]    --> src/tools/license_bundler.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |         let third_party_notices = matches.get_flag("third-party-notices");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_third_party_notices`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/tools/license_bundler.rs:647:13
[INFO] [stdout]     |
[INFO] [stdout] 647 |         let format = matches.get_one::<String>("format").unwrap();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exclude_dev`
[INFO] [stdout]    --> src/tools/license_bundler.rs:648:13
[INFO] [stdout]     |
[INFO] [stdout] 648 |         let exclude_dev = matches.get_flag("exclude-dev");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exclude_dev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `IdeaHistoryEntry` is more private than the item `get_idea_history`
[INFO] [stdout]   --> src/cmd/idea.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_idea_history(limit: usize) -> Result<Vec<IdeaHistoryEntry>> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `get_idea_history` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `IdeaHistoryEntry` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/cmd/idea.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | struct IdeaHistoryEntry {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PrintContext` is more private than the item `PrintStatement::context`
[INFO] [stdout]    --> src/sweeping/src/away.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub context: PrintContext,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^ field `PrintStatement::context` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `PrintContext` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/sweeping/src/away.rs:148:1
[INFO] [stdout]     |
[INFO] [stdout] 148 | enum PrintContext {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `checkout_git_commit` is never used
[INFO] [stdout]    --> src/anchor.rs:379:8
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl AnchorManager {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 379 |     fn checkout_git_commit(&self, commit: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]  --> src/captain/create_secure_binary.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn main() -> Result<()> {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_secure_binary` is never used
[INFO] [stdout]   --> src/captain/create_secure_binary.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn create_secure_binary(input_path: &str, output_path: &str, key: &str) -> Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_self_protected_binary` is never used
[INFO] [stdout]  --> src/captain/create_self_protected_binary.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn create_self_protected_binary(
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryEncryptor` is never constructed
[INFO] [stdout]  --> src/captain/encrypt_binaries.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct BinaryEncryptor {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `xor_encrypt`, `encrypt_binary`, and `create_self_decrypting_binary` are never used
[INFO] [stdout]   --> src/captain/encrypt_binaries.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl BinaryEncryptor {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 10 |     fn new(key: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn xor_encrypt(&self, data: &[u8]) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn encrypt_binary(&self, input_path: &Path, output_path: &Path) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn create_self_decrypting_binary(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encrypt_releases_directory` is never used
[INFO] [stdout]    --> src/captain/encrypt_binaries.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn encrypt_releases_directory(releases_dir: &Path, encryption_key: &str) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_self_decrypting_releases` is never used
[INFO] [stdout]    --> src/captain/encrypt_binaries.rs:136:4
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn create_self_decrypting_releases(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_ip_address` and `fetch_external_ip` are never used
[INFO] [stdout]    --> src/captain/license.rs:468:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl LicenseManager {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 468 |     fn get_ip_address(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 482 |     fn fetch_external_ip(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Red` is never constructed
[INFO] [stdout]    --> src/captain/treasure_map.rs:452:5
[INFO] [stdout]     |
[INFO] [stdout] 449 | enum NodeColor {
[INFO] [stdout]     |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 452 |     Red,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NodeColor` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `blocking_compilation` and `frequently_ignored` are never read
[INFO] [stdout]    --> src/display.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  99 | pub struct PriorityWeights {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 100 |     never_seen_before: f32,
[INFO] [stdout] 101 |     blocking_compilation: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 |     has_quick_fix: f32,
[INFO] [stdout] 103 |     frequently_ignored: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PriorityWeights` 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 `priority` is never read
[INFO] [stdout]    --> src/display.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct CoachingTip {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 160 |     priority: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CoachingTip` 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 `start_time` is never read
[INFO] [stdout]   --> src/journey.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct JourneyRecorder {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     start_time: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_command_from_buffer` is never used
[INFO] [stdout]    --> src/journey.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl JourneyRecorder {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn parse_command_from_buffer(buffer: &str) -> Option<JourneyCommand> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_flake_iterations` is never used
[INFO] [stdout]    --> src/probe.rs:358:4
[INFO] [stdout]     |
[INFO] [stdout] 358 | fn run_flake_iterations(binary: &Path, iterations: usize) -> Result<FlakeResult> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_changed_files` is never used
[INFO] [stdout]    --> src/probe.rs:417:4
[INFO] [stdout]     |
[INFO] [stdout] 417 | fn get_changed_files(_base: &str, _head: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_source_to_probe_index` is never used
[INFO] [stdout]    --> src/probe.rs:423:4
[INFO] [stdout]     |
[INFO] [stdout] 423 | fn build_source_to_probe_index(cache_dir: &Path) -> Result<HashMap<String, Vec<String>>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_affected_probes` is never used
[INFO] [stdout]    --> src/probe.rs:451:4
[INFO] [stdout]     |
[INFO] [stdout] 451 | fn find_affected_probes(changed_files: &[String], index: &HashMap<String, Vec<String>>) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CoverageBackend` is never used
[INFO] [stdout]    --> src/probe.rs:501:6
[INFO] [stdout]     |
[INFO] [stdout] 501 | enum CoverageBackend {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_coverage_backend` is never used
[INFO] [stdout]    --> src/probe.rs:506:4
[INFO] [stdout]     |
[INFO] [stdout] 506 | fn detect_coverage_backend() -> CoverageBackend {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_llvm_cov_coverage` is never used
[INFO] [stdout]    --> src/probe.rs:515:4
[INFO] [stdout]     |
[INFO] [stdout] 515 | fn run_llvm_cov_coverage() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_tarpaulin_coverage` is never used
[INFO] [stdout]    --> src/probe.rs:527:4
[INFO] [stdout]     |
[INFO] [stdout] 527 | fn run_tarpaulin_coverage() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_html_report` is never used
[INFO] [stdout]    --> src/probe.rs:539:4
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn generate_html_report() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_html_report` is never used
[INFO] [stdout]    --> src/probe.rs:566:4
[INFO] [stdout]     |
[INFO] [stdout] 566 | fn open_html_report() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_tag_index` is never used
[INFO] [stdout]    --> src/probe.rs:700:4
[INFO] [stdout]     |
[INFO] [stdout] 700 | fn load_tag_index() -> Result<Vec<TagEntry>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filter_probes_by_tags` is never used
[INFO] [stdout]    --> src/probe.rs:710:4
[INFO] [stdout]     |
[INFO] [stdout] 710 | fn filter_probes_by_tags(index: &[TagEntry], include_tags: &[String], exclude_tags: &[String]) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_containers` is never used
[INFO] [stdout]    --> src/probe.rs:825:4
[INFO] [stdout]     |
[INFO] [stdout] 825 | fn start_containers() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_probes_with_env` is never used
[INFO] [stdout]    --> src/probe.rs:833:4
[INFO] [stdout]     |
[INFO] [stdout] 833 | fn run_probes_with_env() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stop_containers` is never used
[INFO] [stdout]    --> src/probe.rs:844:4
[INFO] [stdout]     |
[INFO] [stdout] 844 | fn stop_containers() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_snapshot` is never used
[INFO] [stdout]    --> src/probe.rs:880:4
[INFO] [stdout]     |
[INFO] [stdout] 880 | fn extract_snapshot(snapshot_dir: &Path, output_dir: &Path) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restore_environment` is never used
[INFO] [stdout]    --> src/probe.rs:888:4
[INFO] [stdout]     |
[INFO] [stdout] 888 | fn restore_environment(metadata: &ReplaySnapshot) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_probes` is never used
[INFO] [stdout]     --> src/probe.rs:1001:4
[INFO] [stdout]      |
[INFO] [stdout] 1001 | fn run_probes(probes: &[String]) -> Result<()> {
[INFO] [stdout]      |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]    --> src/scrubme/scrub.rs:714:4
[INFO] [stdout]     |
[INFO] [stdout] 714 | fn main() -> Result<()> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]    --> src/sweeping/src/away.rs:869:5
[INFO] [stdout]     |
[INFO] [stdout] 867 | struct PrintStatementVisitor<'a> {
[INFO] [stdout]     |        --------------------- field in this struct
[INFO] [stdout] 868 |     file_path: &'a Path,
[INFO] [stdout] 869 |     content: &'a str,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]     --> src/sweeping/src/away.rs:1090:4
[INFO] [stdout]      |
[INFO] [stdout] 1090 | fn main() -> Result<()> {
[INFO] [stdout]      |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `visibility` is never read
[INFO] [stdout]   --> src/tools/test_gen.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct FunctionInfo {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     visibility: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_attribute_tokens` is never used
[INFO] [stdout]    --> src/tools/refactor_engine.rs:851:16
[INFO] [stdout]     |
[INFO] [stdout] 591 |         impl CodeVisitor<'_> {
[INFO] [stdout]     |         -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 851 |             fn parse_attribute_tokens(&self, attr: &syn::Attribute) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_file` is never read
[INFO] [stdout]    --> src/tools/rust_mentor.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |         struct CodeVisitor<'a> {
[INFO] [stdout]     |                ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 180 |             current_file: String,
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReleaseConfig` is never constructed
[INFO] [stdout]   --> src/tools/release_automation.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct ReleaseConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `detect_blocking_operations`, `analyze_await_patterns`, and `detect_deadlock_patterns` are never used
[INFO] [stdout]    --> src/tools/async_lint.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl AsyncLintTool {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn detect_blocking_operations(&self, ast: &syn::File) -> Vec<BlockingOperation> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn analyze_await_patterns(&self, functions: &[syn::ItemFn]) -> Vec<AwaitIssue> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn detect_deadlock_patterns(&self, ast: &syn::File) -> Vec<DeadlockRisk> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `file_path` is never read
[INFO] [stdout]    --> src/tools/async_lint.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 259 | struct AsyncVisitor {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] 260 |     file_path: String,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `number` is never read
[INFO] [stdout]   --> src/tools/proto_bind.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct ProtoField {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     number: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProtoField` 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 `extract_validation_from_meta` is never used
[INFO] [stdout]    --> src/tools/builder_gen.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl BuilderGenTool {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn extract_validation_from_meta(&self, meta: &syn::Meta, rules: &mut Vec<String>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `attributes` and `line_number` are never read
[INFO] [stdout]   --> src/tools/trait_explorer.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct TraitDefinition {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     attributes: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 22 |     file_path: String,
[INFO] [stdout] 23 |     line_number: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitDefinition` 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 `name` is never read
[INFO] [stdout]   --> src/tools/trait_explorer.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct TraitMethod {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 27 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitMethod` 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 `methods`, `line_number`, and `is_foreign` are never read
[INFO] [stdout]   --> src/tools/trait_explorer.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct TraitImplementation {
[INFO] [stdout]    |        ------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     methods: Vec<ImplMethod>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 37 |     file_path: String,
[INFO] [stdout] 38 |     line_number: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 39 |     is_foreign: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitImplementation` 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 `name` and `is_override` are never read
[INFO] [stdout]   --> src/tools/trait_explorer.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct ImplMethod {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 43 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 44 |     is_override: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ImplMethod` 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 `TraitAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/trait_explorer.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct TraitAnalysis {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TraitGraph` is never constructed
[INFO] [stdout]   --> src/tools/trait_explorer.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct TraitGraph {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trait_name`, `target_type`, and `reason` are never read
[INFO] [stdout]   --> src/tools/trait_explorer.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct TraitSuggestion {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] 61 |     trait_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 62 |     target_type: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 63 |     reason: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TraitSuggestion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `extract_dependencies` and `parse_dependency_info` are never used
[INFO] [stdout]   --> src/tools/feature_map.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl FeatureMapTool {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn extract_dependencies(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn parse_dependency_info(&self, dep_value: &Value) -> DependencyInfo {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DependencyInfo` is never constructed
[INFO] [stdout]    --> src/tools/feature_map.rs:441:8
[INFO] [stdout]     |
[INFO] [stdout] 441 | struct DependencyInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `format_expanded_code`, `format_as_html`, and `format_as_json` are never used
[INFO] [stdout]    --> src/tools/macro_expand.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl MacroExpandTool {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 267 |     fn format_expanded_code(&self, code: &str, format: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     fn format_as_html(&self, code: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     fn format_as_json(&self, code: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]   --> src/tools/snapshot_test.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct SnapshotData {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] 47 |     name: String,
[INFO] [stdout] 48 |     content: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SnapshotData` 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 `has_serde_attrs` is never read
[INFO] [stdout]   --> src/tools/serde_validator.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct FieldAnalysis {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     has_serde_attrs: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldAnalysis` 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 `description` and `example` are never read
[INFO] [stdout]    --> src/tools/secret_scanner.rs:490:5
[INFO] [stdout]     |
[INFO] [stdout] 486 | struct SecretPattern {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 490 |     description: String,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 491 |     example: String,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SecretPattern` 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 `UnsafeVisitor` is never constructed
[INFO] [stdout]   --> src/tools/unsafe_analyzer.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | struct UnsafeVisitor {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_unsafe_usage`, `assess_risk`, and `generate_suggestion` are never used
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:61:8
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl UnsafeVisitor {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  61 |     fn new(file_path: String) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     fn add_unsafe_usage(&mut self, unsafe_type: String, context: String, line: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     fn assess_risk(&self, unsafe_type: &str, context: &str) -> (String, bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn generate_suggestion(&self, unsafe_type: &str, context: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/tools/mod.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 |         if REGISTRY.is_none() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/tools/mod.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |         REGISTRY.as_ref().unwrap()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/tools/lifetime_visualizer.rs:392:32
[INFO] [stdout]     |
[INFO] [stdout] 392 |         for where_predicate in &node.sig.generics.where_clause {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 392 -         for where_predicate in &node.sig.generics.where_clause {
[INFO] [stdout] 392 +         while let Some(where_predicate) = &node.sig.generics.where_clause {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 392 -         for where_predicate in &node.sig.generics.where_clause {
[INFO] [stdout] 392 +         if let Some(where_predicate) = &node.sig.generics.where_clause {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/main.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/main.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reqwest`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use reqwest;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BuildProgressBar`, `BuildRecord`, and `BuildTracker`
[INFO] [stdout]   --> src/main.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | use progress::{BuildProgressBar, BuildTracker, BuildRecord};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::Ordering`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::atomic::Ordering;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Output`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::process::Output;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `captain`
[INFO] [stdout]   --> src/main.rs:19:58
[INFO] [stdout]    |
[INFO] [stdout] 19 |     activate, journey, idea, tool, scrub, sweep, anchor, captain, tide, ddr,
[INFO] [stdout]    |                                                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `captain_status` and `shell_integration::ShellIntegration`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     shell_integration::ShellIntegration, captain_status,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cargo_mate::sweeping`
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use cargo_mate::sweeping;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cargo_mate::journey::JourneyPlayer`
[INFO] [stdout]   --> src/main.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use cargo_mate::journey::JourneyPlayer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::ToTokens`
[INFO] [stdout]  --> src/tools/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use quote::ToTokens;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::*`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use colored::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/main.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde_json;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/main.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reqwest`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use reqwest;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BuildProgressBar`, `BuildRecord`, and `BuildTracker`
[INFO] [stdout]   --> src/main.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 | use progress::{BuildProgressBar, BuildTracker, BuildRecord};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::Ordering`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::atomic::Ordering;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Output`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::process::Output;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/tools/cross_test.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> src/tools/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub mod cross_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `captain`
[INFO] [stdout]   --> src/main.rs:19:58
[INFO] [stdout]    |
[INFO] [stdout] 19 |     activate, journey, idea, tool, scrub, sweep, anchor, captain, tide, ddr,
[INFO] [stdout]    |                                                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `captain_status` and `shell_integration::ShellIntegration`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     shell_integration::ShellIntegration, captain_status,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cargo_mate::sweeping`
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use cargo_mate::sweeping;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cargo_mate::journey::JourneyPlayer`
[INFO] [stdout]   --> src/main.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use cargo_mate::journey::JourneyPlayer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::ToTokens`
[INFO] [stdout]  --> src/tools/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use quote::ToTokens;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/tools/cross_test.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> src/tools/mod.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub mod cross_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap`, `HashSet`, and `VecDeque`
[INFO] [stdout]  --> src/tools/refactor_engine.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, `ItemImpl`, `ItemMod`, `Item`, and `PathSegment`
[INFO] [stdout]   --> src/tools/refactor_engine.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 |     parse_file, File, Item, ItemFn, ItemStruct, ItemTrait, ItemImpl, ItemMod, Fields,
[INFO] [stdout]    |                 ^^^^  ^^^^                                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 12 |     Type, PathSegment, Ident, visit::Visit,
[INFO] [stdout]    |           ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tools/cross_test.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/cross_test.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap`, `HashSet`, and `VecDeque`
[INFO] [stdout]  --> src/tools/refactor_engine.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, `ItemImpl`, `ItemMod`, `Item`, and `PathSegment`
[INFO] [stdout]   --> src/tools/refactor_engine.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 |     parse_file, File, Item, ItemFn, ItemStruct, ItemTrait, ItemImpl, ItemMod, Fields,
[INFO] [stdout]    |                 ^^^^  ^^^^                                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 12 |     Type, PathSegment, Ident, visit::Visit,
[INFO] [stdout]    |           ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `File`, `Ident`, `Item`, and `PathSegment`
[INFO] [stdout]  --> src/tools/rust_mentor.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemFn, ItemStruct, ItemTrait, Fields, Field, Type,
[INFO] [stdout]   |                 ^^^^  ^^^^                                         ^^^^^
[INFO] [stdout] 9 |     PathSegment, Ident, visit::Visit,
[INFO] [stdout]   |     ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `File`, `Ident`, `Item`, and `PathSegment`
[INFO] [stdout]  --> src/tools/rust_mentor.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemFn, ItemStruct, ItemTrait, Fields, Field, Type,
[INFO] [stdout]   |                 ^^^^  ^^^^                                         ^^^^^
[INFO] [stdout] 9 |     PathSegment, Ident, visit::Visit,
[INFO] [stdout]   |     ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OutputFormat` and `parse_output_format`
[INFO] [stdout]  --> src/tools/release_automation.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/bloat_check.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OutputFormat` and `parse_output_format`
[INFO] [stdout]  --> src/tools/release_automation.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/bloat_check.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/cache_analyzer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/cache_analyzer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprAwait`, `ExprCall`, `ItemFn`, `Type`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/async_lint.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, visit::Visit, ItemFn, ExprAwait, ExprCall, Type, spanned::Spanned};
[INFO] [stdout]   |                                     ^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::ToTokens`
[INFO] [stdout]  --> src/tools/async_lint.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::ToTokens;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprAwait`, `ExprCall`, `ItemFn`, `Type`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/async_lint.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, visit::Visit, ItemFn, ExprAwait, ExprCall, Type, spanned::Spanned};
[INFO] [stdout]   |                                     ^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::ToTokens`
[INFO] [stdout]  --> src/tools/async_lint.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::ToTokens;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, and `PathSegment`
[INFO] [stdout]  --> src/tools/crud_gen.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident};
[INFO] [stdout]   |                       ^^^^                                         ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/crud_gen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, and `PathSegment`
[INFO] [stdout]  --> src/tools/crud_gen.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident};
[INFO] [stdout]   |                       ^^^^                                         ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/crud_gen.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/crud_gen.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `Fields`, `File`, `Ident`, `ItemStruct`, `Item`, `PathSegment`, `Type`, and `parse_file`
[INFO] [stdout]  --> src/tools/proto_bind.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use syn::{parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^  ^^^^^^^^^^  ^^^^^^  ^^^^^  ^^^^  ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/proto_bind.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/proto_bind.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/crud_gen.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `Fields`, `File`, `Ident`, `ItemStruct`, `Item`, `PathSegment`, `Type`, and `parse_file`
[INFO] [stdout]  --> src/tools/proto_bind.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use syn::{parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^  ^^^^^^^^^^  ^^^^^^  ^^^^^  ^^^^  ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/proto_bind.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/proto_bind.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File` and `Item`
[INFO] [stdout]  --> src/tools/error_derive.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, File, Item, ItemFn, ItemImpl, ReturnType, Type, visit::Visit};
[INFO] [stdout]   |                       ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/error_derive.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/error_derive.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, `PathSegment`, and `visit::Visit`
[INFO] [stdout]  --> src/tools/builder_gen.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident,
[INFO] [stdout]   |                 ^^^^                                         ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 8 |     visit::Visit,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/builder_gen.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/builder_gen.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File` and `Item`
[INFO] [stdout]  --> src/tools/error_derive.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use syn::{parse_file, File, Item, ItemFn, ItemImpl, ReturnType, Type, visit::Visit};
[INFO] [stdout]   |                       ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]  --> src/tools/error_derive.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use quote::quote;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `Fields`, `File`, `Ident`, `Item`, `PathSegment`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/example_gen.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parse_file, File, Item, ItemFn, Fields, Field, Type, PathSegment, Ident,
[INFO] [stdout]   |                 ^^^^  ^^^^          ^^^^^^  ^^^^^        ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 8 |     visit::Visit, spanned::Spanned,
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/error_derive.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/example_gen.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/example_gen.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Ident`, `PathSegment`, and `visit::Visit`
[INFO] [stdout]  --> src/tools/builder_gen.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parse_file, File, Item, ItemStruct, Fields, Field, Type, PathSegment, Ident,
[INFO] [stdout]   |                 ^^^^                                         ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 8 |     visit::Visit,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/builder_gen.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/builder_gen.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `Fields`, `File`, `Ident`, `Item`, `PathSegment`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/example_gen.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     parse_file, File, Item, ItemFn, Fields, Field, Type, PathSegment, Ident,
[INFO] [stdout]   |                 ^^^^  ^^^^          ^^^^^^  ^^^^^        ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 8 |     visit::Visit, spanned::Spanned,
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/example_gen.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/example_gen.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `File`, `Ident`, `Item`, `PathSegment`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/api_changelog.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemFn, ItemStruct, ItemEnum, Fields, Field, Type,
[INFO] [stdout]   |                 ^^^^  ^^^^                                        ^^^^^
[INFO] [stdout] 9 |     PathSegment, Ident, visit::Visit, spanned::Spanned,
[INFO] [stdout]   |     ^^^^^^^^^^^  ^^^^^                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/api_changelog.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/api_changelog.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Field`, `File`, `Ident`, `Item`, `PathSegment`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/api_changelog.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemFn, ItemStruct, ItemEnum, Fields, Field, Type,
[INFO] [stdout]   |                 ^^^^  ^^^^                                        ^^^^^
[INFO] [stdout] 9 |     PathSegment, Ident, visit::Visit, spanned::Spanned,
[INFO] [stdout]   |     ^^^^^^^^^^^  ^^^^^                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/api_changelog.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/api_changelog.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Item`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/trait_explorer.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemTrait, ItemImpl, TraitItem, visit::Visit,
[INFO] [stdout]   |                 ^^^^  ^^^^
[INFO] [stdout] 9 |     spanned::Spanned,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/trait_explorer.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/trait_explorer.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `Item`, and `spanned::Spanned`
[INFO] [stdout]  --> src/tools/trait_explorer.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, File, Item, ItemTrait, ItemImpl, TraitItem, visit::Visit,
[INFO] [stdout]   |                 ^^^^  ^^^^
[INFO] [stdout] 9 |     spanned::Spanned,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quote::quote`
[INFO] [stdout]   --> src/tools/trait_explorer.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use quote::quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]   --> src/tools/trait_explorer.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use proc_macro2::TokenStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]  --> src/tools/feature_map.rs:4:42
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]  --> src/tools/feature_map.rs:4:42
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glob`
[INFO] [stdout]  --> src/tools/vendorize.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use glob;
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glob`
[INFO] [stdout]  --> src/tools/vendorize.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use glob;
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ItemMacro`
[INFO] [stdout]  --> src/tools/macro_expand.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, visit::Visit, ItemMacro, Macro};
[INFO] [stdout]   |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToTokens`
[INFO] [stdout]  --> src/tools/macro_expand.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use quote::{quote, ToTokens};
[INFO] [stdout]   |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/lifetime_visualizer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ItemMacro`
[INFO] [stdout]  --> src/tools/macro_expand.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, visit::Visit, ItemMacro, Macro};
[INFO] [stdout]   |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Lifetime` and `TypeReference`
[INFO] [stdout]  --> src/tools/lifetime_visualizer.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, visit::Visit, ItemFn, Lifetime, TypeReference, FnArg, ReturnType,
[INFO] [stdout]   |                                       ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToTokens`
[INFO] [stdout]  --> src/tools/macro_expand.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use quote::{quote, ToTokens};
[INFO] [stdout]   |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/lifetime_visualizer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Lifetime` and `TypeReference`
[INFO] [stdout]  --> src/tools/lifetime_visualizer.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 |     parse_file, visit::Visit, ItemFn, Lifetime, TypeReference, FnArg, ReturnType,
[INFO] [stdout]   |                                       ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FnArg`, `ItemTrait`, `Pat`, `TraitItem`, and `Type`
[INFO] [stdout]  --> src/tools/mock_derive.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, ItemTrait, TraitItem, FnArg, Pat, Type};
[INFO] [stdout]   |                       ^^^^^^^^^  ^^^^^^^^^  ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/mock_derive.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tools/coverage_guard.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FnArg`, `ItemTrait`, `Pat`, `TraitItem`, and `Type`
[INFO] [stdout]  --> src/tools/mock_derive.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, ItemTrait, TraitItem, FnArg, Pat, Type};
[INFO] [stdout]   |                       ^^^^^^^^^  ^^^^^^^^^  ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/snapshot_test.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proc_macro2::TokenStream`
[INFO] [stdout]  --> src/tools/mock_derive.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use proc_macro2::TokenStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tools/coverage_guard.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/tools/wasm_optimize.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/tools/wasm_optimize.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path as SynPath`
[INFO] [stdout]  --> src/tools/migration_gen.rs:7:62
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, Item, ItemStruct, Fields, Field, Type, Path as SynPath};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Attribute`, `Fields`, `ItemStruct`, `Type`, and `parse2`
[INFO] [stdout]  --> src/tools/serde_validator.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, parse2, Item, ItemStruct, Fields, Field, Type, Attribute, Meta};
[INFO] [stdout]   |                       ^^^^^^        ^^^^^^^^^^  ^^^^^^         ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path as SynPath`
[INFO] [stdout]  --> src/tools/migration_gen.rs:7:62
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, Item, ItemStruct, Fields, Field, Type, Path as SynPath};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Map` and `Value`
[INFO] [stdout]  --> src/tools/serde_validator.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use serde_json::{Value, Map};
[INFO] [stdout]   |                  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/sql_macro_check.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ItemMacro`, `Item`, `Lit`, and `parse_file`
[INFO] [stdout]  --> src/tools/sql_macro_check.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use syn::{parse_file, Item, ItemMacro, Lit};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Attribute`, `Fields`, `ItemStruct`, `Type`, and `parse2`
[INFO] [stdout]  --> src/tools/serde_validator.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, parse2, Item, ItemStruct, Fields, Field, Type, Attribute, Meta};
[INFO] [stdout]   |                       ^^^^^^        ^^^^^^^^^^  ^^^^^^         ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Map` and `Value`
[INFO] [stdout]  --> src/tools/serde_validator.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use serde_json::{Value, Map};
[INFO] [stdout]   |                  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/sql_macro_check.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ItemMacro`, `Item`, `Lit`, and `parse_file`
[INFO] [stdout]  --> src/tools/sql_macro_check.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use syn::{parse_file, Item, ItemMacro, Lit};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/secret_scanner.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/secret_scanner.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FnArg`, `ItemFn`, `Item`, `Pat`, `Type`, and `parse_file`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, Item, ItemFn, FnArg, Pat, Type, visit::Visit, visit};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^^^  ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/secret_scanner.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/secret_scanner.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToolError`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OutputFormat` and `parse_output_format`
[INFO] [stdout]  --> src/tools/code_analyzer.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FnArg`, `ItemFn`, `Item`, `Pat`, `Type`, and `parse_file`
[INFO] [stdout]  --> src/tools/unsafe_analyzer.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use syn::{parse_file, Item, ItemFn, FnArg, Pat, Type, visit::Visit, visit};
[INFO] [stdout]   |           ^^^^^^^^^^  ^^^^  ^^^^^^  ^^^^^  ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/code_analyzer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cargo_mate::cmd::checklist`
[INFO] [stdout]  --> src/command_factory.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use cargo_mate::cmd::checklist;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cargo_mate::history`
[INFO] [stdout]  --> src/command_factory.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use cargo_mate::history;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BuildStats`
[INFO] [stdout]  --> src/progress/mod.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use tracker::{BuildTracker, BuildRecord, BuildStats};
[INFO] [stdout]   |                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProgressStyle`
[INFO] [stdout]  --> src/progress/mod.rs:4:39
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use animation::{BuildProgressBar, ProgressStyle};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MultiProgress` and `ProgressBar`
[INFO] [stdout]  --> src/progress/mod.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use indicatif::{ProgressBar, MultiProgress};
[INFO] [stdout]   |                     ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OutputFormat` and `parse_output_format`
[INFO] [stdout]  --> src/tools/code_analyzer.rs:1:54
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Tool, Result, ToolError, common_options, parse_output_format, OutputFormat};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tools/code_analyzer.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cargo_mate::cmd::checklist`
[INFO] [stdout]  --> src/command_factory.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use cargo_mate::cmd::checklist;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cargo_mate::history`
[INFO] [stdout]  --> src/command_factory.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use cargo_mate::history;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BuildStats`
[INFO] [stdout]  --> src/progress/mod.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use tracker::{BuildTracker, BuildRecord, BuildStats};
[INFO] [stdout]   |                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProgressStyle`
[INFO] [stdout]  --> src/progress/mod.rs:4:39
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use animation::{BuildProgressBar, ProgressStyle};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MultiProgress` and `ProgressBar`
[INFO] [stdout]  --> src/progress/mod.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use indicatif::{ProgressBar, MultiProgress};
[INFO] [stdout]   |                     ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/main.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 293 |         return journey::handle_journey(journey_action);
[INFO] [stdout]     |         ---------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 306 |     activate::handle_install();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/main.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 293 |         return journey::handle_journey(journey_action);
[INFO] [stdout]     |         ---------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 306 |     activate::handle_install();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `license_status`
[INFO] [stdout]    --> src/tools/dep_audit.rs:168:25
[INFO] [stdout]     |
[INFO] [stdout] 168 |                     let license_status = if dep.license.is_some() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_license_status`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `license_issues` is never read
[INFO] [stdout]    --> src/tools/dep_audit.rs:303:17
[INFO] [stdout]     |
[INFO] [stdout] 303 |         let mut license_issues = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `license_status`
[INFO] [stdout]    --> src/tools/dep_audit.rs:168:25
[INFO] [stdout]     |
[INFO] [stdout] 168 |                     let license_status = if dep.license.is_some() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_license_status`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `license_issues` is never read
[INFO] [stdout]    --> src/tools/dep_audit.rs:303:17
[INFO] [stdout]     |
[INFO] [stdout] 303 |         let mut license_issues = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/tools/workspace_sync.rs:232:29
[INFO] [stdout]     |
[INFO] [stdout] 232 |                 if let Some(version) = analysis.versions.values().next() {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_root`
[INFO] [stdout]    --> src/tools/workspace_sync.rs:252:9
[INFO] [stdout]     |
[INFO] [stdout] 252 |         workspace_root: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_root`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context_lines`
[INFO] [stdout]    --> src/tools/panic_analyzer.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let context_lines: usize = matches
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context_lines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suggest_fixes`
[INFO] [stdout]    --> src/tools/panic_analyzer.rs:368:13
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let suggest_fixes = matches.get_flag("suggest-fixes");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_suggest_fixes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `report`
[INFO] [stdout]    --> src/tools/cross_test.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |         let report = matches.get_flag("report");
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_report`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/tools/workspace_sync.rs:232:29
[INFO] [stdout]     |
[INFO] [stdout] 232 |                 if let Some(version) = analysis.versions.values().next() {
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace_root`
[INFO] [stdout]    --> src/tools/workspace_sync.rs:252:9
[INFO] [stdout]     |
[INFO] [stdout] 252 |         workspace_root: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace_root`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context_lines`
[INFO] [stdout]    --> src/tools/panic_analyzer.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let context_lines: usize = matches
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context_lines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suggest_fixes`
[INFO] [stdout]    --> src/tools/panic_analyzer.rs:368:13
[INFO] [stdout]     |
[INFO] [stdout] 368 |         let suggest_fixes = matches.get_flag("suggest-fixes");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_suggest_fixes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `report`
[INFO] [stdout]    --> src/tools/cross_test.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |         let report = matches.get_flag("report");
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_report`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:376:9
[INFO] [stdout]     |
[INFO] [stdout] 376 |         structs: &[StructInfo],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub_dir_name`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:509:21
[INFO] [stdout]     |
[INFO] [stdout] 509 |                 let sub_dir_name = path
[INFO] [stdout]     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_dir_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/refactor_engine.rs:504:13
[INFO] [stdout]     |
[INFO] [stdout] 504 |         let mut dependencies = Vec::new();
[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: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:592:48
[INFO] [stdout]     |
[INFO] [stdout] 592 |             fn analyze_function(node: &ItemFn, file_path: &str) -> Result<FunctionInfo> {
[INFO] [stdout]     |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:905:37
[INFO] [stdout]     |
[INFO] [stdout] 905 |             fn analyze_impl_methods(node: &ItemStruct, file_path: &str) -> Vec<String> {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:905:56
[INFO] [stdout]     |
[INFO] [stdout] 905 |             fn analyze_impl_methods(node: &ItemStruct, file_path: &str) -> Vec<String> {
[INFO] [stdout]     |                                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:910:17
[INFO] [stdout]     |
[INFO] [stdout] 910 |                 file_path: &str,
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:997:9
[INFO] [stdout]     |
[INFO] [stdout] 997 |         structs: &[StructInfo],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1096:9
[INFO] [stdout]      |
[INFO] [stdout] 1096 |         structs: &[StructInfo],
[INFO] [stdout]      |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1097:9
[INFO] [stdout]      |
[INFO] [stdout] 1097 |         traits: &[TraitInfo],
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1161:9
[INFO] [stdout]      |
[INFO] [stdout] 1161 |         traits: &[TraitInfo],
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:376:9
[INFO] [stdout]     |
[INFO] [stdout] 376 |         structs: &[StructInfo],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1345:9
[INFO] [stdout]      |
[INFO] [stdout] 1345 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1358:9
[INFO] [stdout]      |
[INFO] [stdout] 1358 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1386:9
[INFO] [stdout]      |
[INFO] [stdout] 1386 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1433:9
[INFO] [stdout]      |
[INFO] [stdout] 1433 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1444:9
[INFO] [stdout]      |
[INFO] [stdout] 1444 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub_dir_name`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:509:21
[INFO] [stdout]     |
[INFO] [stdout] 509 |                 let sub_dir_name = path
[INFO] [stdout]     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sub_dir_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/refactor_engine.rs:504:13
[INFO] [stdout]     |
[INFO] [stdout] 504 |         let mut dependencies = Vec::new();
[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: `transformation`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1542:9
[INFO] [stdout]      |
[INFO] [stdout] 1542 |         transformation: &SafeTransformation,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transformation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:592:48
[INFO] [stdout]     |
[INFO] [stdout] 592 |             fn analyze_function(node: &ItemFn, file_path: &str) -> Result<FunctionInfo> {
[INFO] [stdout]     |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `struct_count`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1733:13
[INFO] [stdout]      |
[INFO] [stdout] 1733 |         let struct_count = content.matches("struct ").count();
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_struct_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1738:13
[INFO] [stdout]      |
[INFO] [stdout] 1738 |         let mut deallocation_count = allocation_count;
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_path`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1792:40
[INFO] [stdout]      |
[INFO] [stdout] 1792 |     fn run_performance_analysis(&self, input_path: &str) -> Result<PerformanceData> {
[INFO] [stdout]      |                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_path`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1816:35
[INFO] [stdout]      |
[INFO] [stdout] 1816 |     fn run_clippy_analysis(&self, input_path: &str) -> Result<Vec<ClippyIssue>> {
[INFO] [stdout]      |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:905:37
[INFO] [stdout]     |
[INFO] [stdout] 905 |             fn analyze_impl_methods(node: &ItemStruct, file_path: &str) -> Vec<String> {
[INFO] [stdout]     |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:905:56
[INFO] [stdout]     |
[INFO] [stdout] 905 |             fn analyze_impl_methods(node: &ItemStruct, file_path: &str) -> Vec<String> {
[INFO] [stdout]     |                                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:910:17
[INFO] [stdout]     |
[INFO] [stdout] 910 |                 file_path: &str,
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/refactor_engine.rs:997:9
[INFO] [stdout]     |
[INFO] [stdout] 997 |         structs: &[StructInfo],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1096:9
[INFO] [stdout]      |
[INFO] [stdout] 1096 |         structs: &[StructInfo],
[INFO] [stdout]      |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1097:9
[INFO] [stdout]      |
[INFO] [stdout] 1097 |         traits: &[TraitInfo],
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `aggressive`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2159:13
[INFO] [stdout]      |
[INFO] [stdout] 2159 |         let aggressive = matches.get_flag("aggressive");
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_aggressive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_complexity`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2161:13
[INFO] [stdout]      |
[INFO] [stdout] 2161 |         let min_complexity: u32 = matches
[INFO] [stdout]      |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_complexity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_line_length`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2166:13
[INFO] [stdout]      |
[INFO] [stdout] 2166 |         let max_line_length: usize = matches
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_line_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `backup_dir`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2171:13
[INFO] [stdout]      |
[INFO] [stdout] 2171 |         let backup_dir = matches.get_one::<String>("backup-dir").unwrap();
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_backup_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1161:9
[INFO] [stdout]      |
[INFO] [stdout] 1161 |         traits: &[TraitInfo],
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1345:9
[INFO] [stdout]      |
[INFO] [stdout] 1345 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1358:9
[INFO] [stdout]      |
[INFO] [stdout] 1358 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1386:9
[INFO] [stdout]      |
[INFO] [stdout] 1386 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1433:9
[INFO] [stdout]      |
[INFO] [stdout] 1433 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_name`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1444:9
[INFO] [stdout]      |
[INFO] [stdout] 1444 |         function_name: &str,
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transformation`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1542:9
[INFO] [stdout]      |
[INFO] [stdout] 1542 |         transformation: &SafeTransformation,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transformation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `struct_count`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1733:13
[INFO] [stdout]      |
[INFO] [stdout] 1733 |         let struct_count = content.matches("struct ").count();
[INFO] [stdout]      |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_struct_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1738:13
[INFO] [stdout]      |
[INFO] [stdout] 1738 |         let mut deallocation_count = allocation_count;
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_path`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1792:40
[INFO] [stdout]      |
[INFO] [stdout] 1792 |     fn run_performance_analysis(&self, input_path: &str) -> Result<PerformanceData> {
[INFO] [stdout]      |                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_path`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:1816:35
[INFO] [stdout]      |
[INFO] [stdout] 1816 |     fn run_clippy_analysis(&self, input_path: &str) -> Result<Vec<ClippyIssue>> {
[INFO] [stdout]      |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `aggressive`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2159:13
[INFO] [stdout]      |
[INFO] [stdout] 2159 |         let aggressive = matches.get_flag("aggressive");
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_aggressive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_complexity`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2161:13
[INFO] [stdout]      |
[INFO] [stdout] 2161 |         let min_complexity: u32 = matches
[INFO] [stdout]      |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_complexity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_line_length`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2166:13
[INFO] [stdout]      |
[INFO] [stdout] 2166 |         let max_line_length: usize = matches
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_line_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `backup_dir`
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2171:13
[INFO] [stdout]      |
[INFO] [stdout] 2171 |         let backup_dir = matches.get_one::<String>("backup-dir").unwrap();
[INFO] [stdout]      |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_backup_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:657:9
[INFO] [stdout]     |
[INFO] [stdout] 657 |         structs: &[StructAnalysis],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:658:9
[INFO] [stdout]     |
[INFO] [stdout] 658 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:686:9
[INFO] [stdout]     |
[INFO] [stdout] 686 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:729:9
[INFO] [stdout]     |
[INFO] [stdout] 729 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:800:9
[INFO] [stdout]     |
[INFO] [stdout] 800 |         structs: &[StructAnalysis],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:801:9
[INFO] [stdout]     |
[INFO] [stdout] 801 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dry_run`
[INFO] [stdout]     --> src/tools/rust_mentor.rs:1007:13
[INFO] [stdout]      |
[INFO] [stdout] 1007 |         let dry_run = matches.get_flag("dry-run");
[INFO] [stdout]      |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dry_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dry_run`
[INFO] [stdout]    --> src/tools/release_automation.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         dry_run: bool,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dry_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `changelog`
[INFO] [stdout]    --> src/tools/release_automation.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |         let changelog = matches.get_flag("changelog");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_changelog`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `validate`
[INFO] [stdout]    --> src/tools/release_automation.rs:413:13
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let validate = matches.get_flag("validate");
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_validate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:657:9
[INFO] [stdout]     |
[INFO] [stdout] 657 |         structs: &[StructAnalysis],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:658:9
[INFO] [stdout]     |
[INFO] [stdout] 658 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:686:9
[INFO] [stdout]     |
[INFO] [stdout] 686 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:729:9
[INFO] [stdout]     |
[INFO] [stdout] 729 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `structs`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:800:9
[INFO] [stdout]     |
[INFO] [stdout] 800 |         structs: &[StructAnalysis],
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_structs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/tools/rust_mentor.rs:801:9
[INFO] [stdout]     |
[INFO] [stdout] 801 |         traits: &[TraitAnalysis],
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dry_run`
[INFO] [stdout]     --> src/tools/rust_mentor.rs:1007:13
[INFO] [stdout]      |
[INFO] [stdout] 1007 |         let dry_run = matches.get_flag("dry-run");
[INFO] [stdout]      |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dry_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dry_run`
[INFO] [stdout]    --> src/tools/release_automation.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         dry_run: bool,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dry_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `changelog`
[INFO] [stdout]    --> src/tools/release_automation.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |         let changelog = matches.get_flag("changelog");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_changelog`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `validate`
[INFO] [stdout]    --> src/tools/release_automation.rs:413:13
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let validate = matches.get_flag("validate");
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_validate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strict_mode`
[INFO] [stdout]    --> src/tools/async_lint.rs:522:13
[INFO] [stdout]     |
[INFO] [stdout] 522 |         let strict_mode = matches.get_flag("strict");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strict_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tests`
[INFO] [stdout]    --> src/tools/crud_gen.rs:807:13
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let tests = matches.get_flag("tests");
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strict_mode`
[INFO] [stdout]    --> src/tools/async_lint.rs:522:13
[INFO] [stdout]     |
[INFO] [stdout] 522 |         let strict_mode = matches.get_flag("strict");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strict_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req_body`
[INFO] [stdout]    --> src/tools/proto_bind.rs:606:25
[INFO] [stdout]     |
[INFO] [stdout] 606 |             if let Some(req_body) = &path.request_body {
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_req_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tests`
[INFO] [stdout]    --> src/tools/crud_gen.rs:807:13
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let tests = matches.get_flag("tests");
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req_body`
[INFO] [stdout]    --> src/tools/proto_bind.rs:606:25
[INFO] [stdout]     |
[INFO] [stdout] 606 |             if let Some(req_body) = &path.request_body {
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_req_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `functions`
[INFO] [stdout]   --> src/tools/example_gen.rs:56:17
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut functions: Vec<FunctionInfo> = Vec::new();
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_functions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tools/example_gen.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut functions: Vec<FunctionInfo> = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `functions`
[INFO] [stdout]   --> src/tools/example_gen.rs:56:17
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut functions: Vec<FunctionInfo> = Vec::new();
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_functions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tools/example_gen.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut functions: Vec<FunctionInfo> = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `non_breaking_changes`
[INFO] [stdout]    --> src/tools/api_changelog.rs:447:9
[INFO] [stdout]     |
[INFO] [stdout] 447 |         non_breaking_changes: &mut Vec<NonBreakingChange>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_non_breaking_changes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `non_breaking_changes`
[INFO] [stdout]    --> src/tools/api_changelog.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |         non_breaking_changes: &mut Vec<NonBreakingChange>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_non_breaking_changes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `migration_guide`
[INFO] [stdout]     --> src/tools/api_changelog.rs:1041:13
[INFO] [stdout]      |
[INFO] [stdout] 1041 |         let migration_guide = matches.get_flag("migration-guide");
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_migration_guide`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `detailed`
[INFO] [stdout]     --> src/tools/api_changelog.rs:1043:13
[INFO] [stdout]      |
[INFO] [stdout] 1043 |         let detailed = matches.get_flag("detailed");
[INFO] [stdout]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_detailed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `usage_analysis`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:745:13
[INFO] [stdout]     |
[INFO] [stdout] 745 |         let usage_analysis = matches.get_flag("usage");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_usage_analysis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:750:13
[INFO] [stdout]     |
[INFO] [stdout] 750 |         let workspace = matches.get_flag("workspace");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `usage_patterns`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:793:13
[INFO] [stdout]     |
[INFO] [stdout] 793 |         let usage_patterns = self.analyze_trait_usage(&filtered_implementations)?;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_usage_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output_content` is never read
[INFO] [stdout]    --> src/tools/trait_explorer.rs:807:17
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let mut output_content = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `non_breaking_changes`
[INFO] [stdout]    --> src/tools/api_changelog.rs:447:9
[INFO] [stdout]     |
[INFO] [stdout] 447 |         non_breaking_changes: &mut Vec<NonBreakingChange>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_non_breaking_changes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `non_breaking_changes`
[INFO] [stdout]    --> src/tools/api_changelog.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |         non_breaking_changes: &mut Vec<NonBreakingChange>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_non_breaking_changes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `migration_guide`
[INFO] [stdout]     --> src/tools/api_changelog.rs:1041:13
[INFO] [stdout]      |
[INFO] [stdout] 1041 |         let migration_guide = matches.get_flag("migration-guide");
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_migration_guide`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `detailed`
[INFO] [stdout]     --> src/tools/api_changelog.rs:1043:13
[INFO] [stdout]      |
[INFO] [stdout] 1043 |         let detailed = matches.get_flag("detailed");
[INFO] [stdout]      |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_detailed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stat`
[INFO] [stdout]    --> src/tools/env_check.rs:190:19
[INFO] [stdout]     |
[INFO] [stdout] 190 |         if let Ok(stat) = fs::metadata(".") { 100 } else { 0 }
[INFO] [stdout]     |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_stat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `usage_analysis`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:745:13
[INFO] [stdout]     |
[INFO] [stdout] 745 |         let usage_analysis = matches.get_flag("usage");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_usage_analysis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:750:13
[INFO] [stdout]     |
[INFO] [stdout] 750 |         let workspace = matches.get_flag("workspace");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `usage_patterns`
[INFO] [stdout]    --> src/tools/trait_explorer.rs:793:13
[INFO] [stdout]     |
[INFO] [stdout] 793 |         let usage_patterns = self.analyze_trait_usage(&filtered_implementations)?;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_usage_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output_content` is never read
[INFO] [stdout]    --> src/tools/trait_explorer.rs:807:17
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let mut output_content = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_type`
[INFO] [stdout]    --> src/tools/feature_map.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 |             let node_type = if info.default {
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace`
[INFO] [stdout]    --> src/tools/feature_map.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |         workspace: bool,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stat`
[INFO] [stdout]    --> src/tools/env_check.rs:190:19
[INFO] [stdout]     |
[INFO] [stdout] 190 |         if let Ok(stat) = fs::metadata(".") { 100 } else { 0 }
[INFO] [stdout]     |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_stat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conflicts`
[INFO] [stdout]    --> src/tools/feature_map.rs:514:13
[INFO] [stdout]     |
[INFO] [stdout] 514 |         let conflicts = matches.get_flag("conflicts");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conflicts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combinations`
[INFO] [stdout]    --> src/tools/feature_map.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let combinations = matches.get_flag("combinations");
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combinations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `optimize`
[INFO] [stdout]    --> src/tools/feature_map.rs:518:13
[INFO] [stdout]     |
[INFO] [stdout] 518 |         let optimize = matches.get_flag("optimize");
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_optimize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `impact`
[INFO] [stdout]    --> src/tools/feature_map.rs:520:13
[INFO] [stdout]     |
[INFO] [stdout] 520 |         let impact = matches.get_flag("impact");
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_impact`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node_type`
[INFO] [stdout]    --> src/tools/feature_map.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 |             let node_type = if info.default {
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manifest_path`
[INFO] [stdout]   --> src/tools/vendorize.rs:84:36
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn analyze_dependencies(&self, manifest_path: &str) -> Result<DependencyAnalysis> {
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manifest_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workspace`
[INFO] [stdout]    --> src/tools/feature_map.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |         workspace: bool,
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workspace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conflicts`
[INFO] [stdout]    --> src/tools/feature_map.rs:514:13
[INFO] [stdout]     |
[INFO] [stdout] 514 |         let conflicts = matches.get_flag("conflicts");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conflicts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combinations`
[INFO] [stdout]    --> src/tools/feature_map.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let combinations = matches.get_flag("combinations");
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combinations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `optimize`
[INFO] [stdout]    --> src/tools/feature_map.rs:518:13
[INFO] [stdout]     |
[INFO] [stdout] 518 |         let optimize = matches.get_flag("optimize");
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_optimize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `impact`
[INFO] [stdout]    --> src/tools/feature_map.rs:520:13
[INFO] [stdout]     |
[INFO] [stdout] 520 |         let impact = matches.get_flag("impact");
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_impact`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force`
[INFO] [stdout]    --> src/tools/vendorize.rs:549:13
[INFO] [stdout]     |
[INFO] [stdout] 549 |         let force = matches.get_flag("force");
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_force`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `highlight`
[INFO] [stdout]    --> src/tools/macro_expand.rs:407:13
[INFO] [stdout]     |
[INFO] [stdout] 407 |         let highlight = matches.get_flag("highlight");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_highlight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactive`
[INFO] [stdout]    --> src/tools/macro_expand.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |         let interactive = matches.get_flag("interactive");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/tools/macro_expand.rs:412:13
[INFO] [stdout]     |
[INFO] [stdout] 412 |         let format = matches.get_one::<String>("format").unwrap();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manifest_path`
[INFO] [stdout]   --> src/tools/vendorize.rs:84:36
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn analyze_dependencies(&self, manifest_path: &str) -> Result<DependencyAnalysis> {
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manifest_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force`
[INFO] [stdout]    --> src/tools/vendorize.rs:549:13
[INFO] [stdout]     |
[INFO] [stdout] 549 |         let force = matches.get_flag("force");
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_force`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactive`
[INFO] [stdout]    --> src/tools/lifetime_visualizer.rs:544:13
[INFO] [stdout]     |
[INFO] [stdout] 544 |         let interactive = matches.get_flag("interactive");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `highlight`
[INFO] [stdout]    --> src/tools/macro_expand.rs:407:13
[INFO] [stdout]     |
[INFO] [stdout] 407 |         let highlight = matches.get_flag("highlight");
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_highlight`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactive`
[INFO] [stdout]    --> src/tools/macro_expand.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |         let interactive = matches.get_flag("interactive");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/tools/macro_expand.rs:412:13
[INFO] [stdout]     |
[INFO] [stdout] 412 |         let format = matches.get_one::<String>("format").unwrap();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/lifetime_visualizer.rs:560:24
[INFO] [stdout]     |
[INFO] [stdout] 560 |                     Ok(mut functions) => all_functions.extend(functions),
[INFO] [stdout]     |                        ----^^^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactive`
[INFO] [stdout]    --> src/tools/lifetime_visualizer.rs:544:13
[INFO] [stdout]     |
[INFO] [stdout] 544 |         let interactive = matches.get_flag("interactive");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactive`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/tools/compile_time_tracker.rs:488:13
[INFO] [stdout]     |
[INFO] [stdout] 488 |         let threshold: f64 = matches
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_file`
[INFO] [stdout]    --> src/tools/compile_time_tracker.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let output_file = matches.get_one::<String>("output").unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/lifetime_visualizer.rs:560:24
[INFO] [stdout]     |
[INFO] [stdout] 560 |                     Ok(mut functions) => all_functions.extend(functions),
[INFO] [stdout]     |                        ----^^^^^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `return_type`
[INFO] [stdout]    --> src/tools/mock_derive.rs:185:21
[INFO] [stdout]     |
[INFO] [stdout] 185 |         if let Some(return_type) = &method.return_type {
[INFO] [stdout]     |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_async`
[INFO] [stdout]    --> src/tools/mock_derive.rs:400:13
[INFO] [stdout]     |
[INFO] [stdout] 400 |         let include_async = matches.get_flag("include-async");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_async`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/mock_derive.rs:437:14
[INFO] [stdout]     |
[INFO] [stdout] 437 |         for (file_path, trait_info) in &all_traits {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]    --> src/tools/compile_time_tracker.rs:488:13
[INFO] [stdout]     |
[INFO] [stdout] 488 |         let threshold: f64 = matches
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_file`
[INFO] [stdout]    --> src/tools/compile_time_tracker.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let output_file = matches.get_one::<String>("output").unwrap();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool`
[INFO] [stdout]    --> src/tools/coverage_guard.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let tool = matches.get_one::<String>("tool").unwrap();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_tool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `return_type`
[INFO] [stdout]    --> src/tools/mock_derive.rs:185:21
[INFO] [stdout]     |
[INFO] [stdout] 185 |         if let Some(return_type) = &method.return_type {
[INFO] [stdout]     |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_async`
[INFO] [stdout]    --> src/tools/mock_derive.rs:400:13
[INFO] [stdout]     |
[INFO] [stdout] 400 |         let include_async = matches.get_flag("include-async");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_async`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/tools/mock_derive.rs:437:14
[INFO] [stdout]     |
[INFO] [stdout] 437 |         for (file_path, trait_info) in &all_traits {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_name`
[INFO] [stdout]    --> src/tools/snapshot_test.rs:132:38
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn generate_snapshot_name(&self, test_name: &str, snapshot_name: &str) -> String {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]    --> src/tools/snapshot_test.rs:337:13
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let pattern = matches.get_one::<String>("pattern");
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool`
[INFO] [stdout]    --> src/tools/coverage_guard.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let tool = matches.get_one::<String>("tool").unwrap();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_tool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]   --> src/tools/migration_gen.rs:99:48
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 if let Ok(syn::Meta::NameValue(meta)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `database`
[INFO] [stdout]    --> src/tools/migration_gen.rs:497:13
[INFO] [stdout]     |
[INFO] [stdout] 497 |         let database = matches.get_one::<String>("database").unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_database`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `existing_schema`
[INFO] [stdout]    --> src/tools/migration_gen.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let existing_schema = matches.get_one::<String>("existing-schema");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_existing_schema`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `framework`
[INFO] [stdout]    --> src/tools/migration_gen.rs:501:13
[INFO] [stdout]     |
[INFO] [stdout] 501 |         let framework = matches.get_one::<String>("framework").unwrap();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_framework`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]   --> src/tools/migration_gen.rs:99:48
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 if let Ok(syn::Meta::NameValue(meta)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `database`
[INFO] [stdout]    --> src/tools/migration_gen.rs:497:13
[INFO] [stdout]     |
[INFO] [stdout] 497 |         let database = matches.get_one::<String>("database").unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_database`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `existing_schema`
[INFO] [stdout]    --> src/tools/migration_gen.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         let existing_schema = matches.get_one::<String>("existing-schema");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_existing_schema`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `framework`
[INFO] [stdout]    --> src/tools/migration_gen.rs:501:13
[INFO] [stdout]     |
[INFO] [stdout] 501 |         let framework = matches.get_one::<String>("framework").unwrap();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_framework`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta_list`
[INFO] [stdout]   --> src/tools/serde_validator.rs:83:38
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 if let Ok(Meta::List(meta_list)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]    |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meta_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tools/serde_validator.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let mut has_derive_serde = false;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta_list`
[INFO] [stdout]    --> src/tools/serde_validator.rs:119:38
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 if let Ok(Meta::List(meta_list)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meta_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut default_value = None;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let mut rename = None;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let mut skip_serializing = false;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let mut skip_deserializing = false;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta_list`
[INFO] [stdout]   --> src/tools/serde_validator.rs:83:38
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 if let Ok(Meta::List(meta_list)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]    |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meta_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tools/serde_validator.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let mut has_derive_serde = false;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta_list`
[INFO] [stdout]    --> src/tools/serde_validator.rs:119:38
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 if let Ok(Meta::List(meta_list)) = attr.parse_args::<syn::Meta>() {
[INFO] [stdout]     |                                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meta_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut default_value = None;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let mut rename = None;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let mut skip_serializing = false;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tools/serde_validator.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let mut skip_deserializing = false;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `security_icon`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:357:29
[INFO] [stdout]     |
[INFO] [stdout] 357 |                         let security_icon = if analysis.security_score >= 80 {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_security_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `performance_icon`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:362:29
[INFO] [stdout]     |
[INFO] [stdout] 362 |                         let performance_icon = if analysis.performance_score >= 80 {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_performance_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix_suggestions`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:551:13
[INFO] [stdout]     |
[INFO] [stdout] 551 |         let fix_suggestions = matches.get_flag("fix-suggestions");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fix_suggestions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `library`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:552:13
[INFO] [stdout]     |
[INFO] [stdout] 552 |         let library = matches.get_one::<String>("library").unwrap();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_library`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `security_icon`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:357:29
[INFO] [stdout]     |
[INFO] [stdout] 357 |                         let security_icon = if analysis.security_score >= 80 {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_security_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `performance_icon`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:362:29
[INFO] [stdout]     |
[INFO] [stdout] 362 |                         let performance_icon = if analysis.performance_score >= 80 {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_performance_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix_suggestions`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:551:13
[INFO] [stdout]     |
[INFO] [stdout] 551 |         let fix_suggestions = matches.get_flag("fix-suggestions");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fix_suggestions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `library`
[INFO] [stdout]    --> src/tools/sql_macro_check.rs:552:13
[INFO] [stdout]     |
[INFO] [stdout] 552 |         let library = matches.get_one::<String>("library").unwrap();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_library`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:170:9
[INFO] [stdout]     |
[INFO] [stdout] 170 |         pattern: &SecretPattern,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exclude_vendor`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:558:13
[INFO] [stdout]     |
[INFO] [stdout] 558 |         let exclude_vendor = matches.get_flag("exclude-vendor");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exclude_vendor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_tests`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:559:13
[INFO] [stdout]     |
[INFO] [stdout] 559 |         let include_tests = matches.get_flag("include-tests");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `finding`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:603:22
[INFO] [stdout]     |
[INFO] [stdout] 603 |             .filter(|finding| {
[INFO] [stdout]     |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_finding`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:170:9
[INFO] [stdout]     |
[INFO] [stdout] 170 |         pattern: &SecretPattern,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exclude_vendor`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:558:13
[INFO] [stdout]     |
[INFO] [stdout] 558 |         let exclude_vendor = matches.get_flag("exclude-vendor");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exclude_vendor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_tests`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:559:13
[INFO] [stdout]     |
[INFO] [stdout] 559 |         let include_tests = matches.get_flag("include-tests");
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `finding`
[INFO] [stdout]    --> src/tools/secret_scanner.rs:603:22
[INFO] [stdout]     |
[INFO] [stdout] 603 |             .filter(|finding| {
[INFO] [stdout]     |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_finding`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:115:54
[INFO] [stdout]     |
[INFO] [stdout] 115 |     fn generate_suggestion(&self, unsafe_type: &str, context: &str) -> String {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_risky`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:376:13
[INFO] [stdout]     |
[INFO] [stdout] 376 |         let total_risky = critical_count + high_count + medium_count;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_risky`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_context`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 |         let show_context = matches.get_flag("show-context");
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:115:54
[INFO] [stdout]     |
[INFO] [stdout] 115 |     fn generate_suggestion(&self, unsafe_type: &str, context: &str) -> String {
[INFO] [stdout]     |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_risky`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:376:13
[INFO] [stdout]     |
[INFO] [stdout] 376 |         let total_risky = critical_count + high_count + medium_count;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_risky`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `show_context`
[INFO] [stdout]    --> src/tools/unsafe_analyzer.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 |         let show_context = matches.get_flag("show-context");
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/tools/license_bundler.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |         version: &str,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `third_party_notices`
[INFO] [stdout]    --> src/tools/license_bundler.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |         let third_party_notices = matches.get_flag("third-party-notices");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_third_party_notices`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/tools/license_bundler.rs:647:13
[INFO] [stdout]     |
[INFO] [stdout] 647 |         let format = matches.get_one::<String>("format").unwrap();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exclude_dev`
[INFO] [stdout]    --> src/tools/license_bundler.rs:648:13
[INFO] [stdout]     |
[INFO] [stdout] 648 |         let exclude_dev = matches.get_flag("exclude-dev");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exclude_dev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/tools/license_bundler.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |         version: &str,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `third_party_notices`
[INFO] [stdout]    --> src/tools/license_bundler.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |         let third_party_notices = matches.get_flag("third-party-notices");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_third_party_notices`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `format`
[INFO] [stdout]    --> src/tools/license_bundler.rs:647:13
[INFO] [stdout]     |
[INFO] [stdout] 647 |         let format = matches.get_one::<String>("format").unwrap();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_format`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exclude_dev`
[INFO] [stdout]    --> src/tools/license_bundler.rs:648:13
[INFO] [stdout]     |
[INFO] [stdout] 648 |         let exclude_dev = matches.get_flag("exclude-dev");
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exclude_dev`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/command_factory.rs:34:29
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn validate_args(&self, args: &CommandArgs) -> Result<()> {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/command_factory.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         action: &str,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/command_factory.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |         target: Option<&str>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]   --> src/command_factory.rs:34:29
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn validate_args(&self, args: &CommandArgs) -> Result<()> {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/command_factory.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         action: &str,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/command_factory.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |         target: Option<&str>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `factory`
[INFO] [stdout]    --> src/main.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     let factory = command_factory::CommandFactory::new();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_factory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_path_for_captain` is never used
[INFO] [stdout]    --> src/main.rs:164:4
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn update_path_for_captain() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_check_admin_msg` is never used
[INFO] [stdout]    --> src/main.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn should_check_admin_msg(args: &Args) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requires_license_check` is never used
[INFO] [stdout]    --> src/main.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn requires_license_check(args: &Args) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_cargo_command` is never used
[INFO] [stdout]    --> src/main.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn is_cargo_command(args: &Args) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_command_name` is never used
[INFO] [stdout]    --> src/main.rs:187:4
[INFO] [stdout]     |
[INFO] [stdout] 187 | fn get_command_name(args: &Args) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_command` is never used
[INFO] [stdout]    --> src/main.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn format_command(args: &Args) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ToolError` is never used
[INFO] [stdout]   --> src/tools/mod.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum ToolError {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/tools/mod.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub type Result<T> = std::result::Result<T, ToolError>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `command` and `execute` are never used
[INFO] [stdout]   --> src/tools/mod.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub trait Tool {
[INFO] [stdout]    |           ---- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn command(&self) -> Command;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 79 |     fn execute(&self, matches: &ArgMatches) -> Result<()>;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]   --> src/tools/mod.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl ToolRegistry {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn get(&self, name: &str) -> Option<&Box<dyn Tool>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolConfig` is never constructed
[INFO] [stdout]    --> src/tools/mod.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct ToolConfig {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OutputFormat` is never used
[INFO] [stdout]    --> src/tools/mod.rs:116:10
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub enum OutputFormat {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `REGISTRY` is never used
[INFO] [stdout]    --> src/tools/mod.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | static mut REGISTRY: Option<ToolRegistry> = None;
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_registry` is never used
[INFO] [stdout]    --> src/tools/mod.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn get_registry() -> &'static ToolRegistry {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_tools` is never used
[INFO] [stdout]    --> src/tools/mod.rs:181:8
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub fn list_tools() {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_tool_help` is never used
[INFO] [stdout]    --> src/tools/mod.rs:201:8
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub fn show_tool_help(name: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_tool` is never used
[INFO] [stdout]    --> src/tools/mod.rs:217:8
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub fn run_tool(name: &str, args: &[String]) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `common_options` is never used
[INFO] [stdout]    --> src/tools/mod.rs:232:8
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub fn common_options() -> Vec<clap::Arg> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_output_format` is never used
[INFO] [stdout]    --> src/tools/mod.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub fn parse_output_format(matches: &ArgMatches) -> OutputFormat {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BenchmarkResult` is never constructed
[INFO] [stdout]   --> src/tools/bench_diff.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct BenchmarkResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BenchmarkComparison` is never constructed
[INFO] [stdout]   --> src/tools/bench_diff.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct BenchmarkComparison {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tools/bench_diff.rs:28:8
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl BenchDiffTool {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  28 |     fn parse_time_to_ns(&self, time_str: &str) -> Result<f64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     fn run_benchmark(&self, commit: &str) -> Result<Vec<BenchmarkResult>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     fn extract_test_name(&self, line: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn extract_time(&self, line: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn compare_benchmarks(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn format_time(&self, ns: f64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn display_comparison(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save_results` is never used
[INFO] [stdout]    --> src/tools/bench_diff.rs:309:8
[INFO] [stdout]     |
[INFO] [stdout] 308 | impl BenchDiffTool {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 309 |     fn save_results(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DependencyInfo` is never constructed
[INFO] [stdout]   --> src/tools/dep_audit.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct DependencyInfo {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditResult` is never constructed
[INFO] [stdout]   --> src/tools/dep_audit.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct AuditResult {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditSummary` is never constructed
[INFO] [stdout]   --> src/tools/dep_audit.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct AuditSummary {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_cargo_tree`, `parse_dependency_line`, `check_licenses`, `check_security`, `check_maintenance`, and `display_results` are never used
[INFO] [stdout]    --> src/tools/dep_audit.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl DepAuditTool {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  37 |     fn parse_cargo_tree(&self) -> Result<Vec<DependencyInfo>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     fn parse_dependency_line(&self, line: &str) -> Option<DependencyInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     fn check_licenses(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn check_security(&self, deps: &mut [DependencyInfo]) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn check_maintenance(&self, deps: &mut [DependencyInfo]) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn display_results(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionInfo` is never constructed
[INFO] [stdout]   --> src/tools/test_gen.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct FunctionInfo {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParamInfo` is never constructed
[INFO] [stdout]   --> src/tools/test_gen.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct ParamInfo {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GeneratedTest` is never constructed
[INFO] [stdout]   --> src/tools/test_gen.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct GeneratedTest {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tools/test_gen.rs:34:8
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl TestGenTool {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  34 |     fn parse_rust_file(&self, file_path: &Path) -> Result<Vec<FunctionInfo>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     fn generate_test_for_function(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn generate_unit_test(&self, func: &FunctionInfo) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn generate_integration_test(&self, func: &FunctionInfo) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn generate_property_test(&self, func: &FunctionInfo) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     fn generate_mock_value(&self, ty: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn generate_integration_mock_value(&self, ty: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     fn generate_proptest_params(&self, params: &[ParamInfo]) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     fn snake_to_pascal(&self, snake_case: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     fn display_generated_tests(&self, tests: &[GeneratedTest], format: OutputFormat) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionVisitor` is never constructed
[INFO] [stdout]    --> src/tools/test_gen.rs:374:8
[INFO] [stdout]     |
[INFO] [stdout] 374 | struct FunctionVisitor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/tools/test_gen.rs:378:8
[INFO] [stdout]     |
[INFO] [stdout] 377 | impl FunctionVisitor {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] 378 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkspaceConfig` is never constructed
[INFO] [stdout]   --> src/tools/workspace_sync.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct WorkspaceConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Workspace` is never constructed
[INFO] [stdout]   --> src/tools/workspace_sync.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Workspace {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CargoToml` is never constructed
[INFO] [stdout]   --> src/tools/workspace_sync.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct CargoToml {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Package` is never constructed
[INFO] [stdout]   --> src/tools/workspace_sync.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct Package {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Dependency` is never used
[INFO] [stdout]   --> src/tools/workspace_sync.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | enum Dependency {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DependencyDetail` is never constructed
[INFO] [stdout]   --> src/tools/workspace_sync.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct DependencyDetail {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DependencyAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/workspace_sync.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct DependencyAnalysis {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tools/workspace_sync.rs:55:8
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl WorkspaceSyncTool {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  55 |     fn find_workspace_root(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn parse_cargo_toml(&self, path: &Path) -> Result<CargoToml> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn analyze_workspace_dependencies(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn analyze_dependencies(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn detect_conflicts(&self, analyses: &mut HashMap<String, DependencyAnalysis>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     fn sync_dependencies(&self, workspace_root: &str, dry_run: bool) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     fn display_sync_plan(&self, analyses: &HashMap<String, DependencyAnalysis>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     fn apply_sync_plan(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     fn generate_report(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PanicInfo` is never constructed
[INFO] [stdout]   --> src/tools/panic_analyzer.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct PanicInfo {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PanicReport` is never constructed
[INFO] [stdout]   --> src/tools/panic_analyzer.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct PanicReport {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tools/panic_analyzer.rs:31:8
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl PanicAnalyzerTool {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  31 |     fn parse_panic_message(&self, line: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     fn parse_location(&self, line: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     fn extract_source_context(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn generate_suggestions(&self, panic_message: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn analyze_log_file(&self, log_path: &str) -> Result<Vec<PanicInfo>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     fn analyze_recent_panics(&self, count: usize) -> Result<Vec<PanicInfo>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn group_similar_panics(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     fn generate_report(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestResult` is never constructed
[INFO] [stdout]   --> src/tools/cross_test.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct TestResult {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CrossTestReport` is never constructed
[INFO] [stdout]   --> src/tools/cross_test.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct CrossTestReport {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestSummary` is never constructed
[INFO] [stdout]   --> src/tools/cross_test.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct TestSummary {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tools/cross_test.rs:37:8
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl CrossTestTool {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  37 |     fn get_supported_platforms(&self) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  44 |     fn detect_current_platform(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     fn run_tests_for_platform(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     fn run_cross_platform_tests(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn generate_summary(&self, results: &[TestResult]) -> TestSummary {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn display_results(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     fn validate_platforms(&self, requested_platforms: &[String]) -> Result<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RefactoringAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/refactor_engine.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct RefactoringAnalysis {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SafeTransformation` is never constructed
[INFO] [stdout]   --> src/tools/refactor_engine.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct SafeTransformation {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComplexSuggestion` is never constructed
[INFO] [stdout]   --> src/tools/refactor_engine.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct ComplexSuggestion {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnalysisSummary` is never constructed
[INFO] [stdout]   --> src/tools/refactor_engine.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct AnalysisSummary {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SafetyMetrics` is never constructed
[INFO] [stdout]   --> src/tools/refactor_engine.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | struct SafetyMetrics {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformationPlan` is never constructed
[INFO] [stdout]   --> src/tools/refactor_engine.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | struct TransformationPlan {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformationPhase` is never constructed
[INFO] [stdout]   --> src/tools/refactor_engine.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | struct TransformationPhase {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodeLocation` is never constructed
[INFO] [stdout]   --> src/tools/refactor_engine.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct CodeLocation {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestResults` is never constructed
[INFO] [stdout]   --> src/tools/refactor_engine.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct TestResults {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RollbackInfo` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | struct RollbackInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImpactAnalysis` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | struct ImpactAnalysis {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceImpact` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | struct PerformanceImpact {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RiskAssessment` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | struct RiskAssessment {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TimeSavings` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | struct TimeSavings {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TransformationType` is never used
[INFO] [stdout]    --> src/tools/refactor_engine.rs:135:6
[INFO] [stdout]     |
[INFO] [stdout] 135 | enum TransformationType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SuggestionType` is never used
[INFO] [stdout]    --> src/tools/refactor_engine.rs:151:6
[INFO] [stdout]     |
[INFO] [stdout] 151 | enum SuggestionType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Priority` is never used
[INFO] [stdout]    --> src/tools/refactor_engine.rs:161:6
[INFO] [stdout]     |
[INFO] [stdout] 161 | enum Priority {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodeAnalysis` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | struct CodeAnalysis {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionInfo` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:181:8
[INFO] [stdout]     |
[INFO] [stdout] 181 | struct FunctionInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StructInfo` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | struct StructInfo {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TraitInfo` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | struct TraitInfo {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleInfo` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | struct ModuleInfo {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DependencyInfo` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | struct DependencyInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PatternInfo` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | struct PatternInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodeIssue` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | struct CodeIssue {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemorySummary` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:241:8
[INFO] [stdout]     |
[INFO] [stdout] 241 | struct MemorySummary {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryLeak` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:250:8
[INFO] [stdout]     |
[INFO] [stdout] 250 | struct MemoryLeak {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeapAnalysis` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 256 | struct HeapAnalysis {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StackAnalysis` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:265:8
[INFO] [stdout]     |
[INFO] [stdout] 265 | struct StackAnalysis {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryPattern` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:274:8
[INFO] [stdout]     |
[INFO] [stdout] 274 | struct MemoryPattern {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OptimizationSuggestion` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:281:8
[INFO] [stdout]     |
[INFO] [stdout] 281 | struct OptimizationSuggestion {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryAnalysis` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:290:8
[INFO] [stdout]     |
[INFO] [stdout] 290 | struct MemoryAnalysis {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceData` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:299:8
[INFO] [stdout]     |
[INFO] [stdout] 299 | struct PerformanceData {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClippyIssue` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | struct ClippyIssue {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParameterInfo` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:315:8
[INFO] [stdout]     |
[INFO] [stdout] 315 | struct ParameterInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExtractedFunctions` is never constructed
[INFO] [stdout]    --> src/tools/refactor_engine.rs:322:8
[INFO] [stdout]     |
[INFO] [stdout] 322 | struct ExtractedFunctions {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ErrorHandlingType` is never used
[INFO] [stdout]    --> src/tools/refactor_engine.rs:327:6
[INFO] [stdout]     |
[INFO] [stdout] 327 | enum ErrorHandlingType {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/tools/refactor_engine.rs:338:8
[INFO] [stdout]      |
[INFO] [stdout]  334 | impl RefactorEngineTool {
[INFO] [stdout]      | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  338 |     fn analyze_codebase(&self, input_path: &str) -> Result<CodeAnalysis> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  373 |     fn create_initial_performance_data(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  430 |     fn extract_basic_code_issues(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  490 |     fn analyze_directory(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  559 |     fn analyze_file(
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  994 |     fn analyze_dependencies(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1064 |     fn detect_api_changes(dependency_name: &str, version: &str) -> Vec<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1093 |     fn identify_patterns(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1157 |     fn identify_issues(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1239 |     fn generate_transformations(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1343 |     fn calculate_safety_score(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1356 |     fn run_tests_for_function(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1384 |     fn analyze_transformation_impact(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1431 |     fn create_function_extraction_rollback(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1442 |     fn create_error_modernization_rollback(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1452 |     fn get_actual_file_path(function_name: &str) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1469 |     fn apply_transformation_to_file(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1491 |     fn apply_function_extraction(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1539 |     fn apply_error_modernization(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1595 |     fn extract_function_parts(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1626 |     fn find_function_end(content: &str) -> Option<usize> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1661 |     fn initialize_git_integration(&self) -> Result<()> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1674 |     fn run_advanced_memory_analysis(&self, input_path: &str) -> Result<MemoryAnalysis> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1724 |     fn run_memory_analysis(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1768 |     fn create_memory_summary_fallback(&self, input_path: &str) -> Result<MemorySummary> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1792 |     fn run_performance_analysis(&self, input_path: &str) -> Result<PerformanceData> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1816 |     fn run_clippy_analysis(&self, input_path: &str) -> Result<Vec<ClippyIssue>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1866 |     fn generate_complex_suggestions(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1954 |     fn calculate_file_count(&self, input_path: &str) -> usize {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1964 |     fn calculate_safety_metrics(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1982 |     fn calculate_time_savings(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2018 |     fn generate_transformation_plan(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2049 |     fn generate_analysis_summary(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2070 |     fn generate_safety_metrics(&self) -> SafetyMetrics {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tools/refactor_engine.rs:592:16
[INFO] [stdout]     |
[INFO] [stdout] 591 |         impl CodeVisitor<'_> {
[INFO] [stdout]     |         -------------------- associated items in this implementation
[INFO] [stdout] 592 |             fn analyze_function(node: &ItemFn, file_path: &str) -> Result<FunctionInfo> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 618 |             fn analyze_struct(node: &ItemStruct, file_path: &str) -> Result<StructInfo> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 638 |             fn analyze_trait(node: &ItemTrait, file_path: &str) -> Result<TraitInfo> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |             fn calculate_complexity(node: &ItemFn) -> u32 {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 668 |             fn estimate_line_count(node: &ItemFn) -> usize {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 671 |             fn extract_parameters(
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 708 |             fn extract_return_type(output: &syn::ReturnType) -> Option<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 714 |             fn extract_visibility(node: &ItemFn) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 721 |             fn check_unsafe_usage(node: &ItemFn) -> bool {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |             fn analyze_error_handling(node: &ItemFn) -> ErrorHandlingType {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 741 |             fn identify_code_smells(node: &ItemFn) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 760 |             fn identify_transformations(node: &ItemFn) -> Vec<TransformationType> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 783 |             fn count_fields(fields: &Fields) -> usize {
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 790 |             fn estimate_size(fields: &Fields) -> usize {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 827 |             fn extract_struct_visibility(node: &ItemStruct) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 834 |             fn extract_derives(node: &ItemStruct) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 851 |             fn parse_attribute_tokens(&self, attr: &syn::Attribute) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 878 |             fn parse_attribute_tokens_static(attr: &syn::Attribute) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 905 |             fn analyze_impl_methods(node: &ItemStruct, file_path: &str) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 908 |             fn find_trait_implementors(
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 922 |             fn identify_struct_transformations(
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn extract_trait_requirements(node: &ItemTrait) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 948 |             fn type_to_string(ty: &Type) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 978 |             fn analyze_type_modifiers(ty: &Type) -> (bool, bool) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `display_human_analysis`, `transformation_type_name`, `suggestion_type_name`, and `display_table_analysis` are never used
[INFO] [stdout]     --> src/tools/refactor_engine.rs:2318:8
[INFO] [stdout]      |
[INFO] [stdout] 2317 | impl RefactorEngineTool {
[INFO] [stdout]      | ----------------------- associated items in this implementation
[INFO] [stdout] 2318 |     fn display_human_analysis(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2481 |     fn transformation_type_name(transformation_type: &TransformationType) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2509 |     fn suggestion_type_name(suggestion_type: &SuggestionType) -> String {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2525 |     fn display_table_analysis(&self, analysis: &RefactoringAnalysis) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodeAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/rust_mentor.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct CodeAnalysis {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/rust_mentor.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct FunctionAnalysis {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StructAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/rust_mentor.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | struct StructAnalysis {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TraitAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/rust_mentor.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct TraitAnalysis {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PatternAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/rust_mentor.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct PatternAnalysis {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodeIssue` is never constructed
[INFO] [stdout]   --> src/tools/rust_mentor.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct CodeIssue {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Recommendation` is never constructed
[INFO] [stdout]   --> src/tools/rust_mentor.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | struct Recommendation {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LearningOpportunity` is never constructed
[INFO] [stdout]   --> src/tools/rust_mentor.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | struct LearningOpportunity {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParameterInfo` is never constructed
[INFO] [stdout]   --> src/tools/rust_mentor.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct ParameterInfo {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FieldInfo` is never constructed
[INFO] [stdout]   --> src/tools/rust_mentor.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct FieldInfo {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tools/rust_mentor.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl RustMentorTool {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn analyze_codebase(&self, input_path: &str) -> Result<CodeAnalysis> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn analyze_directory(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn analyze_file(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 654 |     fn identify_patterns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 682 |     fn identify_issues(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 725 |     fn generate_recommendations(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 |     fn identify_learning_opportunities(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 874 |     fn explain_pattern(&self, pattern: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 899 |     fn pattern_benefits(&self, pattern: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 924 |     fn pattern_alternatives(&self, pattern: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/tools/rust_mentor.rs:200:16
[INFO] [stdout]     |
[INFO] [stdout] 199 |         impl CodeVisitor<'_> {
[INFO] [stdout]     |         -------------------- associated functions in this implementation
[INFO] [stdout] 200 |             fn analyze_function(node: &ItemFn) -> Result<FunctionAnalysis> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |             fn analyze_struct(node: &ItemStruct) -> Result<StructAnalysis> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |             fn analyze_trait(node: &ItemTrait) -> Result<TraitAnalysis> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |             fn calculate_complexity(node: &ItemFn) -> u32 {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |             fn extract_parameters(
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |             fn extract_return_type(output: &syn::ReturnType) -> Option<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |             fn extract_fields(fields: &Fields) -> Vec<FieldInfo> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |             fn extract_trait_methods(node: &ItemTrait) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |             fn type_to_string(ty: &Type) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |             fn identify_function_patterns(node: &ItemFn) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |             fn identify_struct_patterns(node: &ItemStruct) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |             fn infer_parameter_purpose(name: &str, ty: &str) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |             fn infer_field_purpose(name: &str, ty: &str) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 437 |             fn field_considerations(name: &str, ty: &str) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |             fn suggest_function_improvements(node: &ItemFn) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 483 |             fn struct_design_considerations(node: &ItemStruct) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 506 |             fn identify_trait_purpose(node: &ItemTrait) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 530 |             fn trait_use_cases(node: &ItemTrait) -> Vec<String> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |             fn explain_function(node: &ItemFn) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 611 |             fn explain_struct(node: &ItemStruct) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 636 |             fn explain_trait(node: &ItemTrait) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/tools/rust_mentor.rs:1061:8
[INFO] [stdout]      |
[INFO] [stdout] 1060 | impl RustMentorTool {
[INFO] [stdout]      | ------------------- methods in this implementation
[INFO] [stdout] 1061 |     fn display_human_analysis(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1106 |     fn display_functions(&self, functions: &[FunctionAnalysis], detailed: bool) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1133 |     fn display_structs(&self, structs: &[StructAnalysis], detailed: bool) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1155 |     fn display_traits(&self, traits: &[TraitAnalysis], detailed: bool) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1177 |     fn explain_specific_target(&self, analysis: &CodeAnalysis, target: &str) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1211 |     fn display_patterns(&self, patterns: &[PatternAnalysis]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1226 |     fn display_recommendations(&self, recommendations: &[Recommendation]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1253 |     fn display_learning_opportunities(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1282 |     fn display_issues(&self, issues: &[CodeIssue]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1298 |     fn display_table_analysis(&self, analysis: &CodeAnalysis) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReleaseConfig` is never constructed
[INFO] [stdout]   --> src/tools/release_automation.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct ReleaseConfig {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReleasePlan` is never constructed
[INFO] [stdout]   --> src/tools/release_automation.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct ReleasePlan {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tools/release_automation.rs:29:8
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl ReleaseAutomationTool {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  29 |     fn get_current_version(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     fn bump_version(&self, current: &str, bump_type: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     fn update_version_in_file(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn find_version_files(&self) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn generate_changelog(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn run_pre_release_checks(&self, dry_run: bool) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn create_git_tag(&self, version: &str, dry_run: bool) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     fn publish_to_crates_io(&self, dry_run: bool) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     fn create_release_plan(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     fn execute_release_plan(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinarySizeInfo` is never constructed
[INFO] [stdout]  --> src/tools/bloat_check.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct BinarySizeInfo {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SizeComparison` is never constructed
[INFO] [stdout]   --> src/tools/bloat_check.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SizeComparison {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SymbolSize` is never constructed
[INFO] [stdout]   --> src/tools/bloat_check.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct SymbolSize {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OptimizationSuggestion` is never constructed
[INFO] [stdout]   --> src/tools/bloat_check.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct OptimizationSuggestion {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildComparison` is never constructed
[INFO] [stdout]   --> src/tools/bloat_check.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct BuildComparison {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tools/bloat_check.rs:51:8
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl BloatCheckTool {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  51 |     fn analyze_binary_size(&self, binary_path: &str) -> Result<BinarySizeInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     fn analyze_size_changes(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn find_largest_symbols(&self, binary_path: &str) -> Result<Vec<SymbolSize>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn generate_optimization_suggestions(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn analyze_debug_vs_release(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     fn format_size(&self, bytes: u64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     fn format_diff(&self, diff: i64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     fn colorize_diff(&self, diff: i64, threshold: f64) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheProfile` is never constructed
[INFO] [stdout]  --> src/tools/cache_analyzer.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct CacheProfile {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DataStructureAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/cache_analyzer.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct DataStructureAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FalseSharingIssue` is never constructed
[INFO] [stdout]   --> src/tools/cache_analyzer.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct FalseSharingIssue {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheOptimization` is never constructed
[INFO] [stdout]   --> src/tools/cache_analyzer.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct CacheOptimization {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrefetchAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/cache_analyzer.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct PrefetchAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodePattern` is never constructed
[INFO] [stdout]   --> src/tools/cache_analyzer.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct CodePattern {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tools/cache_analyzer.rs:62:8
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl CacheAnalyzerTool {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     fn profile_cache_usage(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn parse_perf_output(&self, output: &str, function: &str) -> Result<CacheProfile> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn extract_perf_count(&self, line: &str) -> Option<u64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn analyze_data_structures(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     fn parse_struct_fields(&self, fields_str: &str) -> Vec<(String, String)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn estimate_field_size(&self, field_type: &str) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     fn detect_false_sharing(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn suggest_optimizations(&self, profile: &CacheProfile) -> Vec<CacheOptimization> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     fn measure_prefetch_efficiency(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     fn check_tool_availability(&self, tool_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     fn format_percentage(&self, value: f64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     fn colorize_percentage(&self, value: f64, threshold: f64) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockingOperation` is never constructed
[INFO] [stdout]   --> src/tools/async_lint.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct BlockingOperation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AwaitIssue` is never constructed
[INFO] [stdout]   --> src/tools/async_lint.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct AwaitIssue {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeadlockRisk` is never constructed
[INFO] [stdout]   --> src/tools/async_lint.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct DeadlockRisk {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsyncSuggestion` is never constructed
[INFO] [stdout]   --> src/tools/async_lint.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct AsyncSuggestion {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConcurrencyAnalysis` is never constructed
[INFO] [stdout]   --> src/tools/async_lint.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ConcurrencyAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsyncIssue` is never constructed
[INFO] [stdout]   --> src/tools/async_lint.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct AsyncIssue {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AsyncIssueType` is never used
[INFO] [stdout]   --> src/tools/async_lint.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum AsyncIssueType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `analyze_async_patterns`, `detect_blocking_operations`, `analyze_await_patterns`, `detect_deadlock_patterns`, `suggest_async_improvements`, and `analyze_concurrency_patterns` are never used
[INFO] [stdout]    --> src/tools/async_lint.rs:67:8
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl AsyncLintTool {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  67 |     fn analyze_async_patterns(&self, file_path: &str) -> Result<Vec<AsyncIssue>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn detect_blocking_operations(&self, ast: &syn::File) -> Vec<BlockingOperation> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn analyze_await_patterns(&self, functions: &[syn::ItemFn]) -> Vec<AwaitIssue> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn detect_deadlock_patterns(&self, ast: &syn::File) -> Vec<DeadlockRisk> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn suggest_async_improvements(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     fn analyze_concurrency_patterns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsyncVisitor` is never constructed
[INFO] [stdout]    --> src/tools/async_lint.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | struct AsyncVisitor {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/tools/async_lint.rs:264:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl AsyncVisitor {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 264 |     fn new(file_path: &str) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockingOperationVisitor` is never constructed
[INFO] [stdout]    --> src/tools/async_lint.rs:315:8
[INFO] [stdout]     |
[INFO] [stdout] 315 | struct BlockingOperationVisitor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/tools/async_lint.rs:319:8
[INFO] [stdout]     |
[INFO] [stdout] 318 | impl BlockingOperationVisitor {
[INFO] [stdout]     | ----------------------------- associated function in this implementation
[INFO] [stdout] 319 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AwaitPatternVisitor` is never constructed
[INFO] [stdout]    --> src/tools/async_lint.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | struct AwaitPatternVisitor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/tools/async_lint.rs:356:8
[INFO] [stdout]     |
[INFO] [stdout] 355 | impl AwaitPatternVisitor {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] 356 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeadlockVisitor` is never constructed
[INFO] [stdout]    --> src/tools/async_lint.rs:401:8
[INFO] [stdout]     |
[INFO] [stdout] 401 | struct DeadlockVisitor {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/tools/async_lint.rs:405:8
[INFO] [stdout]     |
[INFO] [stdout] 404 | impl DeadlockVisitor {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] 405 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FunctionNameExtractor` is never used
[INFO] [stdout]    --> src/tools/async_lint.rs:431:7
[INFO] [stdout]     |
[INFO] [stdout] 431 | trait FunctionNameExtractor {
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find_rust_files` is never used
[INFO] [stdout]    --> src/tools/async_lint.rs:726:8
[INFO] [stdout]     |
[INFO] [stdout] 725 | impl AsyncLintTool {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 726 |     fn find_rust_files(&self, dir: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StructInfo` is never constructed
[INFO] [stdout]   --> src/tools/crud_gen.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct StructInfo {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FieldInfo` is never constructed
[INFO] [stdout]   --> src/tools/crud_gen.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct FieldInfo {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tools/crud_gen.rs:27:8
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl CrudGenTool {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn parse_struct_from_file(&self, file_path: &str) -> Result<Vec<StructInfo>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     fn parse_struct_item(&self, struct_item: &ItemStruct) -> Option<StructInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     fn parse_field(&self, field: &Field) -> Option<FieldInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     fn type_to_string(&self, ty: &Type) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     fn is_optional_type(&self, ty: &Type) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     fn generate_crud_operations(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn generate_sql_crud(&self, struct_info: &StructInfo) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     fn generate_diesel_crud(&self, struct_info: &StructInfo) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn generate_seaorm_crud(&self, struct_info: &StructInfo) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     fn generate_api_endpoints(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     fn generate_axum_api(&self, struct_info: &StructInfo) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 499 |     fn generate_actix_api(&self, struct_info: &StructInfo) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 557 |     fn generate_rocket_api(&self, struct_info: &StructInfo) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     fn generate_validation_code(&self, struct_info: &StructInfo) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 641 |     fn generate_validation_attrs(&self, field: &FieldInfo) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 663 |     fn map_rust_type_to_sql(&self, rust_type: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 685 |     fn map_rust_type_to_diesel(&self, rust_type: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 707 |     fn map_rust_type_to_seaorm(&self, rust_type: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 729 |     fn get_primary_key_type(&self, struct_info: &StructInfo) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snake_case` is never used
[INFO] [stdout]    --> src/tools/crud_gen.rs:737:4
[INFO] [stdout]     |
[INFO] [stdout] 737 | fn snake_case(s: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProtoSchema` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ProtoSchema {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProtoMessage` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct ProtoMessage {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProtoField` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct ProtoField {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProtoService` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct ProtoService {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProtoMethod` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | struct ProtoMethod {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenAPISchema` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct OpenAPISchema {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenAPIComponents` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct OpenAPIComponents {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenAPISchemaItem` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct OpenAPISchemaItem {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenAPIProperty` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct OpenAPIProperty {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenAPIPath` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct OpenAPIPath {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLSchema` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | struct GraphQLSchema {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLType` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | struct GraphQLType {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLField` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | struct GraphQLField {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLArg` is never constructed
[INFO] [stdout]   --> src/tools/proto_bind.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | struct GraphQLArg {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tools/proto_bind.rs:95:8
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl ProtoBindTool {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  95 |     fn parse_proto_file(&self, file_path: &str) -> Result<ProtoSchema> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn parse_proto_message(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn parse_proto_field(&self, line: &str) -> Option<ProtoField> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn parse_proto_service(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn parse_proto_method(&self, line: &str) -> Option<ProtoMethod> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn parse_openapi_spec(&self, file_path: &str) -> Result<OpenAPISchema> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     fn extract_openapi_type(&self, schema: &Map<String, Value>) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     fn extract_openapi_request_body(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     fn extract_openapi_response_body(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     fn parse_graphql_schema(&self, file_path: &str) -> Result<GraphQLSchema> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 399 |     fn parse_graphql_type(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     fn parse_graphql_fields(
[WARN] too many lines in the log, truncating it
