[INFO] cloning repository https://github.com/inxeoz/chak-vcs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/inxeoz/chak-vcs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Finxeoz%2Fchak-vcs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Finxeoz%2Fchak-vcs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f0ee72ffde9ab4ba202b551346e5f3edad3196b7 [INFO] testing inxeoz/chak-vcs against nightly-2025-01-18 for randomize-layout-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Finxeoz%2Fchak-vcs" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/inxeoz/chak-vcs on toolchain nightly-2025-01-18 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2025-01-18" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/inxeoz/chak-vcs [INFO] finished tweaking git repo https://github.com/inxeoz/chak-vcs [INFO] tweaked toml for git repo https://github.com/inxeoz/chak-vcs written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/inxeoz/chak-vcs 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" "+nightly-2025-01-18" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded anstyle-parse v0.2.6 [INFO] [stderr] Downloaded globset v0.4.15 [INFO] [stderr] Downloaded clap_lex v0.7.4 [INFO] [stderr] Downloaded anstyle-wincon v3.0.6 [INFO] [stderr] Downloaded anstyle-query v1.1.2 [INFO] [stderr] Downloaded similar v2.6.0 [INFO] [stderr] Downloaded ignore v0.4.23 [INFO] [stderr] Downloaded itertools v0.14.0 [INFO] [stderr] Downloaded colorchoice v1.0.3 [INFO] [stderr] Downloaded anstream v0.6.18 [INFO] [stderr] Downloaded clap v4.5.23 [INFO] [stderr] Downloaded clap_builder v4.5.23 [INFO] [stderr] Downloaded crossbeam-deque v0.8.6 [INFO] [stderr] Downloaded anstyle v1.0.10 [INFO] [stderr] Downloaded syn v2.0.95 [INFO] [stderr] Downloaded bstr v1.11.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 36a8fa6b16c0814b5fe614a5ab5a20ca7384621dd52fe1d174d1633efdef8524 [INFO] running `Command { std: "docker" "start" "-a" "36a8fa6b16c0814b5fe614a5ab5a20ca7384621dd52fe1d174d1633efdef8524", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "36a8fa6b16c0814b5fe614a5ab5a20ca7384621dd52fe1d174d1633efdef8524", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "36a8fa6b16c0814b5fe614a5ab5a20ca7384621dd52fe1d174d1633efdef8524", kill_on_drop: false }` [INFO] [stdout] 36a8fa6b16c0814b5fe614a5ab5a20ca7384621dd52fe1d174d1633efdef8524 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 52500546a7b0f64ec12ed4471824c2eea335de5b37df7b1fdf43264f0bf8f771 [INFO] running `Command { std: "docker" "start" "-a" "52500546a7b0f64ec12ed4471824c2eea335de5b37df7b1fdf43264f0bf8f771", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.92 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling colorchoice v1.0.3 [INFO] [stderr] Compiling anstyle-query v1.1.2 [INFO] [stderr] Compiling anstyle v1.0.10 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling clap_lex v0.7.4 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling anstyle-parse v0.2.6 [INFO] [stderr] Compiling serde v1.0.217 [INFO] [stderr] Compiling bstr v1.11.3 [INFO] [stderr] Compiling serde_json v1.0.135 [INFO] [stderr] Compiling log v0.4.22 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling hashbrown v0.15.2 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling similar v2.6.0 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling anstream v0.6.18 [INFO] [stderr] Compiling clap_builder v4.5.23 [INFO] [stderr] Compiling quote v1.0.38 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling syn v2.0.95 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling sha2 v0.10.8 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling globset v0.4.15 [INFO] [stderr] Compiling ignore v0.4.23 [INFO] [stderr] Compiling serde_derive v1.0.217 [INFO] [stderr] Compiling clap_derive v4.5.18 [INFO] [stderr] Compiling clap v4.5.23 [INFO] [stderr] Compiling indexmap v2.7.0 [INFO] [stderr] Compiling chak-vcs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `VCS_FOLDER` [INFO] [stdout] --> src/add.rs:1:50 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::config::{GET_CURRENT_DIR, BLOB_FOLD, VCS_FOLDER, VCS_IGNORE_FILE}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `create_file` and `save_to_file` [INFO] [stdout] --> src/add.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::macros::{create_file, save_to_file}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/add.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PathBuf` [INFO] [stdout] --> src/macros.rs:5:23 [INFO] [stdout] | [INFO] [stdout] 5 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VCS_IGNORE_FILE` [INFO] [stdout] --> src/util.rs:1:38 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::config::{GET_CURRENT_DIR, VCS_IGNORE_FILE}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/util.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GitignoreBuilder` and `Gitignore` [INFO] [stdout] --> src/util.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 6 | use ignore::gitignore::{Gitignore, GitignoreBuilder}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ignore::Match` [INFO] [stdout] --> src/util.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use ignore::Match; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/config.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env` [INFO] [stdout] --> src/commandline.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::env; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/status.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `VCS_FOLDER` and `VCS_IGNORE_FILE` [INFO] [stdout] --> src/status.rs:3:49 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::config::{BLOB_FOLD, GET_CURRENT_DIR, VCS_FOLDER, VCS_IGNORE_FILE}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::read_directory_entries` [INFO] [stdout] --> src/status.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::util::read_directory_entries; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `clap::builder::Str` [INFO] [stdout] --> src/hashing.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use clap::builder::Str; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> src/hashing.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/hashing.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 44 | (first.get_one_hash() + &second.get_one_hash()), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 44 - (first.get_one_hash() + &second.get_one_hash()), [INFO] [stdout] 44 + first.get_one_hash() + &second.get_one_hash(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `similar::TextDiff` [INFO] [stdout] --> src/diff.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use similar::TextDiff; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/diff_algo.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hash::Hash` [INFO] [stdout] --> src/diff_algo.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::hash::Hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/diff_algo.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::option::Option` [INFO] [stdout] --> src/diff_algo.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::option::Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/diff_algo.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Parser` and `Subcommand` [INFO] [stdout] --> src/main.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | use clap::{Parser, Subcommand}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `env` and `fs` [INFO] [stdout] --> src/main.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | use std::{env, fs}; [INFO] [stdout] | ^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env::current_dir` [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::env::current_dir; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PathBuf` and `Path` [INFO] [stdout] --> src/main.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GitignoreBuilder` and `Gitignore` [INFO] [stdout] --> src/main.rs:18:25 [INFO] [stdout] | [INFO] [stdout] 18 | use ignore::gitignore::{Gitignore, GitignoreBuilder}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ignore::Match` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use ignore::Match; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::commandline::parse_commandline` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::commandline::parse_commandline; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `create_content_block` [INFO] [stdout] --> src/main.rs:22:48 [INFO] [stdout] | [INFO] [stdout] 22 | use crate::diff_algo::{compare_hashed_content, create_content_block, to_interconnected_line}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/add.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let mut builder = GitignoreBuilder::new(path); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/add.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | if let nested_tree = dir_snapshot(&entry, ignore_build_vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] = note: `#[warn(irrefutable_let_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/status.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | } else if let file_blob_pointer = HashPointer::from_file(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/diff_algo.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | _ => {} [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/diff_algo.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 170 | EitherOrBoth::Both((p_index, p_hash), (l_index, l_hash)) => { [INFO] [stdout] | -------------------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 186 | EitherOrBoth::Left((p_index, p_hash)) => { [INFO] [stdout] | ------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 195 | EitherOrBoth::Right((l_index, l_hash)) => { [INFO] [stdout] | -------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 198 | _ => {} [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `diff::Version` is more private than the item `deserialize_version` [INFO] [stdout] --> src/diff.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn deserialize_version(path: &Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `deserialize_version` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `diff::Version` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/diff.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | struct Version { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `diff::Version` is more private than the item `serialize_version` [INFO] [stdout] --> src/diff.rs:58:1 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn serialize_version(data: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `serialize_version` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `diff::Version` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/diff.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | struct Version { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init` is never used [INFO] [stdout] --> src/init.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn init() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/add.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn add(inputs: &Vec) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_all` is never used [INFO] [stdout] --> src/add.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn add_all() { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dir_snapshot` is never used [INFO] [stdout] --> src/add.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn dir_snapshot( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_ignore_local_level` is never used [INFO] [stdout] --> src/add.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn parse_ignore_local_level( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_fold` is never used [INFO] [stdout] --> src/macros.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn create_fold(dir: &Path) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_file` is never used [INFO] [stdout] --> src/macros.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn create_file(parent_fold: &Path, blob_pointer: &HashPointer, content: Option) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_to_file` is never used [INFO] [stdout] --> src/macros.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn save_to_file(file_path: &Path, content: &str, append: bool) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `input_from_commandline` is never used [INFO] [stdout] --> src/macros.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn input_from_commandline(prompt: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_vcs_presence_in_subdir` is never used [INFO] [stdout] --> src/util.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn check_vcs_presence_in_subdir(vcs_name: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_vcs_presence` is never used [INFO] [stdout] --> src/util.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn check_vcs_presence() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_directory_entries` is never used [INFO] [stdout] --> src/util.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn read_directory_entries(path: &Path, curr_dir_from_root: Option<&Path>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `VCS_FOLDER` is never used [INFO] [stdout] --> src/config.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub static VCS_FOLDER: &str = ".chak"; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `VCS_IGNORE_FILE` is never used [INFO] [stdout] --> src/config.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | pub static VCS_IGNORE_FILE: &str = ".ignore"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `BLOB_FOLD` is never used [INFO] [stdout] --> src/config.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn BLOB_FOLD() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `VERSION_FOLD` is never used [INFO] [stdout] --> src/config.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn VERSION_FOLD() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_commandline` is never used [INFO] [stdout] --> src/commandline.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn parse_commandline() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_status` is never used [INFO] [stdout] --> src/status.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn get_status(path: &Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hashing.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl HashPointer { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 25 | [INFO] [stdout] 26 | pub fn replace(&mut self, hash_pointer: &HashPointer) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn combine(first: &Self, second: &Self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn update_hash(&mut self, content: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_fold_name(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn get_file_name(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn get_path(&self) -> PathBuf { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn from_file(path: &Path) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn save_blob(file_path: &Path, save_dir: &Path) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn save_blob_from_content(save_dir: &Path, content: String) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn hash_from_pointers(pointers: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn from_path(path: &Path) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn from_hash_string_vec(strings: &[String]) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_versioning` is never used [INFO] [stdout] --> src/diff.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn start_versioning(file_path: &Path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deserialize_version` is never used [INFO] [stdout] --> src/diff.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn deserialize_version(path: &Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_version` is never used [INFO] [stdout] --> src/diff.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn serialize_version(data: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `NOCHANGE` and `REPLACE` are never constructed [INFO] [stdout] --> src/diff_algo.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum DiffLineType { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 18 | NOCHANGE, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 19 | REPLACE, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DiffLineType` 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 `new` is never used [INFO] [stdout] --> src/diff_algo.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Line { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 27 | pub fn new(line: String) -> Line { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `diff_line_type` and `copy_from_live` are never read [INFO] [stdout] --> src/diff_algo.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct DiffLine { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 43 | #[serde(skip)] [INFO] [stdout] 44 | pub diff_line_type: DiffLineType, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 45 | #[serde(skip)] [INFO] [stdout] 46 | pub copy_from_live: Line, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DiffLine` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from` is never used [INFO] [stdout] --> src/diff_algo.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl DiffLine { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 50 | pub fn from(prev_line: Line, live_line: Line) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from` and `add` are never used [INFO] [stdout] --> src/diff_algo.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 76 | impl Block { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 77 | pub fn from(diff_line: DiffLine) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn add(&mut self, diff_line: DiffLine) -> Result<(), String> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `from`, and `add` are never used [INFO] [stdout] --> src/diff_algo.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 103 | impl ContentBlock { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 104 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn from(block: Block) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn add(&mut self, diff_line: DiffLine) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_to_lines` is never used [INFO] [stdout] --> src/diff_algo.rs:208:8 [INFO] [stdout] | [INFO] [stdout] 208 | pub fn file_to_lines(file_path: &Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_content_block` is never used [INFO] [stdout] --> src/diff_algo.rs:217:8 [INFO] [stdout] | [INFO] [stdout] 217 | pub fn create_content_block(prev: &Path, live: &Path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `GET_CURRENT_DIR` should have a snake case name [INFO] [stdout] --> src/config.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn GET_CURRENT_DIR() -> &'static PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_current_dir` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `BLOB_FOLD` should have a snake case name [INFO] [stdout] --> src/config.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn BLOB_FOLD() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `blob_fold` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `VERSION_FOLD` should have a snake case name [INFO] [stdout] --> src/config.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn VERSION_FOLD() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `version_fold` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prev_DiffLine` should have a snake case name [INFO] [stdout] --> src/diff_algo.rs:229:32 [INFO] [stdout] | [INFO] [stdout] 229 | EitherOrBoth::Left(prev_DiffLine) => { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `prev_diff_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `live_DiffLine` should have a snake case name [INFO] [stdout] --> src/diff_algo.rs:233:33 [INFO] [stdout] | [INFO] [stdout] 233 | EitherOrBoth::Right(live_DiffLine) => { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `live_diff_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.15s [INFO] running `Command { std: "docker" "inspect" "52500546a7b0f64ec12ed4471824c2eea335de5b37df7b1fdf43264f0bf8f771", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "52500546a7b0f64ec12ed4471824c2eea335de5b37df7b1fdf43264f0bf8f771", kill_on_drop: false }` [INFO] [stdout] 52500546a7b0f64ec12ed4471824c2eea335de5b37df7b1fdf43264f0bf8f771 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e9cf89c0eb3a8af6cbec739fcb15d5461fdb8f98410bd67c2709160fe4acaab5 [INFO] running `Command { std: "docker" "start" "-a" "e9cf89c0eb3a8af6cbec739fcb15d5461fdb8f98410bd67c2709160fe4acaab5", kill_on_drop: false }` [INFO] [stderr] Compiling chak-vcs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `VCS_FOLDER` [INFO] [stdout] --> src/add.rs:1:50 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::config::{GET_CURRENT_DIR, BLOB_FOLD, VCS_FOLDER, VCS_IGNORE_FILE}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `create_file` and `save_to_file` [INFO] [stdout] --> src/add.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::macros::{create_file, save_to_file}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/add.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PathBuf` [INFO] [stdout] --> src/macros.rs:5:23 [INFO] [stdout] | [INFO] [stdout] 5 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VCS_IGNORE_FILE` [INFO] [stdout] --> src/util.rs:1:38 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::config::{GET_CURRENT_DIR, VCS_IGNORE_FILE}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/util.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GitignoreBuilder` and `Gitignore` [INFO] [stdout] --> src/util.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 6 | use ignore::gitignore::{Gitignore, GitignoreBuilder}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ignore::Match` [INFO] [stdout] --> src/util.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use ignore::Match; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/config.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env` [INFO] [stdout] --> src/commandline.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::env; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/status.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `VCS_FOLDER` and `VCS_IGNORE_FILE` [INFO] [stdout] --> src/status.rs:3:49 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::config::{BLOB_FOLD, GET_CURRENT_DIR, VCS_FOLDER, VCS_IGNORE_FILE}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::read_directory_entries` [INFO] [stdout] --> src/status.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::util::read_directory_entries; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `clap::builder::Str` [INFO] [stdout] --> src/hashing.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use clap::builder::Str; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> src/hashing.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/hashing.rs:44:13 [INFO] [stdout] | [INFO] [stdout] 44 | (first.get_one_hash() + &second.get_one_hash()), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 44 - (first.get_one_hash() + &second.get_one_hash()), [INFO] [stdout] 44 + first.get_one_hash() + &second.get_one_hash(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `similar::TextDiff` [INFO] [stdout] --> src/diff.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use similar::TextDiff; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/diff_algo.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hash::Hash` [INFO] [stdout] --> src/diff_algo.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::hash::Hash; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/diff_algo.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::option::Option` [INFO] [stdout] --> src/diff_algo.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::option::Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/diff_algo.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Parser` and `Subcommand` [INFO] [stdout] --> src/main.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | use clap::{Parser, Subcommand}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `env` and `fs` [INFO] [stdout] --> src/main.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | use std::{env, fs}; [INFO] [stdout] | ^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env::current_dir` [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::env::current_dir; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PathBuf` and `Path` [INFO] [stdout] --> src/main.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GitignoreBuilder` and `Gitignore` [INFO] [stdout] --> src/main.rs:18:25 [INFO] [stdout] | [INFO] [stdout] 18 | use ignore::gitignore::{Gitignore, GitignoreBuilder}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ignore::Match` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use ignore::Match; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::commandline::parse_commandline` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::commandline::parse_commandline; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `create_content_block` [INFO] [stdout] --> src/main.rs:22:48 [INFO] [stdout] | [INFO] [stdout] 22 | use crate::diff_algo::{compare_hashed_content, create_content_block, to_interconnected_line}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/add.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let mut builder = GitignoreBuilder::new(path); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/add.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | if let nested_tree = dir_snapshot(&entry, ignore_build_vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] = note: `#[warn(irrefutable_let_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/status.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | } else if let file_blob_pointer = HashPointer::from_file(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/diff_algo.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | _ => {} [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/diff_algo.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 170 | EitherOrBoth::Both((p_index, p_hash), (l_index, l_hash)) => { [INFO] [stdout] | -------------------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 186 | EitherOrBoth::Left((p_index, p_hash)) => { [INFO] [stdout] | ------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 195 | EitherOrBoth::Right((l_index, l_hash)) => { [INFO] [stdout] | -------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 198 | _ => {} [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `diff::Version` is more private than the item `deserialize_version` [INFO] [stdout] --> src/diff.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn deserialize_version(path: &Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `deserialize_version` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `diff::Version` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/diff.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | struct Version { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `diff::Version` is more private than the item `serialize_version` [INFO] [stdout] --> src/diff.rs:58:1 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn serialize_version(data: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `serialize_version` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `diff::Version` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/diff.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | struct Version { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init` is never used [INFO] [stdout] --> src/init.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn init() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/add.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn add(inputs: &Vec) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_all` is never used [INFO] [stdout] --> src/add.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn add_all() { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dir_snapshot` is never used [INFO] [stdout] --> src/add.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn dir_snapshot( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_ignore_local_level` is never used [INFO] [stdout] --> src/add.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn parse_ignore_local_level( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_fold` is never used [INFO] [stdout] --> src/macros.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn create_fold(dir: &Path) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_file` is never used [INFO] [stdout] --> src/macros.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn create_file(parent_fold: &Path, blob_pointer: &HashPointer, content: Option) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_to_file` is never used [INFO] [stdout] --> src/macros.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn save_to_file(file_path: &Path, content: &str, append: bool) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `input_from_commandline` is never used [INFO] [stdout] --> src/macros.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn input_from_commandline(prompt: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_vcs_presence_in_subdir` is never used [INFO] [stdout] --> src/util.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn check_vcs_presence_in_subdir(vcs_name: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_vcs_presence` is never used [INFO] [stdout] --> src/util.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn check_vcs_presence() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_directory_entries` is never used [INFO] [stdout] --> src/util.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn read_directory_entries(path: &Path, curr_dir_from_root: Option<&Path>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `VCS_FOLDER` is never used [INFO] [stdout] --> src/config.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub static VCS_FOLDER: &str = ".chak"; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `VCS_IGNORE_FILE` is never used [INFO] [stdout] --> src/config.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | pub static VCS_IGNORE_FILE: &str = ".ignore"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `BLOB_FOLD` is never used [INFO] [stdout] --> src/config.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn BLOB_FOLD() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `VERSION_FOLD` is never used [INFO] [stdout] --> src/config.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn VERSION_FOLD() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_commandline` is never used [INFO] [stdout] --> src/commandline.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn parse_commandline() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_status` is never used [INFO] [stdout] --> src/status.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn get_status(path: &Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/hashing.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl HashPointer { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 25 | [INFO] [stdout] 26 | pub fn replace(&mut self, hash_pointer: &HashPointer) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn combine(first: &Self, second: &Self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn update_hash(&mut self, content: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_fold_name(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn get_file_name(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn get_path(&self) -> PathBuf { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn from_file(path: &Path) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn save_blob(file_path: &Path, save_dir: &Path) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn save_blob_from_content(save_dir: &Path, content: String) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn hash_from_pointers(pointers: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn from_path(path: &Path) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn from_hash_string_vec(strings: &[String]) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_versioning` is never used [INFO] [stdout] --> src/diff.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn start_versioning(file_path: &Path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deserialize_version` is never used [INFO] [stdout] --> src/diff.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn deserialize_version(path: &Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `serialize_version` is never used [INFO] [stdout] --> src/diff.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn serialize_version(data: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `NOCHANGE` and `REPLACE` are never constructed [INFO] [stdout] --> src/diff_algo.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum DiffLineType { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 18 | NOCHANGE, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 19 | REPLACE, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DiffLineType` 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 `new` is never used [INFO] [stdout] --> src/diff_algo.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Line { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 27 | pub fn new(line: String) -> Line { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `diff_line_type` and `copy_from_live` are never read [INFO] [stdout] --> src/diff_algo.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct DiffLine { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 43 | #[serde(skip)] [INFO] [stdout] 44 | pub diff_line_type: DiffLineType, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 45 | #[serde(skip)] [INFO] [stdout] 46 | pub copy_from_live: Line, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DiffLine` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from` is never used [INFO] [stdout] --> src/diff_algo.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl DiffLine { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 50 | pub fn from(prev_line: Line, live_line: Line) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from` and `add` are never used [INFO] [stdout] --> src/diff_algo.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 76 | impl Block { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 77 | pub fn from(diff_line: DiffLine) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn add(&mut self, diff_line: DiffLine) -> Result<(), String> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `from`, and `add` are never used [INFO] [stdout] --> src/diff_algo.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 103 | impl ContentBlock { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 104 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn from(block: Block) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn add(&mut self, diff_line: DiffLine) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_to_lines` is never used [INFO] [stdout] --> src/diff_algo.rs:208:8 [INFO] [stdout] | [INFO] [stdout] 208 | pub fn file_to_lines(file_path: &Path) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_content_block` is never used [INFO] [stdout] --> src/diff_algo.rs:217:8 [INFO] [stdout] | [INFO] [stdout] 217 | pub fn create_content_block(prev: &Path, live: &Path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `GET_CURRENT_DIR` should have a snake case name [INFO] [stdout] --> src/config.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn GET_CURRENT_DIR() -> &'static PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_current_dir` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `BLOB_FOLD` should have a snake case name [INFO] [stdout] --> src/config.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn BLOB_FOLD() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `blob_fold` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `VERSION_FOLD` should have a snake case name [INFO] [stdout] --> src/config.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn VERSION_FOLD() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `version_fold` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prev_DiffLine` should have a snake case name [INFO] [stdout] --> src/diff_algo.rs:229:32 [INFO] [stdout] | [INFO] [stdout] 229 | EitherOrBoth::Left(prev_DiffLine) => { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `prev_diff_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `live_DiffLine` should have a snake case name [INFO] [stdout] --> src/diff_algo.rs:233:33 [INFO] [stdout] | [INFO] [stdout] 233 | EitherOrBoth::Right(live_DiffLine) => { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `live_diff_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.91s [INFO] running `Command { std: "docker" "inspect" "e9cf89c0eb3a8af6cbec739fcb15d5461fdb8f98410bd67c2709160fe4acaab5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e9cf89c0eb3a8af6cbec739fcb15d5461fdb8f98410bd67c2709160fe4acaab5", kill_on_drop: false }` [INFO] [stdout] e9cf89c0eb3a8af6cbec739fcb15d5461fdb8f98410bd67c2709160fe4acaab5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] f61227fb2d6a03c2a1e3a69311d5f36ceaa55cb0e3989d97f0338d0819650546 [INFO] running `Command { std: "docker" "start" "-a" "f61227fb2d6a03c2a1e3a69311d5f36ceaa55cb0e3989d97f0338d0819650546", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `VCS_FOLDER` [INFO] [stderr] --> src/add.rs:1:50 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::config::{GET_CURRENT_DIR, BLOB_FOLD, VCS_FOLDER, VCS_IGNORE_FILE}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `create_file` and `save_to_file` [INFO] [stderr] --> src/add.rs:2:21 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::macros::{create_file, save_to_file}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs` [INFO] [stderr] --> src/add.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::fs; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `PathBuf` [INFO] [stderr] --> src/macros.rs:5:23 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path::{Path, PathBuf}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `VCS_IGNORE_FILE` [INFO] [stderr] --> src/util.rs:1:38 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::config::{GET_CURRENT_DIR, VCS_IGNORE_FILE}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashSet` [INFO] [stderr] --> src/util.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::collections::HashSet; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `GitignoreBuilder` and `Gitignore` [INFO] [stderr] --> src/util.rs:6:25 [INFO] [stderr] | [INFO] [stderr] 6 | use ignore::gitignore::{Gitignore, GitignoreBuilder}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ignore::Match` [INFO] [stderr] --> src/util.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ignore::Match; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Path` [INFO] [stderr] --> src/config.rs:3:17 [INFO] [stderr] | [INFO] [stderr] 3 | use std::path::{Path, PathBuf}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::env` [INFO] [stderr] --> src/commandline.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::env; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashSet` [INFO] [stderr] --> src/status.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashSet; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `VCS_FOLDER` and `VCS_IGNORE_FILE` [INFO] [stderr] --> src/status.rs:3:49 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::config::{BLOB_FOLD, GET_CURRENT_DIR, VCS_FOLDER, VCS_IGNORE_FILE}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::util::read_directory_entries` [INFO] [stderr] --> src/status.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::util::read_directory_entries; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `clap::builder::Str` [INFO] [stderr] --> src/hashing.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use clap::builder::Str; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Add` [INFO] [stderr] --> src/hashing.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::ops::Add; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/hashing.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | (first.get_one_hash() + &second.get_one_hash()), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 44 - (first.get_one_hash() + &second.get_one_hash()), [INFO] [stderr] 44 + first.get_one_hash() + &second.get_one_hash(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `similar::TextDiff` [INFO] [stderr] --> src/diff.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use similar::TextDiff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/diff_algo.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::hash::Hash` [INFO] [stderr] --> src/diff_algo.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::hash::Hash; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io` [INFO] [stderr] --> src/diff_algo.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::io; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::option::Option` [INFO] [stderr] --> src/diff_algo.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::option::Option; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/diff_algo.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Parser` and `Subcommand` [INFO] [stderr] --> src/main.rs:13:12 [INFO] [stderr] | [INFO] [stderr] 13 | use clap::{Parser, Subcommand}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `env` and `fs` [INFO] [stderr] --> src/main.rs:14:11 [INFO] [stderr] | [INFO] [stderr] 14 | use std::{env, fs}; [INFO] [stderr] | ^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::env::current_dir` [INFO] [stderr] --> src/main.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use std::env::current_dir; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `PathBuf` and `Path` [INFO] [stderr] --> src/main.rs:17:17 [INFO] [stderr] | [INFO] [stderr] 17 | use std::path::{Path, PathBuf}; [INFO] [stderr] | ^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `GitignoreBuilder` and `Gitignore` [INFO] [stderr] --> src/main.rs:18:25 [INFO] [stderr] | [INFO] [stderr] 18 | use ignore::gitignore::{Gitignore, GitignoreBuilder}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ignore::Match` [INFO] [stderr] --> src/main.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use ignore::Match; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::commandline::parse_commandline` [INFO] [stderr] --> src/main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use crate::commandline::parse_commandline; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `create_content_block` [INFO] [stderr] --> src/main.rs:22:48 [INFO] [stderr] | [INFO] [stderr] 22 | use crate::diff_algo::{compare_hashed_content, create_content_block, to_interconnected_line}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/add.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | let mut builder = GitignoreBuilder::new(path); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: irrefutable `if let` pattern [INFO] [stderr] --> src/add.rs:59:16 [INFO] [stderr] | [INFO] [stderr] 59 | if let nested_tree = dir_snapshot(&entry, ignore_build_vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this pattern will always match, so the `if let` is useless [INFO] [stderr] = help: consider replacing the `if let` with a `let` [INFO] [stderr] = note: `#[warn(irrefutable_let_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: irrefutable `if let` pattern [INFO] [stderr] --> src/status.rs:15:15 [INFO] [stderr] | [INFO] [stderr] 15 | } else if let file_blob_pointer = HashPointer::from_file(path) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this pattern will always match, so the `if let` is useless [INFO] [stderr] = help: consider replacing the `if let` with a `let` [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/diff_algo.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | _ => {} [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/diff_algo.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 170 | EitherOrBoth::Both((p_index, p_hash), (l_index, l_hash)) => { [INFO] [stderr] | -------------------------------------------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 186 | EitherOrBoth::Left((p_index, p_hash)) => { [INFO] [stderr] | ------------------------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 195 | EitherOrBoth::Right((l_index, l_hash)) => { [INFO] [stderr] | -------------------------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 198 | _ => {} [INFO] [stderr] | ^ collectively making this unreachable [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: type `diff::Version` is more private than the item `deserialize_version` [INFO] [stderr] --> src/diff.rs:51:1 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn deserialize_version(path: &Path) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `deserialize_version` is reachable at visibility `pub(crate)` [INFO] [stderr] | [INFO] [stderr] note: but type `diff::Version` is only usable at visibility `pub(self)` [INFO] [stderr] --> src/diff.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | struct Version { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] = note: `#[warn(private_interfaces)]` on by default [INFO] [stderr] [INFO] [stderr] warning: type `diff::Version` is more private than the item `serialize_version` [INFO] [stderr] --> src/diff.rs:58:1 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn serialize_version(data: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `serialize_version` is reachable at visibility `pub(crate)` [INFO] [stderr] | [INFO] [stderr] note: but type `diff::Version` is only usable at visibility `pub(self)` [INFO] [stderr] --> src/diff.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | struct Version { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `init` is never used [INFO] [stderr] --> src/init.rs:7:8 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn init() { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `add` is never used [INFO] [stderr] --> src/add.rs:11:8 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn add(inputs: &Vec) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `add_all` is never used [INFO] [stderr] --> src/add.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn add_all() { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `dir_snapshot` is never used [INFO] [stderr] --> src/add.rs:28:8 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn dir_snapshot( [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_ignore_local_level` is never used [INFO] [stderr] --> src/add.rs:79:8 [INFO] [stderr] | [INFO] [stderr] 79 | pub fn parse_ignore_local_level( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `create_fold` is never used [INFO] [stderr] --> src/macros.rs:8:8 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn create_fold(dir: &Path) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `create_file` is never used [INFO] [stderr] --> src/macros.rs:13:8 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn create_file(parent_fold: &Path, blob_pointer: &HashPointer, content: Option) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `save_to_file` is never used [INFO] [stderr] --> src/macros.rs:35:8 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn save_to_file(file_path: &Path, content: &str, append: bool) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `input_from_commandline` is never used [INFO] [stderr] --> src/macros.rs:65:8 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn input_from_commandline(prompt: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `check_vcs_presence_in_subdir` is never used [INFO] [stderr] --> src/util.rs:9:8 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn check_vcs_presence_in_subdir(vcs_name: &str) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `check_vcs_presence` is never used [INFO] [stderr] --> src/util.rs:28:8 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn check_vcs_presence() -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `read_directory_entries` is never used [INFO] [stderr] --> src/util.rs:44:8 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn read_directory_entries(path: &Path, curr_dir_from_root: Option<&Path>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static `VCS_FOLDER` is never used [INFO] [stderr] --> src/config.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | pub static VCS_FOLDER: &str = ".chak"; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static `VCS_IGNORE_FILE` is never used [INFO] [stderr] --> src/config.rs:8:13 [INFO] [stderr] | [INFO] [stderr] 8 | pub static VCS_IGNORE_FILE: &str = ".ignore"; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `BLOB_FOLD` is never used [INFO] [stderr] --> src/config.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn BLOB_FOLD() -> PathBuf { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `VERSION_FOLD` is never used [INFO] [stderr] --> src/config.rs:26:8 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn VERSION_FOLD() -> PathBuf { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_commandline` is never used [INFO] [stderr] --> src/commandline.rs:63:8 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn parse_commandline() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_status` is never used [INFO] [stderr] --> src/status.rs:7:8 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn get_status(path: &Path) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/hashing.rs:26:12 [INFO] [stderr] | [INFO] [stderr] 24 | impl HashPointer { [INFO] [stderr] | ---------------- associated items in this implementation [INFO] [stderr] 25 | [INFO] [stderr] 26 | pub fn replace(&mut self, hash_pointer: &HashPointer) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 42 | pub fn combine(first: &Self, second: &Self) -> Self { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 48 | pub fn update_hash(&mut self, content: String) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 53 | pub fn get_fold_name(&self) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 57 | pub fn get_file_name(&self) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 65 | pub fn get_path(&self) -> PathBuf { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 69 | pub fn from_file(path: &Path) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 84 | pub fn save_blob(file_path: &Path, save_dir: &Path) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | pub fn save_blob_from_content(save_dir: &Path, content: String) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 106 | pub fn hash_from_pointers(pointers: Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 119 | pub fn from_path(path: &Path) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 135 | pub fn from_hash_string_vec(strings: &[String]) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `start_versioning` is never used [INFO] [stderr] --> src/diff.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn start_versioning(file_path: &Path) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `deserialize_version` is never used [INFO] [stderr] --> src/diff.rs:51:8 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn deserialize_version(path: &Path) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `serialize_version` is never used [INFO] [stderr] --> src/diff.rs:58:8 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn serialize_version(data: &Vec) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `NOCHANGE` and `REPLACE` are never constructed [INFO] [stderr] --> src/diff_algo.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 17 | pub enum DiffLineType { [INFO] [stderr] | ------------ variants in this enum [INFO] [stderr] 18 | NOCHANGE, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 19 | REPLACE, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `DiffLineType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/diff_algo.rs:27:12 [INFO] [stderr] | [INFO] [stderr] 26 | impl Line { [INFO] [stderr] | --------- associated function in this implementation [INFO] [stderr] 27 | pub fn new(line: String) -> Line { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `diff_line_type` and `copy_from_live` are never read [INFO] [stderr] --> src/diff_algo.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 42 | pub struct DiffLine { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] 43 | #[serde(skip)] [INFO] [stderr] 44 | pub diff_line_type: DiffLineType, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 45 | #[serde(skip)] [INFO] [stderr] 46 | pub copy_from_live: Line, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `DiffLine` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `from` is never used [INFO] [stderr] --> src/diff_algo.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 49 | impl DiffLine { [INFO] [stderr] | ------------- associated function in this implementation [INFO] [stderr] 50 | pub fn from(prev_line: Line, live_line: Line) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `from` and `add` are never used [INFO] [stderr] --> src/diff_algo.rs:77:12 [INFO] [stderr] | [INFO] [stderr] 76 | impl Block { [INFO] [stderr] | ---------- associated items in this implementation [INFO] [stderr] 77 | pub fn from(diff_line: DiffLine) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 85 | pub fn add(&mut self, diff_line: DiffLine) -> Result<(), String> { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `from`, and `add` are never used [INFO] [stderr] --> src/diff_algo.rs:104:12 [INFO] [stderr] | [INFO] [stderr] 103 | impl ContentBlock { [INFO] [stderr] | ----------------- associated items in this implementation [INFO] [stderr] 104 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 110 | pub fn from(block: Block) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 117 | pub fn add(&mut self, diff_line: DiffLine) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `file_to_lines` is never used [INFO] [stderr] --> src/diff_algo.rs:208:8 [INFO] [stderr] | [INFO] [stderr] 208 | pub fn file_to_lines(file_path: &Path) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `create_content_block` is never used [INFO] [stderr] --> src/diff_algo.rs:217:8 [INFO] [stderr] | [INFO] [stderr] 217 | pub fn create_content_block(prev: &Path, live: &Path) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `GET_CURRENT_DIR` should have a snake case name [INFO] [stderr] --> src/config.rs:14:8 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn GET_CURRENT_DIR() -> &'static PathBuf { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_current_dir` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function `BLOB_FOLD` should have a snake case name [INFO] [stderr] --> src/config.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn BLOB_FOLD() -> PathBuf { [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `blob_fold` [INFO] [stderr] [INFO] [stderr] warning: function `VERSION_FOLD` should have a snake case name [INFO] [stderr] --> src/config.rs:26:8 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn VERSION_FOLD() -> PathBuf { [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `version_fold` [INFO] [stderr] [INFO] [stderr] warning: variable `prev_DiffLine` should have a snake case name [INFO] [stderr] --> src/diff_algo.rs:229:32 [INFO] [stderr] | [INFO] [stderr] 229 | EitherOrBoth::Left(prev_DiffLine) => { [INFO] [stderr] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `prev_diff_line` [INFO] [stderr] [INFO] [stderr] warning: variable `live_DiffLine` should have a snake case name [INFO] [stderr] --> src/diff_algo.rs:233:33 [INFO] [stderr] | [INFO] [stderr] 233 | EitherOrBoth::Right(live_DiffLine) => { [INFO] [stderr] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `live_diff_line` [INFO] [stderr] [INFO] [stderr] warning: `chak-vcs` (bin "chak-vcs" test) generated 72 warnings (run `cargo fix --bin "chak-vcs" --tests` to apply 32 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/chak_vcs-0af8559d742dc591) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "f61227fb2d6a03c2a1e3a69311d5f36ceaa55cb0e3989d97f0338d0819650546", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f61227fb2d6a03c2a1e3a69311d5f36ceaa55cb0e3989d97f0338d0819650546", kill_on_drop: false }` [INFO] [stdout] f61227fb2d6a03c2a1e3a69311d5f36ceaa55cb0e3989d97f0338d0819650546