[INFO] fetching crate baz-difftastic 0.53.4...
[INFO] checking baz-difftastic-0.53.4 against 1.95.0 for pr-155915
[INFO] extracting crate baz-difftastic 0.53.4 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate baz-difftastic 0.53.4
[INFO] finished tweaking crates.io crate baz-difftastic 0.53.4
[INFO] tweaked toml for crates.io crate baz-difftastic 0.53.4 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate baz-difftastic 0.53.4 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate baz-difftastic 0.53.4 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fixedbitset v0.4.1
[INFO] [stderr]   Downloaded tree_magic_mini v3.0.3
[INFO] [stderr]   Downloaded bytecount v0.6.2
[INFO] [stderr]   Downloaded strum_macros v0.25.1
[INFO] [stderr]   Downloaded wu-diff v0.1.2
[INFO] [stderr]   Downloaded ctor v0.1.22
[INFO] [stderr]   Downloaded mimalloc v0.1.28
[INFO] [stderr]   Downloaded errno v0.3.5
[INFO] [stderr]   Downloaded unicode-xid v0.2.3
[INFO] [stderr]   Downloaded thread_local v1.1.7
[INFO] [stderr]   Downloaded radix-heap v0.4.2
[INFO] [stderr]   Downloaded line-numbers v0.3.0
[INFO] [stderr]   Downloaded diff v0.1.12
[INFO] [stderr]   Downloaded is-terminal v0.4.7
[INFO] [stderr]   Downloaded walkdir v2.3.3
[INFO] [stderr]   Downloaded terminal_size v0.1.17
[INFO] [stderr]   Downloaded os_str_bytes v6.0.1
[INFO] [stderr]   Downloaded const_format_proc_macros v0.2.22
[INFO] [stderr]   Downloaded ahash v0.8.6
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.8
[INFO] [stderr]   Downloaded proc-macro2 v1.0.70
[INFO] [stderr]   Downloaded ignore v0.4.18
[INFO] [stderr]   Downloaded nom v7.1.1
[INFO] [stderr]   Downloaded serde v1.0.176
[INFO] [stderr]   Downloaded const_format v0.2.23
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.8
[INFO] [stderr]   Downloaded libm v0.2.7
[INFO] [stderr]   Downloaded crossterm v0.27.0
[INFO] [stderr]   Downloaded zerocopy v0.7.27
[INFO] [stderr]   Downloaded serde_json v1.0.104
[INFO] [stderr]   Downloaded petgraph v0.6.1
[INFO] [stderr]   Downloaded tree-sitter v0.20.9
[INFO] [stderr]   Downloaded quote v1.0.32
[INFO] [stderr]   Downloaded syn v2.0.39
[INFO] [stderr]   Downloaded globset v0.4.13
[INFO] [stderr]   Downloaded bstr v1.6.0
[INFO] [stderr]   Downloaded serde_derive v1.0.176
[INFO] [stderr]   Downloaded zerocopy-derive v0.7.27
[INFO] [stderr]   Downloaded regex-automata v0.3.7
[INFO] [stderr]   Downloaded libmimalloc-sys v0.1.24
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f01e909c0546c0e73adf3402e30c313ea836bf80e5754d511893d88359295741
[INFO] running `Command { std: "docker" "start" "-a" "f01e909c0546c0e73adf3402e30c313ea836bf80e5754d511893d88359295741", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f01e909c0546c0e73adf3402e30c313ea836bf80e5754d511893d88359295741", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f01e909c0546c0e73adf3402e30c313ea836bf80e5754d511893d88359295741", kill_on_drop: false }`
[INFO] [stdout] f01e909c0546c0e73adf3402e30c313ea836bf80e5754d511893d88359295741
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8c0756fd6007bdf0f89d689338c83cd3bf118ec8041a1f55ca50566534271d94
[INFO] running `Command { std: "docker" "start" "-a" "8c0756fd6007bdf0f89d689338c83cd3bf118ec8041a1f55ca50566534271d94", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.149
[INFO] [stderr]    Compiling crossbeam-utils v0.8.8
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.8
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.70
[INFO] [stderr]    Compiling rayon-core v1.11.0
[INFO] [stderr]    Compiling scopeguard v1.1.0
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling indexmap v1.7.0
[INFO] [stderr]    Compiling rustix v0.37.27
[INFO] [stderr]     Checking once_cell v1.17.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.1
[INFO] [stderr]    Compiling crossbeam-channel v0.5.8
[INFO] [stderr]     Checking aho-corasick v1.0.5
[INFO] [stderr]    Compiling lock_api v0.4.9
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.6
[INFO] [stderr]    Compiling rustversion v1.0.12
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling quote v1.0.32
[INFO] [stderr]    Compiling num_cpus v1.13.1
[INFO] [stderr]     Checking regex-automata v0.3.7
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]    Compiling signal-hook v0.3.17
[INFO] [stderr]    Compiling ahash v0.8.6
[INFO] [stderr]     Checking smallvec v1.10.0
[INFO] [stderr]    Compiling serde v1.0.176
[INFO] [stderr]     Checking regex-automata v0.4.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling libm v0.2.7
[INFO] [stderr]     Checking bstr v1.6.0
[INFO] [stderr]     Checking terminal_size v0.1.17
[INFO] [stderr]     Checking mio v0.8.5
[INFO] [stderr]    Compiling libmimalloc-sys v0.1.24
[INFO] [stderr]    Compiling tree-sitter v0.20.9
[INFO] [stderr]    Compiling rayon v1.7.0
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]     Checking itertools v0.11.0
[INFO] [stderr]     Checking is-terminal v0.4.7
[INFO] [stderr]     Checking zerocopy v0.7.27
[INFO] [stderr]    Compiling serde_derive v1.0.176
[INFO] [stderr]    Compiling unicode-xid v0.2.3
[INFO] [stderr]     Checking fixedbitset v0.4.1
[INFO] [stderr]    Compiling serde_json v1.0.104
[INFO] [stderr]     Checking os_str_bytes v6.0.1
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking clap_lex v0.2.0
[INFO] [stderr]     Checking petgraph v0.6.1
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.22
[INFO] [stderr]     Checking walkdir v2.3.3
[INFO] [stderr]     Checking regex v1.10.2
[INFO] [stderr]     Checking signal-hook-mio v0.2.3
[INFO] [stderr]     Checking env_logger v0.10.0
[INFO] [stderr]     Checking globset v0.4.13
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking textwrap v0.15.0
[INFO] [stderr]    Compiling baz-difftastic v0.53.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking thread_local v1.1.7
[INFO] [stderr]     Checking bitflags v2.4.1
[INFO] [stderr]     Checking itoa v1.0.9
[INFO] [stderr]     Checking ryu v1.0.15
[INFO] [stderr]     Checking bytecount v0.6.2
[INFO] [stderr]     Checking allocator-api2 v0.2.16
[INFO] [stderr]     Checking clap v3.1.18
[INFO] [stderr]     Checking ignore v0.4.18
[INFO] [stderr]     Checking tree_magic_mini v3.0.3
[INFO] [stderr]     Checking humansize v2.1.3
[INFO] [stderr]     Checking hashbrown v0.14.3
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]    Compiling strum_macros v0.25.1
[INFO] [stderr]     Checking pretty_env_logger v0.5.0
[INFO] [stderr]     Checking const_format v0.2.23
[INFO] [stderr]     Checking mimalloc v0.1.28
[INFO] [stderr]     Checking owo-colors v3.5.0
[INFO] [stderr]     Checking bumpalo v3.11.1
[INFO] [stderr]     Checking line-numbers v0.3.0
[INFO] [stderr]     Checking radix-heap v0.4.2
[INFO] [stderr]     Checking glob v0.3.1
[INFO] [stderr]     Checking wu-diff v0.1.2
[INFO] [stderr]     Checking predicates v3.0.4
[INFO] [stderr]     Checking predicates-tree v1.0.5
[INFO] [stderr]     Checking wait-timeout v0.2.0
[INFO] [stderr]     Checking diff v0.1.12
[INFO] [stderr]     Checking yansi v0.5.1
[INFO] [stderr]     Checking pretty_assertions v1.3.0
[INFO] [stderr]     Checking strum v0.25.0
[INFO] [stderr]     Checking assert_cmd v2.0.12
[INFO] [stdout] warning: type `display::style::BackgroundColor` is more private than the item `DisplayOptions::background_color`
[INFO] [stdout]   --> src/options.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub background_color: BackgroundColor,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `DisplayOptions::background_color` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `display::style::BackgroundColor` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/display/style.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) enum BackgroundColor {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DisplayMode` is more private than the item `DisplayOptions::display_mode`
[INFO] [stdout]   --> src/options.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub display_mode: DisplayMode,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `DisplayOptions::display_mode` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DisplayMode` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/options.rs:83:1
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub(crate) enum DisplayMode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ColorOutput` is more private than the item `should_use_color`
[INFO] [stdout]    --> src/options.rs:234:1
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub fn should_use_color(color_output: ColorOutput) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `should_use_color` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ColorOutput` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/options.rs:23:1
[INFO] [stdout]     |
[INFO] [stdout]  23 | pub(crate) enum ColorOutput {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ChangeMap<'a>` is more private than the item `syntax::change_positions`
[INFO] [stdout]    --> src/parse/syntax.rs:873:1
[INFO] [stdout]     |
[INFO] [stdout] 873 | / pub fn change_positions<'a>(
[INFO] [stdout] 874 | |     nodes: &[&'a Syntax<'a>],
[INFO] [stdout] 875 | |     change_map: &ChangeMap<'a>,
[INFO] [stdout] 876 | | ) -> Vec<MatchedPos> {
[INFO] [stdout]     | |____________________^ function `syntax::change_positions` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ChangeMap<'a>` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/diff/changes.rs:17:1
[INFO] [stdout]     |
[INFO] [stdout]  17 | pub(crate) struct ChangeMap<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConflictState` is never used
[INFO] [stdout]  --> src/conflicts.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | enum ConflictState {
[INFO] [stdout]   |      ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `START_LHS_MARKER` is never used
[INFO] [stdout]   --> src/conflicts.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) const START_LHS_MARKER: &str = "<<<<<<<";
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `START_BASE_MARKER` is never used
[INFO] [stdout]   --> src/conflicts.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const START_BASE_MARKER: &str = "|||||||";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `START_RHS_MARKER` is never used
[INFO] [stdout]   --> src/conflicts.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const START_RHS_MARKER: &str = "=======";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `END_RHS_MARKER` is never used
[INFO] [stdout]   --> src/conflicts.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const END_RHS_MARKER: &str = ">>>>>>>";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConflictFiles` is never constructed
[INFO] [stdout]   --> src/conflicts.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) struct ConflictFiles {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_conflict_markers` is never used
[INFO] [stdout]   --> src/conflicts.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) fn apply_conflict_markers(s: &str) -> Result<ConflictFiles, String> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_matched_lines_filled` is never used
[INFO] [stdout]   --> src/display/context.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) fn all_matched_lines_filled(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_ends` is never used
[INFO] [stdout]   --> src/display/context.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn add_ends(
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_matched_lines` is never used
[INFO] [stdout]    --> src/display/context.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn all_matched_lines(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `all_lines` is never used
[INFO] [stdout]    --> src/display/context.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn all_lines(mps: &[MatchedPos]) -> Vec<LineNumber> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matched_lines_from_unchanged` is never used
[INFO] [stdout]    --> src/display/context.rs:136:4
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn matched_lines_from_unchanged(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_in_opposite_lines` is never used
[INFO] [stdout]    --> src/display/context.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn merge_in_opposite_lines(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_blanks_between` is never used
[INFO] [stdout]    --> src/display/context.rs:212:4
[INFO] [stdout]     |
[INFO] [stdout] 212 | fn match_blanks_between(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_blanks_before` is never used
[INFO] [stdout]    --> src/display/context.rs:242:4
[INFO] [stdout]     |
[INFO] [stdout] 242 | fn match_blanks_before(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_preceding_blanks` is never used
[INFO] [stdout]    --> src/display/context.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn match_preceding_blanks(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_contiguous` is never used
[INFO] [stdout]    --> src/display/context.rs:635:4
[INFO] [stdout]     |
[INFO] [stdout] 635 | fn ensure_contiguous(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compact_gaps` is never used
[INFO] [stdout]    --> src/display/context.rs:680:4
[INFO] [stdout]     |
[INFO] [stdout] 680 | fn compact_gaps(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print` is never used
[INFO] [stdout]   --> src/display/inline.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) fn print(
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Status` is never used
[INFO] [stdout]   --> src/display/json.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum Status {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `File` is never constructed
[INFO] [stdout]   --> src/display/json.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct File<'f> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `with_sections` and `with_status` are never used
[INFO] [stdout]   --> src/display/json.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<'f> File<'f> {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 35 |     fn with_sections(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn with_status(language: &'f FileFormat, path: &'f str, status: Status) -> File<'f> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Line` is never constructed
[INFO] [stdout]    --> src/display/json.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | struct Line<'l> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/display/json.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 203 | impl<'l> Line<'l> {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 204 |     fn new(lhs_number: Option<u32>, rhs_number: Option<u32>) -> Line<'l> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Side` is never constructed
[INFO] [stdout]    --> src/display/json.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | struct Side<'s> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/display/json.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl<'s> Side<'s> {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 219 |     fn new(line_number: u32) -> Side<'s> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Change` is never constructed
[INFO] [stdout]    --> src/display/json.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | struct Change<'c> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Highlight` is never used
[INFO] [stdout]    --> src/display/json.rs:239:6
[INFO] [stdout]     |
[INFO] [stdout] 239 | enum Highlight {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_match` is never used
[INFO] [stdout]    --> src/display/json.rs:250:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl Highlight {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 250 |     fn from_match(kind: &syntax::MatchKind) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_directory` is never used
[INFO] [stdout]    --> src/display/json.rs:276:15
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub(crate) fn print_directory(diffs: Vec<DiffResult>) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print` is never used
[INFO] [stdout]    --> src/display/json.rs:284:15
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub(crate) fn print(diff: &DiffResult) {
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_changes_to_side` is never used
[INFO] [stdout]    --> src/display/json.rs:292:4
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn add_changes_to_side<'s>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matches_for_line` is never used
[INFO] [stdout]    --> src/display/json.rs:311:4
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn matches_for_line(matches: &[MatchedPos], line_num: LineNumber) -> Vec<&MatchedPos> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SPACER` is never used
[INFO] [stdout]   --> src/display/side_by_side.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const SPACER: &str = " ";
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_line_num_padded` is never used
[INFO] [stdout]   --> src/display/side_by_side.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn format_line_num_padded(line_num: LineNumber, column_width: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_missing_line_num` is never used
[INFO] [stdout]   --> src/display/side_by_side.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn format_missing_line_num(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `display_single_column` is never used
[INFO] [stdout]   --> src/display/side_by_side.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn display_single_column(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `display_line_nums` is never used
[INFO] [stdout]    --> src/display/side_by_side.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn display_line_nums(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceDimensions` is never constructed
[INFO] [stdout]    --> src/display/side_by_side.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | struct SourceDimensions {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/display/side_by_side.rs:169:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl SourceDimensions {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] 169 |     fn new(terminal_width: usize, line_nums: &[(Option<LineNumber>, Option<LineNumber>)]) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `highlight_positions` is never used
[INFO] [stdout]    --> src/display/side_by_side.rs:239:4
[INFO] [stdout]     |
[INFO] [stdout] 239 | fn highlight_positions(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `highlight_as_novel` is never used
[INFO] [stdout]    --> src/display/side_by_side.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn highlight_as_novel(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print` is never used
[INFO] [stdout]    --> src/display/side_by_side.rs:305:15
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub(crate) fn print(
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Light` is never constructed
[INFO] [stdout]   --> src/display/style.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) enum BackgroundColor {
[INFO] [stdout]    |                 --------------- variant in this enum
[INFO] [stdout] 22 |     Dark,
[INFO] [stdout] 23 |     Light,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BackgroundColor` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_dark` is never used
[INFO] [stdout]   --> src/display/style.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl BackgroundColor {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 27 |     pub(crate) fn is_dark(self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `byte_offset_for_width` is never used
[INFO] [stdout]   --> src/display/style.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn byte_offset_for_width(s: &str, width: usize, tab_width: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `substring_by_byte` is never used
[INFO] [stdout]   --> src/display/style.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn substring_by_byte(s: &str, start: usize, end: usize) -> &str {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `substring_by_byte_replace_tabs` is never used
[INFO] [stdout]   --> src/display/style.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn substring_by_byte_replace_tabs(s: &str, start: usize, end: usize, tab_width: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `width_respecting_tabs` is never used
[INFO] [stdout]   --> src/display/style.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn width_respecting_tabs(s: &str, tab_width: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_string_by_width` is never used
[INFO] [stdout]   --> src/display/style.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn split_string_by_width(s: &str, max_width: usize, tab_width: usize) -> Vec<(&str, usize)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace_tabs` is never used
[INFO] [stdout]    --> src/display/style.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub(crate) fn replace_tabs(src: &str, tab_width: usize) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_and_apply` is never used
[INFO] [stdout]    --> src/display/style.rs:126:15
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub(crate) fn split_and_apply(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_line` is never used
[INFO] [stdout]    --> src/display/style.rs:231:4
[INFO] [stdout]     |
[INFO] [stdout] 231 | fn apply_line(line: &str, styles: &[(SingleLineSpan, Style)]) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_by_line` is never used
[INFO] [stdout]    --> src/display/style.rs:264:4
[INFO] [stdout]     |
[INFO] [stdout] 264 | fn group_by_line(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `style_lines` is never used
[INFO] [stdout]    --> src/display/style.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn style_lines(lines: &[&str], styles: &[(SingleLineSpan, Style)]) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `novel_style` is never used
[INFO] [stdout]    --> src/display/style.rs:300:15
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub(crate) fn novel_style(style: Style, side: Side, background: BackgroundColor) -> Style {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_positions` is never used
[INFO] [stdout]    --> src/display/style.rs:314:15
[INFO] [stdout]     |
[INFO] [stdout] 314 | pub(crate) fn color_positions(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_colors` is never used
[INFO] [stdout]    --> src/display/style.rs:395:15
[INFO] [stdout]     |
[INFO] [stdout] 395 | pub(crate) fn apply_colors(
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_header_color` is never used
[INFO] [stdout]    --> src/display/style.rs:408:4
[INFO] [stdout]     |
[INFO] [stdout] 408 | fn apply_header_color(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_line_number_color` is never used
[INFO] [stdout]    --> src/display/style.rs:429:15
[INFO] [stdout]     |
[INFO] [stdout] 429 | pub(crate) fn apply_line_number_color(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header` is never used
[INFO] [stdout]    --> src/display/style.rs:457:15
[INFO] [stdout]     |
[INFO] [stdout] 457 | pub(crate) fn header(
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXIT_SUCCESS` is never used
[INFO] [stdout]  --> src/exit_codes.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) const EXIT_SUCCESS: i32 = 0;
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXIT_FOUND_CHANGES` is never used
[INFO] [stdout]  --> src/exit_codes.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) const EXIT_FOUND_CHANGES: i32 = 1;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_or_die` is never used
[INFO] [stdout]    --> src/files.rs:106:15
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub(crate) fn read_or_die(path: &Path) -> Vec<u8> {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_line_num` is never used
[INFO] [stdout]  --> src/lines.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) fn format_line_num(line_num: LineNumber) -> String {
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinePosition` is never constructed
[INFO] [stdout]   --> src/lines.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct LinePosition {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `byte_len` is never used
[INFO] [stdout]   --> src/lines.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) fn byte_len(s: &str) -> usize {
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_TAB_WIDTH` is never used
[INFO] [stdout]   --> src/options.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const DEFAULT_TAB_WIDTH: usize = 8;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Always`, `Auto`, and `Never` are never constructed
[INFO] [stdout]   --> src/options.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) enum ColorOutput {
[INFO] [stdout]    |                 ----------- variants in this enum
[INFO] [stdout] 24 |     Always,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 25 |     Auto,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 26 |     Never,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ColorOutput` 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: variants `Inline`, `SideBySideShowBoth`, and `Json` are never constructed
[INFO] [stdout]   --> src/options.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub(crate) enum DisplayMode {
[INFO] [stdout]    |                 ----------- variants in this enum
[INFO] [stdout] 84 |     Inline,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 85 |     SideBySide,
[INFO] [stdout] 86 |     SideBySideShowBoth,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 87 |     Json,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DisplayMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_cli_argument` and `from_path_argument` are never used
[INFO] [stdout]    --> src/options.rs:117:19
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl FileArgument {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub(crate) fn from_cli_argument(arg: &OsStr) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub(crate) fn from_path_argument(arg: &OsStr) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Mode` is never used
[INFO] [stdout]    --> src/options.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub(crate) enum Mode {
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `looks_like_hacklang` is never used
[INFO] [stdout]    --> src/parse/guess_language.rs:380:4
[INFO] [stdout]     |
[INFO] [stdout] 380 | fn looks_like_hacklang(path: &Path, src: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCAML_ATOM_NODES` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:121:7
[INFO] [stdout]     |
[INFO] [stdout] 121 | const OCAML_ATOM_NODES: [&str; 6] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_tree` is never used
[INFO] [stdout]     --> src/parse/tree_sitter_parser.rs:1237:15
[INFO] [stdout]      |
[INFO] [stdout] 1237 | pub(crate) fn print_tree(src: &str, tree: &tree_sitter::Tree) {
[INFO] [stdout]      |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_cursor` is never used
[INFO] [stdout]     --> src/parse/tree_sitter_parser.rs:1242:4
[INFO] [stdout]      |
[INFO] [stdout] 1242 | fn print_cursor(src: &str, cursor: &mut ts::TreeCursor, depth: usize) {
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]     --> src/parse/tree_sitter_parser.rs:1377:15
[INFO] [stdout]      |
[INFO] [stdout] 1377 | pub(crate) fn parse<'a>(
[INFO] [stdout]      |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_ada` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn tree_sitter_ada() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_clojure` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn tree_sitter_clojure() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_commonlisp` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn tree_sitter_commonlisp() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_dart` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn tree_sitter_dart() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_elisp` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn tree_sitter_elisp() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_elixir` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn tree_sitter_elixir() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_elm` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn tree_sitter_elm() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_elvish` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn tree_sitter_elvish() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_erlang` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn tree_sitter_erlang() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_gleam` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn tree_sitter_gleam() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_hare` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn tree_sitter_hare() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_hack` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn tree_sitter_hack() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_haskell` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn tree_sitter_haskell() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_janet_simple` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn tree_sitter_janet_simple() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_julia` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn tree_sitter_julia() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_latex` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 |     fn tree_sitter_latex() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_lua` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn tree_sitter_lua() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_newick` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn tree_sitter_newick() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_ocaml` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn tree_sitter_ocaml() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_ocaml_interface` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn tree_sitter_ocaml_interface() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_pascal` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn tree_sitter_pascal() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_perl` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn tree_sitter_perl() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_qmljs` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn tree_sitter_qmljs() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_racket` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn tree_sitter_racket() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_solidity` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 |     fn tree_sitter_solidity() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_swift` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn tree_sitter_swift() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_zig` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn tree_sitter_zig() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommitInfo` is never constructed
[INFO] [stdout]  --> src/version.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) struct CommitInfo {
[INFO] [stdout]   |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VersionInfo` is never constructed
[INFO] [stdout]   --> src/version.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct VersionInfo {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `version` is never used
[INFO] [stdout]   --> src/version.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub(crate) const fn version() -> VersionInfo {
[INFO] [stdout]    |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `display::style::BackgroundColor` is more private than the item `options::DisplayOptions::background_color`
[INFO] [stdout]   --> src/options.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub background_color: BackgroundColor,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `options::DisplayOptions::background_color` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `display::style::BackgroundColor` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/display/style.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) enum BackgroundColor {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DisplayMode` is more private than the item `options::DisplayOptions::display_mode`
[INFO] [stdout]   --> src/options.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub display_mode: DisplayMode,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `options::DisplayOptions::display_mode` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `DisplayMode` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/options.rs:83:1
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub(crate) enum DisplayMode {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ColorOutput` is more private than the item `should_use_color`
[INFO] [stdout]    --> src/options.rs:234:1
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub fn should_use_color(color_output: ColorOutput) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `should_use_color` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `ColorOutput` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/options.rs:23:1
[INFO] [stdout]     |
[INFO] [stdout]  23 | pub(crate) enum ColorOutput {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `changes::ChangeMap<'a>` is more private than the item `syntax::change_positions`
[INFO] [stdout]    --> src/parse/syntax.rs:873:1
[INFO] [stdout]     |
[INFO] [stdout] 873 | / pub fn change_positions<'a>(
[INFO] [stdout] 874 | |     nodes: &[&'a Syntax<'a>],
[INFO] [stdout] 875 | |     change_map: &ChangeMap<'a>,
[INFO] [stdout] 876 | | ) -> Vec<MatchedPos> {
[INFO] [stdout]     | |____________________^ function `syntax::change_positions` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `changes::ChangeMap<'a>` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/diff/changes.rs:17:1
[INFO] [stdout]     |
[INFO] [stdout]  17 | pub(crate) struct ChangeMap<'a> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `num_conflicts` is never read
[INFO] [stdout]   --> src/conflicts.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) struct ConflictFiles {
[INFO] [stdout]    |                   ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(crate) num_conflicts: usize,
[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 `print` is never used
[INFO] [stdout]   --> src/display/inline.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) fn print(
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Status` is never used
[INFO] [stdout]   --> src/display/json.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum Status {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `File` is never constructed
[INFO] [stdout]   --> src/display/json.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct File<'f> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `with_sections` and `with_status` are never used
[INFO] [stdout]   --> src/display/json.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<'f> File<'f> {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 35 |     fn with_sections(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn with_status(language: &'f FileFormat, path: &'f str, status: Status) -> File<'f> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Line` is never constructed
[INFO] [stdout]    --> src/display/json.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | struct Line<'l> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/display/json.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 203 | impl<'l> Line<'l> {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 204 |     fn new(lhs_number: Option<u32>, rhs_number: Option<u32>) -> Line<'l> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Side` is never constructed
[INFO] [stdout]    --> src/display/json.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | struct Side<'s> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/display/json.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl<'s> Side<'s> {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 219 |     fn new(line_number: u32) -> Side<'s> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Change` is never constructed
[INFO] [stdout]    --> src/display/json.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | struct Change<'c> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Highlight` is never used
[INFO] [stdout]    --> src/display/json.rs:239:6
[INFO] [stdout]     |
[INFO] [stdout] 239 | enum Highlight {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_match` is never used
[INFO] [stdout]    --> src/display/json.rs:250:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl Highlight {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 250 |     fn from_match(kind: &syntax::MatchKind) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_directory` is never used
[INFO] [stdout]    --> src/display/json.rs:276:15
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub(crate) fn print_directory(diffs: Vec<DiffResult>) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print` is never used
[INFO] [stdout]    --> src/display/json.rs:284:15
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub(crate) fn print(diff: &DiffResult) {
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_changes_to_side` is never used
[INFO] [stdout]    --> src/display/json.rs:292:4
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn add_changes_to_side<'s>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matches_for_line` is never used
[INFO] [stdout]    --> src/display/json.rs:311:4
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn matches_for_line(matches: &[MatchedPos], line_num: LineNumber) -> Vec<&MatchedPos> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Light` is never constructed
[INFO] [stdout]   --> src/display/style.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) enum BackgroundColor {
[INFO] [stdout]    |                 --------------- variant in this enum
[INFO] [stdout] 22 |     Dark,
[INFO] [stdout] 23 |     Light,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BackgroundColor` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXIT_SUCCESS` is never used
[INFO] [stdout]  --> src/exit_codes.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) const EXIT_SUCCESS: i32 = 0;
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXIT_FOUND_CHANGES` is never used
[INFO] [stdout]  --> src/exit_codes.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) const EXIT_FOUND_CHANGES: i32 = 1;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_or_die` is never used
[INFO] [stdout]    --> src/files.rs:106:15
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub(crate) fn read_or_die(path: &Path) -> Vec<u8> {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinePosition` is never constructed
[INFO] [stdout]   --> src/lines.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct LinePosition {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_TAB_WIDTH` is never used
[INFO] [stdout]   --> src/options.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const DEFAULT_TAB_WIDTH: usize = 8;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Always`, `Auto`, and `Never` are never constructed
[INFO] [stdout]   --> src/options.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) enum ColorOutput {
[INFO] [stdout]    |                 ----------- variants in this enum
[INFO] [stdout] 24 |     Always,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 25 |     Auto,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 26 |     Never,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ColorOutput` 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: variants `Inline`, `SideBySideShowBoth`, and `Json` are never constructed
[INFO] [stdout]   --> src/options.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub(crate) enum DisplayMode {
[INFO] [stdout]    |                 ----------- variants in this enum
[INFO] [stdout] 84 |     Inline,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 85 |     SideBySide,
[INFO] [stdout] 86 |     SideBySideShowBoth,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 87 |     Json,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DisplayMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_cli_argument` is never used
[INFO] [stdout]    --> src/options.rs:117:19
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl FileArgument {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub(crate) fn from_cli_argument(arg: &OsStr) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Mode` is never used
[INFO] [stdout]    --> src/options.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub(crate) enum Mode {
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `looks_like_hacklang` is never used
[INFO] [stdout]    --> src/parse/guess_language.rs:380:4
[INFO] [stdout]     |
[INFO] [stdout] 380 | fn looks_like_hacklang(path: &Path, src: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCAML_ATOM_NODES` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:121:7
[INFO] [stdout]     |
[INFO] [stdout] 121 | const OCAML_ATOM_NODES: [&str; 6] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_tree` is never used
[INFO] [stdout]     --> src/parse/tree_sitter_parser.rs:1237:15
[INFO] [stdout]      |
[INFO] [stdout] 1237 | pub(crate) fn print_tree(src: &str, tree: &tree_sitter::Tree) {
[INFO] [stdout]      |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_cursor` is never used
[INFO] [stdout]     --> src/parse/tree_sitter_parser.rs:1242:4
[INFO] [stdout]      |
[INFO] [stdout] 1242 | fn print_cursor(src: &str, cursor: &mut ts::TreeCursor, depth: usize) {
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_ada` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn tree_sitter_ada() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_clojure` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn tree_sitter_clojure() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_commonlisp` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn tree_sitter_commonlisp() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_dart` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn tree_sitter_dart() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_elisp` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn tree_sitter_elisp() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_elixir` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn tree_sitter_elixir() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_elm` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn tree_sitter_elm() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_elvish` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn tree_sitter_elvish() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_erlang` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn tree_sitter_erlang() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_gleam` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn tree_sitter_gleam() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_hare` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn tree_sitter_hare() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_hack` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn tree_sitter_hack() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_haskell` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn tree_sitter_haskell() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_janet_simple` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn tree_sitter_janet_simple() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_julia` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn tree_sitter_julia() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_latex` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 |     fn tree_sitter_latex() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_lua` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn tree_sitter_lua() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_newick` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn tree_sitter_newick() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_ocaml` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn tree_sitter_ocaml() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_ocaml_interface` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn tree_sitter_ocaml_interface() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_pascal` is never used
[INFO] [stdout]   --> src/parse/tree_sitter_parser.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn tree_sitter_pascal() -> ts::Language;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_perl` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn tree_sitter_perl() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_qmljs` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn tree_sitter_qmljs() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_racket` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn tree_sitter_racket() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_solidity` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 |     fn tree_sitter_solidity() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_swift` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn tree_sitter_swift() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_sitter_zig` is never used
[INFO] [stdout]    --> src/parse/tree_sitter_parser.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn tree_sitter_zig() -> ts::Language;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommitInfo` is never constructed
[INFO] [stdout]  --> src/version.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) struct CommitInfo {
[INFO] [stdout]   |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VersionInfo` is never constructed
[INFO] [stdout]   --> src/version.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct VersionInfo {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `version` is never used
[INFO] [stdout]   --> src/version.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub(crate) const fn version() -> VersionInfo {
[INFO] [stdout]    |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 46s
[INFO] running `Command { std: "docker" "inspect" "8c0756fd6007bdf0f89d689338c83cd3bf118ec8041a1f55ca50566534271d94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8c0756fd6007bdf0f89d689338c83cd3bf118ec8041a1f55ca50566534271d94", kill_on_drop: false }`
[INFO] [stdout] 8c0756fd6007bdf0f89d689338c83cd3bf118ec8041a1f55ca50566534271d94
