[INFO] cloning repository https://github.com/playauraai/fluid-grep [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/playauraai/fluid-grep" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fplayauraai%2Ffluid-grep", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fplayauraai%2Ffluid-grep'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 82cbdf56011fd1404cecbcaf2e947844bf1a287e [INFO] testing playauraai/fluid-grep against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fplayauraai%2Ffluid-grep" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-3-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/playauraai/fluid-grep [INFO] removed 0 missing tests [INFO] finished tweaking git repo https://github.com/playauraai/fluid-grep [INFO] tweaked toml for git repo https://github.com/playauraai/fluid-grep written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/playauraai/fluid-grep on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/playauraai/fluid-grep 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" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded jobserver v0.1.34 [INFO] [stderr] Downloaded tikv-jemallocator v0.6.1 [INFO] [stderr] Downloaded lexopt v0.3.1 [INFO] [stderr] Downloaded glob v0.3.3 [INFO] [stderr] Downloaded derive_arbitrary v1.4.2 [INFO] [stderr] Downloaded encoding_rs_io v0.1.7 [INFO] [stderr] Downloaded pcre2 v0.2.11 [INFO] [stderr] Downloaded textwrap v0.16.2 [INFO] [stderr] Downloaded memmap2 v0.9.9 [INFO] [stderr] Downloaded cc v1.2.41 [INFO] [stderr] Downloaded arbitrary v1.4.2 [INFO] [stderr] Downloaded unicode-ident v1.0.20 [INFO] [stderr] Downloaded crossbeam-deque v0.8.6 [INFO] [stderr] Downloaded syn v2.0.107 [INFO] [stderr] Downloaded bstr v1.12.0 [INFO] [stderr] Downloaded pcre2-sys v0.2.10 [INFO] [stderr] Downloaded tikv-jemalloc-sys v0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7 [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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a454596e0b3d9000f31afd2df546ec830a748ae5cf21409e3d1ae519ea3f99f2 [INFO] running `Command { std: "docker" "start" "-a" "a454596e0b3d9000f31afd2df546ec830a748ae5cf21409e3d1ae519ea3f99f2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a454596e0b3d9000f31afd2df546ec830a748ae5cf21409e3d1ae519ea3f99f2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a454596e0b3d9000f31afd2df546ec830a748ae5cf21409e3d1ae519ea3f99f2", kill_on_drop: false }` [INFO] [stdout] a454596e0b3d9000f31afd2df546ec830a748ae5cf21409e3d1ae519ea3f99f2 [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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a0c6e5546d85bc906fa186816e631b2e8d63a6e766fc98f2766634e10495cac8 [INFO] running `Command { std: "docker" "start" "-a" "a0c6e5546d85bc906fa186816e631b2e8d63a6e766fc98f2766634e10495cac8", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling anyhow v1.0.100 [INFO] [stderr] Compiling ripgrep v15.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling lexopt v0.3.1 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling textwrap v0.16.2 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling grep-matcher v0.1.8 (/opt/rustwide/workdir/crates/matcher) [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling encoding_rs_io v0.1.7 [INFO] [stderr] Compiling memmap2 v0.9.9 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling bstr v1.12.0 [INFO] [stderr] Compiling globset v0.4.18 (/opt/rustwide/workdir/crates/globset) [INFO] [stderr] Compiling grep-searcher v0.1.16 (/opt/rustwide/workdir/crates/searcher) [INFO] [stderr] Compiling grep-regex v0.1.14 (/opt/rustwide/workdir/crates/regex) [INFO] [stderr] Compiling grep-printer v0.3.1 (/opt/rustwide/workdir/crates/printer) [INFO] [stderr] Compiling grep-cli v0.1.12 (/opt/rustwide/workdir/crates/cli) [INFO] [stderr] Compiling ignore v0.4.24 (/opt/rustwide/workdir/crates/ignore) [INFO] [stderr] Compiling grep v0.4.1 (/opt/rustwide/workdir/crates/grep) [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> crates/core/ripgrep_config.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DirectoryCache` is never constructed [INFO] [stdout] --> crates/core/cache.rs:23:19 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) struct DirectoryCache { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `canonicalize_key`, `get`, `insert`, and `cleanup` are never used [INFO] [stdout] --> crates/core/cache.rs:30:19 [INFO] [stdout] | [INFO] [stdout] 28 | impl DirectoryCache { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 29 | /// Create a new directory cache with 5-second TTL. [INFO] [stdout] 30 | pub(crate) fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | fn canonicalize_key(dir: &Path) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub(crate) fn get(&self, dir: &Path) -> Option>> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub(crate) fn insert(&mut self, dir: PathBuf, entries: Vec) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub(crate) fn cleanup(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CachedResult` is never constructed [INFO] [stdout] --> crates/core/cache.rs:75:19 [INFO] [stdout] | [INFO] [stdout] 75 | pub(crate) struct CachedResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchResultCache` is never constructed [INFO] [stdout] --> crates/core/cache.rs:89:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub(crate) struct SearchResultCache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_valid`, `get`, `update`, and `clear` are never used [INFO] [stdout] --> crates/core/cache.rs:98:19 [INFO] [stdout] | [INFO] [stdout] 96 | impl SearchResultCache { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 97 | /// Create a new search result cache. [INFO] [stdout] 98 | pub(crate) fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub(crate) fn is_valid(&self, pattern: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub(crate) fn get(&self, pattern: &str) -> Option> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub(crate) fn update(&mut self, pattern: String, results: Vec) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub(crate) fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `unlimited` are never used [INFO] [stdout] --> crates/core/cache.rs:164:19 [INFO] [stdout] | [INFO] [stdout] 162 | impl BoundedSearch { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 163 | /// Create bounded search with custom limits. [INFO] [stdout] 164 | pub(crate) fn new(max_results: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | pub(crate) fn unlimited() -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `wsl2_optimized` is never read [INFO] [stdout] --> crates/core/flags/hiargs.rs:58:16 [INFO] [stdout] | [INFO] [stdout] 36 | pub(crate) struct HiArgs { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 58 | pub(crate) wsl2_optimized: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HiArgs` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `exact_match`, `case_sensitive`, `word_boundary`, `fuzzy_match`, `substring_match`, and `length_similarity` are never read [INFO] [stdout] --> crates/core/heuristic.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub(crate) struct ScoringWeights { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 16 | /// Weight for exact matches. Default: 1.0 [INFO] [stdout] 17 | pub exact_match: f32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 18 | /// Weight for case-sensitive matches. Default: 0.5 [INFO] [stdout] 19 | pub case_sensitive: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 20 | /// Weight for word boundary matches. Default: 0.3 [INFO] [stdout] 21 | pub word_boundary: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 22 | /// Weight for fuzzy/consecutive matches. Default: 0.2 [INFO] [stdout] 23 | pub fuzzy_match: f32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 24 | /// Weight for substring matches. Default: 0.15 [INFO] [stdout] 25 | pub substring_match: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | /// Weight for length similarity. Default: 0.1 [INFO] [stdout] 27 | pub length_similarity: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ScoringWeights` 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 items `new` and `normalize` are never used [INFO] [stdout] --> crates/core/heuristic.rs:45:19 [INFO] [stdout] | [INFO] [stdout] 43 | impl ScoringWeights { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 44 | /// Creates custom weights for domain-specific scoring. [INFO] [stdout] 45 | pub(crate) fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub(crate) fn normalize(&self) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `fuzzy_threshold`, `max_edit_distance`, `unicode_aware`, `case_sensitive_substring`, `consecutive_match_bonus`, and `weights` are never read [INFO] [stdout] --> crates/core/heuristic.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 89 | pub(crate) struct HeuristicConfig { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 90 | /// Minimum fuzzy match threshold (0.0-1.0). Default: 0.6 (60%) [INFO] [stdout] 91 | pub fuzzy_threshold: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 92 | /// Maximum edit distance for close matches. If None, uses pattern.len() / 4 [INFO] [stdout] 93 | pub max_edit_distance: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 94 | /// Whether to use Unicode-aware word boundaries. Default: true [INFO] [stdout] 95 | pub unicode_aware: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 96 | /// Whether to require case-sensitive substring matching. Default: false [INFO] [stdout] 97 | pub case_sensitive_substring: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 98 | /// Bonus multiplier for consecutive character matches. Default: 1.0 [INFO] [stdout] 99 | pub consecutive_match_bonus: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 100 | /// Custom scoring weights. Default: standard weights [INFO] [stdout] 101 | pub weights: ScoringWeights, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HeuristicConfig` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_weights` are never used [INFO] [stdout] --> crates/core/heuristic.rs:106:19 [INFO] [stdout] | [INFO] [stdout] 104 | impl HeuristicConfig { [INFO] [stdout] | -------------------- associated functions in this implementation [INFO] [stdout] 105 | /// Creates a new configuration with custom settings. [INFO] [stdout] 106 | pub(crate) fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub(crate) fn with_weights( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScoredMatch` is never constructed [INFO] [stdout] --> crates/core/heuristic.rs:158:19 [INFO] [stdout] | [INFO] [stdout] 158 | pub(crate) struct ScoredMatch { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScoreBreakdown` is never constructed [INFO] [stdout] --> crates/core/heuristic.rs:181:19 [INFO] [stdout] | [INFO] [stdout] 181 | pub(crate) struct ScoreBreakdown { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_relevance_score` is never used [INFO] [stdout] --> crates/core/heuristic.rs:201:15 [INFO] [stdout] | [INFO] [stdout] 201 | pub(crate) fn calculate_relevance_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_relevance_score_with_config` is never used [INFO] [stdout] --> crates/core/heuristic.rs:217:15 [INFO] [stdout] | [INFO] [stdout] 217 | pub(crate) fn calculate_relevance_score_with_config( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_relevance_score_breakdown` is never used [INFO] [stdout] --> crates/core/heuristic.rs:271:15 [INFO] [stdout] | [INFO] [stdout] 271 | pub(crate) fn calculate_relevance_score_breakdown( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_word_boundary_match` is never used [INFO] [stdout] --> crates/core/heuristic.rs:329:4 [INFO] [stdout] | [INFO] [stdout] 329 | fn is_word_boundary_match(pattern: &str, text: &str, unicode_aware: bool) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_substring_match` is never used [INFO] [stdout] --> crates/core/heuristic.rs:362:4 [INFO] [stdout] | [INFO] [stdout] 362 | fn is_substring_match(pattern: &str, text: &str, case_sensitive: bool) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_consecutive_matches` is never used [INFO] [stdout] --> crates/core/heuristic.rs:373:4 [INFO] [stdout] | [INFO] [stdout] 373 | fn count_consecutive_matches(pattern: &str, text: &str) -> (usize, bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_length_similarity` is never used [INFO] [stdout] --> crates/core/heuristic.rs:405:4 [INFO] [stdout] | [INFO] [stdout] 405 | fn calculate_length_similarity(pattern: &str, text: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fuzzy_match_with_threshold` is never used [INFO] [stdout] --> crates/core/heuristic.rs:420:4 [INFO] [stdout] | [INFO] [stdout] 420 | fn fuzzy_match_with_threshold(pattern: &str, text: &str, threshold: f32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fuzzy_match` is never used [INFO] [stdout] --> crates/core/heuristic.rs:445:15 [INFO] [stdout] | [INFO] [stdout] 445 | pub(crate) fn fuzzy_match(pattern: &str, text: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `levenshtein_distance` is never used [INFO] [stdout] --> crates/core/heuristic.rs:453:15 [INFO] [stdout] | [INFO] [stdout] 453 | pub(crate) fn levenshtein_distance(s1: &str, s2: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_close_match` is never used [INFO] [stdout] --> crates/core/heuristic.rs:500:15 [INFO] [stdout] | [INFO] [stdout] 500 | pub(crate) fn is_close_match(pattern: &str, text: &str, max_distance: Option) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rank_candidates` is never used [INFO] [stdout] --> crates/core/heuristic.rs:507:15 [INFO] [stdout] | [INFO] [stdout] 507 | pub(crate) fn rank_candidates( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_match_positions` is never used [INFO] [stdout] --> crates/core/heuristic.rs:537:15 [INFO] [stdout] | [INFO] [stdout] 537 | pub(crate) fn find_match_positions(pattern: &str, text: &str) -> Vec<(usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `highlight_matches` is never used [INFO] [stdout] --> crates/core/heuristic.rs:556:15 [INFO] [stdout] | [INFO] [stdout] 556 | pub(crate) fn highlight_matches( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IncrementalResult` is never constructed [INFO] [stdout] --> crates/core/incremental.rs:32:19 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) struct IncrementalResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IncrementalSearch` is never constructed [INFO] [stdout] --> crates/core/incremental.rs:48:19 [INFO] [stdout] | [INFO] [stdout] 48 | pub(crate) struct IncrementalSearch { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> crates/core/incremental.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 59 | impl IncrementalSearch { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 60 | /// Create a new incremental search engine. [INFO] [stdout] 61 | pub(crate) fn new(max_results: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub(crate) fn can_reuse(&self, new_pattern: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub(crate) fn filter_results( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub(crate) fn update( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | pub(crate) fn get_cached(&self) -> Option<&[IncrementalResult]> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub(crate) fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub(crate) fn stats(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `incremental_score` is never used [INFO] [stdout] --> crates/core/incremental.rs:189:15 [INFO] [stdout] | [INFO] [stdout] 189 | pub(crate) fn incremental_score(pattern: &str, text: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PatternCache` is never constructed [INFO] [stdout] --> crates/core/optimizer.rs:19:19 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) struct PatternCache { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_cached`, `add`, `clear`, and `len` are never used [INFO] [stdout] --> crates/core/optimizer.rs:26:19 [INFO] [stdout] | [INFO] [stdout] 24 | impl PatternCache { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 25 | /// Create a new pattern cache with size limit. [INFO] [stdout] 26 | pub(crate) fn new(max_size: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub(crate) fn is_cached(&self, pattern: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub(crate) fn add(&mut self, pattern: String) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub(crate) fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub(crate) fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileContentCache` is never constructed [INFO] [stdout] --> crates/core/optimizer.rs:76:19 [INFO] [stdout] | [INFO] [stdout] 76 | pub(crate) struct FileContentCache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, `insert`, `clear`, and `stats` are never used [INFO] [stdout] --> crates/core/optimizer.rs:85:19 [INFO] [stdout] | [INFO] [stdout] 83 | impl FileContentCache { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 84 | /// Create a new file content cache with size limit (in bytes). [INFO] [stdout] 85 | pub(crate) fn new(max_size_bytes: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub(crate) fn get(&self, path: &Path) -> Option> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub(crate) fn insert(&mut self, path: std::path::PathBuf, content: Vec) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub(crate) fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub(crate) fn stats(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PathFilter` is never constructed [INFO] [stdout] --> crates/core/optimizer.rs:151:19 [INFO] [stdout] | [INFO] [stdout] 151 | pub(crate) struct PathFilter { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `default_filter`, `should_skip`, `bytes_contains`, and `is_binary` are never used [INFO] [stdout] --> crates/core/optimizer.rs:162:19 [INFO] [stdout] | [INFO] [stdout] 160 | impl PathFilter { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 161 | /// Create filter with sensible defaults. [INFO] [stdout] 162 | pub(crate) fn default_filter() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub(crate) fn should_skip(&self, path: &Path) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | fn bytes_contains(haystack: &[u8], needle: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub(crate) fn is_binary(&self, content: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_str` is never used [INFO] [stdout] --> crates/core/ripgrep_config.rs:38:19 [INFO] [stdout] | [INFO] [stdout] 27 | impl SearchMode { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 38 | pub(crate) fn as_str(&self) -> &'static str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `save` and `to_toml` are never used [INFO] [stdout] --> crates/core/ripgrep_config.rs:172:19 [INFO] [stdout] | [INFO] [stdout] 123 | impl RipgrepConfig { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 172 | pub(crate) fn save(&self) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | fn to_toml(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SimdMatcher` is never constructed [INFO] [stdout] --> crates/core/simd.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct SimdMatcher; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new`, `find_all`, `find_single_byte`, and `find_scalar` are never used [INFO] [stdout] --> crates/core/simd.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl SimdMatcher { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 17 | /// Create a new SIMD matcher [INFO] [stdout] 18 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn find_all(pattern: &[u8], text: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | fn find_single_byte(byte: u8, text: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | fn find_scalar(pattern: &[u8], text: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SimdCaseInsensitiveMatcher` is never constructed [INFO] [stdout] --> crates/core/simd.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 74 | pub struct SimdCaseInsensitiveMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `find_all` are never used [INFO] [stdout] --> crates/core/simd.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 76 | impl SimdCaseInsensitiveMatcher { [INFO] [stdout] | ------------------------------- associated functions in this implementation [INFO] [stdout] 77 | /// Create a new case-insensitive SIMD matcher [INFO] [stdout] 78 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn find_all(pattern: &[u8], text: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.05s [INFO] running `Command { std: "docker" "inspect" "a0c6e5546d85bc906fa186816e631b2e8d63a6e766fc98f2766634e10495cac8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a0c6e5546d85bc906fa186816e631b2e8d63a6e766fc98f2766634e10495cac8", kill_on_drop: false }` [INFO] [stdout] a0c6e5546d85bc906fa186816e631b2e8d63a6e766fc98f2766634e10495cac8 [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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a5967138f987c9ca3dab20a3661f8868eb8af8d45242dbdf5767e3a74826df7c [INFO] running `Command { std: "docker" "start" "-a" "a5967138f987c9ca3dab20a3661f8868eb8af8d45242dbdf5767e3a74826df7c", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling unicode-ident v1.0.20 [INFO] [stderr] Compiling quote v1.0.41 [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> crates/core/ripgrep_config.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DirectoryCache` is never constructed [INFO] [stdout] --> crates/core/cache.rs:23:19 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) struct DirectoryCache { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `canonicalize_key`, `get`, `insert`, and `cleanup` are never used [INFO] [stdout] --> crates/core/cache.rs:30:19 [INFO] [stdout] | [INFO] [stdout] 28 | impl DirectoryCache { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 29 | /// Create a new directory cache with 5-second TTL. [INFO] [stdout] 30 | pub(crate) fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | fn canonicalize_key(dir: &Path) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub(crate) fn get(&self, dir: &Path) -> Option>> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub(crate) fn insert(&mut self, dir: PathBuf, entries: Vec) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub(crate) fn cleanup(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CachedResult` is never constructed [INFO] [stdout] --> crates/core/cache.rs:75:19 [INFO] [stdout] | [INFO] [stdout] 75 | pub(crate) struct CachedResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchResultCache` is never constructed [INFO] [stdout] --> crates/core/cache.rs:89:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub(crate) struct SearchResultCache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_valid`, `get`, `update`, and `clear` are never used [INFO] [stdout] --> crates/core/cache.rs:98:19 [INFO] [stdout] | [INFO] [stdout] 96 | impl SearchResultCache { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 97 | /// Create a new search result cache. [INFO] [stdout] 98 | pub(crate) fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub(crate) fn is_valid(&self, pattern: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | pub(crate) fn get(&self, pattern: &str) -> Option> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub(crate) fn update(&mut self, pattern: String, results: Vec) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub(crate) fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `unlimited` are never used [INFO] [stdout] --> crates/core/cache.rs:164:19 [INFO] [stdout] | [INFO] [stdout] 162 | impl BoundedSearch { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 163 | /// Create bounded search with custom limits. [INFO] [stdout] 164 | pub(crate) fn new(max_results: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | pub(crate) fn unlimited() -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `wsl2_optimized` is never read [INFO] [stdout] --> crates/core/flags/hiargs.rs:58:16 [INFO] [stdout] | [INFO] [stdout] 36 | pub(crate) struct HiArgs { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 58 | pub(crate) wsl2_optimized: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HiArgs` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `exact_match`, `case_sensitive`, `word_boundary`, `fuzzy_match`, `substring_match`, and `length_similarity` are never read [INFO] [stdout] --> crates/core/heuristic.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub(crate) struct ScoringWeights { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 16 | /// Weight for exact matches. Default: 1.0 [INFO] [stdout] 17 | pub exact_match: f32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 18 | /// Weight for case-sensitive matches. Default: 0.5 [INFO] [stdout] 19 | pub case_sensitive: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 20 | /// Weight for word boundary matches. Default: 0.3 [INFO] [stdout] 21 | pub word_boundary: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 22 | /// Weight for fuzzy/consecutive matches. Default: 0.2 [INFO] [stdout] 23 | pub fuzzy_match: f32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 24 | /// Weight for substring matches. Default: 0.15 [INFO] [stdout] 25 | pub substring_match: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | /// Weight for length similarity. Default: 0.1 [INFO] [stdout] 27 | pub length_similarity: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ScoringWeights` 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 items `new` and `normalize` are never used [INFO] [stdout] --> crates/core/heuristic.rs:45:19 [INFO] [stdout] | [INFO] [stdout] 43 | impl ScoringWeights { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 44 | /// Creates custom weights for domain-specific scoring. [INFO] [stdout] 45 | pub(crate) fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub(crate) fn normalize(&self) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `fuzzy_threshold`, `max_edit_distance`, `unicode_aware`, `case_sensitive_substring`, `consecutive_match_bonus`, and `weights` are never read [INFO] [stdout] --> crates/core/heuristic.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 89 | pub(crate) struct HeuristicConfig { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 90 | /// Minimum fuzzy match threshold (0.0-1.0). Default: 0.6 (60%) [INFO] [stdout] 91 | pub fuzzy_threshold: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 92 | /// Maximum edit distance for close matches. If None, uses pattern.len() / 4 [INFO] [stdout] 93 | pub max_edit_distance: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 94 | /// Whether to use Unicode-aware word boundaries. Default: true [INFO] [stdout] 95 | pub unicode_aware: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 96 | /// Whether to require case-sensitive substring matching. Default: false [INFO] [stdout] 97 | pub case_sensitive_substring: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 98 | /// Bonus multiplier for consecutive character matches. Default: 1.0 [INFO] [stdout] 99 | pub consecutive_match_bonus: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 100 | /// Custom scoring weights. Default: standard weights [INFO] [stdout] 101 | pub weights: ScoringWeights, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HeuristicConfig` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_weights` are never used [INFO] [stdout] --> crates/core/heuristic.rs:106:19 [INFO] [stdout] | [INFO] [stdout] 104 | impl HeuristicConfig { [INFO] [stdout] | -------------------- associated functions in this implementation [INFO] [stdout] 105 | /// Creates a new configuration with custom settings. [INFO] [stdout] 106 | pub(crate) fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub(crate) fn with_weights( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScoredMatch` is never constructed [INFO] [stdout] --> crates/core/heuristic.rs:158:19 [INFO] [stdout] | [INFO] [stdout] 158 | pub(crate) struct ScoredMatch { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScoreBreakdown` is never constructed [INFO] [stdout] --> crates/core/heuristic.rs:181:19 [INFO] [stdout] | [INFO] [stdout] 181 | pub(crate) struct ScoreBreakdown { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_relevance_score` is never used [INFO] [stdout] --> crates/core/heuristic.rs:201:15 [INFO] [stdout] | [INFO] [stdout] 201 | pub(crate) fn calculate_relevance_score( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_relevance_score_with_config` is never used [INFO] [stdout] --> crates/core/heuristic.rs:217:15 [INFO] [stdout] | [INFO] [stdout] 217 | pub(crate) fn calculate_relevance_score_with_config( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_relevance_score_breakdown` is never used [INFO] [stdout] --> crates/core/heuristic.rs:271:15 [INFO] [stdout] | [INFO] [stdout] 271 | pub(crate) fn calculate_relevance_score_breakdown( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_word_boundary_match` is never used [INFO] [stdout] --> crates/core/heuristic.rs:329:4 [INFO] [stdout] | [INFO] [stdout] 329 | fn is_word_boundary_match(pattern: &str, text: &str, unicode_aware: bool) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_substring_match` is never used [INFO] [stdout] --> crates/core/heuristic.rs:362:4 [INFO] [stdout] | [INFO] [stdout] 362 | fn is_substring_match(pattern: &str, text: &str, case_sensitive: bool) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_consecutive_matches` is never used [INFO] [stdout] --> crates/core/heuristic.rs:373:4 [INFO] [stdout] | [INFO] [stdout] 373 | fn count_consecutive_matches(pattern: &str, text: &str) -> (usize, bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_length_similarity` is never used [INFO] [stdout] --> crates/core/heuristic.rs:405:4 [INFO] [stdout] | [INFO] [stdout] 405 | fn calculate_length_similarity(pattern: &str, text: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fuzzy_match_with_threshold` is never used [INFO] [stdout] --> crates/core/heuristic.rs:420:4 [INFO] [stdout] | [INFO] [stdout] 420 | fn fuzzy_match_with_threshold(pattern: &str, text: &str, threshold: f32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fuzzy_match` is never used [INFO] [stdout] --> crates/core/heuristic.rs:445:15 [INFO] [stdout] | [INFO] [stdout] 445 | pub(crate) fn fuzzy_match(pattern: &str, text: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `levenshtein_distance` is never used [INFO] [stdout] --> crates/core/heuristic.rs:453:15 [INFO] [stdout] | [INFO] [stdout] 453 | pub(crate) fn levenshtein_distance(s1: &str, s2: &str) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_close_match` is never used [INFO] [stdout] --> crates/core/heuristic.rs:500:15 [INFO] [stdout] | [INFO] [stdout] 500 | pub(crate) fn is_close_match(pattern: &str, text: &str, max_distance: Option) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rank_candidates` is never used [INFO] [stdout] --> crates/core/heuristic.rs:507:15 [INFO] [stdout] | [INFO] [stdout] 507 | pub(crate) fn rank_candidates( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_match_positions` is never used [INFO] [stdout] --> crates/core/heuristic.rs:537:15 [INFO] [stdout] | [INFO] [stdout] 537 | pub(crate) fn find_match_positions(pattern: &str, text: &str) -> Vec<(usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `highlight_matches` is never used [INFO] [stdout] --> crates/core/heuristic.rs:556:15 [INFO] [stdout] | [INFO] [stdout] 556 | pub(crate) fn highlight_matches( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IncrementalResult` is never constructed [INFO] [stdout] --> crates/core/incremental.rs:32:19 [INFO] [stdout] | [INFO] [stdout] 32 | pub(crate) struct IncrementalResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IncrementalSearch` is never constructed [INFO] [stdout] --> crates/core/incremental.rs:48:19 [INFO] [stdout] | [INFO] [stdout] 48 | pub(crate) struct IncrementalSearch { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> crates/core/incremental.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 59 | impl IncrementalSearch { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 60 | /// Create a new incremental search engine. [INFO] [stdout] 61 | pub(crate) fn new(max_results: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub(crate) fn can_reuse(&self, new_pattern: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub(crate) fn filter_results( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub(crate) fn update( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | pub(crate) fn get_cached(&self) -> Option<&[IncrementalResult]> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub(crate) fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub(crate) fn stats(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `incremental_score` is never used [INFO] [stdout] --> crates/core/incremental.rs:189:15 [INFO] [stdout] | [INFO] [stdout] 189 | pub(crate) fn incremental_score(pattern: &str, text: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PatternCache` is never constructed [INFO] [stdout] --> crates/core/optimizer.rs:19:19 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) struct PatternCache { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_cached`, `add`, `clear`, and `len` are never used [INFO] [stdout] --> crates/core/optimizer.rs:26:19 [INFO] [stdout] | [INFO] [stdout] 24 | impl PatternCache { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 25 | /// Create a new pattern cache with size limit. [INFO] [stdout] 26 | pub(crate) fn new(max_size: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub(crate) fn is_cached(&self, pattern: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub(crate) fn add(&mut self, pattern: String) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub(crate) fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub(crate) fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileContentCache` is never constructed [INFO] [stdout] --> crates/core/optimizer.rs:76:19 [INFO] [stdout] | [INFO] [stdout] 76 | pub(crate) struct FileContentCache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, `insert`, `clear`, and `stats` are never used [INFO] [stdout] --> crates/core/optimizer.rs:85:19 [INFO] [stdout] | [INFO] [stdout] 83 | impl FileContentCache { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 84 | /// Create a new file content cache with size limit (in bytes). [INFO] [stdout] 85 | pub(crate) fn new(max_size_bytes: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub(crate) fn get(&self, path: &Path) -> Option> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub(crate) fn insert(&mut self, path: std::path::PathBuf, content: Vec) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub(crate) fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub(crate) fn stats(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PathFilter` is never constructed [INFO] [stdout] --> crates/core/optimizer.rs:151:19 [INFO] [stdout] | [INFO] [stdout] 151 | pub(crate) struct PathFilter { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `default_filter`, `should_skip`, `bytes_contains`, and `is_binary` are never used [INFO] [stdout] --> crates/core/optimizer.rs:162:19 [INFO] [stdout] | [INFO] [stdout] 160 | impl PathFilter { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 161 | /// Create filter with sensible defaults. [INFO] [stdout] 162 | pub(crate) fn default_filter() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub(crate) fn should_skip(&self, path: &Path) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | fn bytes_contains(haystack: &[u8], needle: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub(crate) fn is_binary(&self, content: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_str` is never used [INFO] [stdout] --> crates/core/ripgrep_config.rs:38:19 [INFO] [stdout] | [INFO] [stdout] 27 | impl SearchMode { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 38 | pub(crate) fn as_str(&self) -> &'static str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `save` and `to_toml` are never used [INFO] [stdout] --> crates/core/ripgrep_config.rs:172:19 [INFO] [stdout] | [INFO] [stdout] 123 | impl RipgrepConfig { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 172 | pub(crate) fn save(&self) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | fn to_toml(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SimdMatcher` is never constructed [INFO] [stdout] --> crates/core/simd.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct SimdMatcher; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new`, `find_all`, `find_single_byte`, and `find_scalar` are never used [INFO] [stdout] --> crates/core/simd.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl SimdMatcher { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 17 | /// Create a new SIMD matcher [INFO] [stdout] 18 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn find_all(pattern: &[u8], text: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | fn find_single_byte(byte: u8, text: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | fn find_scalar(pattern: &[u8], text: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SimdCaseInsensitiveMatcher` is never constructed [INFO] [stdout] --> crates/core/simd.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 74 | pub struct SimdCaseInsensitiveMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `find_all` are never used [INFO] [stdout] --> crates/core/simd.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 76 | impl SimdCaseInsensitiveMatcher { [INFO] [stdout] | ------------------------------- associated functions in this implementation [INFO] [stdout] 77 | /// Create a new case-insensitive SIMD matcher [INFO] [stdout] 78 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn find_all(pattern: &[u8], text: &[u8]) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling syn v2.0.107 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling ripgrep v15.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> crates/core/ripgrep_config.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `cleanup` is never used [INFO] [stdout] --> crates/core/cache.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 28 | impl DirectoryCache { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub(crate) fn cleanup(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear` is never used [INFO] [stdout] --> crates/core/cache.rs:138:19 [INFO] [stdout] | [INFO] [stdout] 96 | impl SearchResultCache { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 138 | pub(crate) fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> crates/core/cache.rs:164:19 [INFO] [stdout] | [INFO] [stdout] 162 | impl BoundedSearch { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 163 | /// Create bounded search with custom limits. [INFO] [stdout] 164 | pub(crate) fn new(max_results: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `wsl2_optimized` is never read [INFO] [stdout] --> crates/core/flags/hiargs.rs:58:16 [INFO] [stdout] | [INFO] [stdout] 36 | pub(crate) struct HiArgs { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 58 | pub(crate) wsl2_optimized: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HiArgs` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `weights` is never read [INFO] [stdout] --> crates/core/heuristic.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 89 | pub(crate) struct HeuristicConfig { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 101 | pub weights: ScoringWeights, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HeuristicConfig` 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 `with_weights` is never used [INFO] [stdout] --> crates/core/heuristic.rs:124:19 [INFO] [stdout] | [INFO] [stdout] 104 | impl HeuristicConfig { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 124 | pub(crate) fn with_weights( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_cached` and `stats` are never used [INFO] [stdout] --> crates/core/incremental.rs:159:19 [INFO] [stdout] | [INFO] [stdout] 59 | impl IncrementalSearch { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 159 | pub(crate) fn get_cached(&self) -> Option<&[IncrementalResult]> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub(crate) fn stats(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `clear` and `len` are never used [INFO] [stdout] --> crates/core/optimizer.rs:54:19 [INFO] [stdout] | [INFO] [stdout] 24 | impl PatternCache { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 54 | pub(crate) fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub(crate) fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `clear` and `stats` are never used [INFO] [stdout] --> crates/core/optimizer.rs:128:19 [INFO] [stdout] | [INFO] [stdout] 83 | impl FileContentCache { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 128 | pub(crate) fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub(crate) fn stats(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `save` is never used [INFO] [stdout] --> crates/core/ripgrep_config.rs:172:19 [INFO] [stdout] | [INFO] [stdout] 123 | impl RipgrepConfig { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 172 | pub(crate) fn save(&self) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 11.59s [INFO] running `Command { std: "docker" "inspect" "a5967138f987c9ca3dab20a3661f8868eb8af8d45242dbdf5767e3a74826df7c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a5967138f987c9ca3dab20a3661f8868eb8af8d45242dbdf5767e3a74826df7c", kill_on_drop: false }` [INFO] [stdout] a5967138f987c9ca3dab20a3661f8868eb8af8d45242dbdf5767e3a74826df7c [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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 4245325a154e0a081d2656254781bbf84958fc1793082a8bdf47465d1c48cc3a [INFO] running `Command { std: "docker" "start" "-a" "4245325a154e0a081d2656254781bbf84958fc1793082a8bdf47465d1c48cc3a", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `Path` [INFO] [stderr] --> crates/core/ripgrep_config.rs:15:17 [INFO] [stderr] | [INFO] [stderr] 15 | use std::path::{Path, PathBuf}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: struct `DirectoryCache` is never constructed [INFO] [stderr] --> crates/core/cache.rs:23:19 [INFO] [stderr] | [INFO] [stderr] 23 | pub(crate) struct DirectoryCache { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `canonicalize_key`, `get`, `insert`, and `cleanup` are never used [INFO] [stderr] --> crates/core/cache.rs:30:19 [INFO] [stderr] | [INFO] [stderr] 28 | impl DirectoryCache { [INFO] [stderr] | ------------------- associated items in this implementation [INFO] [stderr] 29 | /// Create a new directory cache with 5-second TTL. [INFO] [stderr] 30 | pub(crate) fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 38 | fn canonicalize_key(dir: &Path) -> PathBuf { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 44 | pub(crate) fn get(&self, dir: &Path) -> Option>> { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 55 | pub(crate) fn insert(&mut self, dir: PathBuf, entries: Vec) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 61 | pub(crate) fn cleanup(&mut self) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CachedResult` is never constructed [INFO] [stderr] --> crates/core/cache.rs:75:19 [INFO] [stderr] | [INFO] [stderr] 75 | pub(crate) struct CachedResult { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SearchResultCache` is never constructed [INFO] [stderr] --> crates/core/cache.rs:89:19 [INFO] [stderr] | [INFO] [stderr] 89 | pub(crate) struct SearchResultCache { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `is_valid`, `get`, `update`, and `clear` are never used [INFO] [stderr] --> crates/core/cache.rs:98:19 [INFO] [stderr] | [INFO] [stderr] 96 | impl SearchResultCache { [INFO] [stderr] | ---------------------- associated items in this implementation [INFO] [stderr] 97 | /// Create a new search result cache. [INFO] [stderr] 98 | pub(crate) fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 111 | pub(crate) fn is_valid(&self, pattern: &str) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 122 | pub(crate) fn get(&self, pattern: &str) -> Option> { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 131 | pub(crate) fn update(&mut self, pattern: String, results: Vec) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 138 | pub(crate) fn clear(&mut self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `new` and `unlimited` are never used [INFO] [stderr] --> crates/core/cache.rs:164:19 [INFO] [stderr] | [INFO] [stderr] 162 | impl BoundedSearch { [INFO] [stderr] | ------------------ associated functions in this implementation [INFO] [stderr] 163 | /// Create bounded search with custom limits. [INFO] [stderr] 164 | pub(crate) fn new(max_results: usize) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 182 | pub(crate) fn unlimited() -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `wsl2_optimized` is never read [INFO] [stderr] --> crates/core/flags/hiargs.rs:58:16 [INFO] [stderr] | [INFO] [stderr] 36 | pub(crate) struct HiArgs { [INFO] [stderr] | ------ field in this struct [INFO] [stderr] ... [INFO] [stderr] 58 | pub(crate) wsl2_optimized: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `HiArgs` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `exact_match`, `case_sensitive`, `word_boundary`, `fuzzy_match`, `substring_match`, and `length_similarity` are never read [INFO] [stderr] --> crates/core/heuristic.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 15 | pub(crate) struct ScoringWeights { [INFO] [stderr] | -------------- fields in this struct [INFO] [stderr] 16 | /// Weight for exact matches. Default: 1.0 [INFO] [stderr] 17 | pub exact_match: f32, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 18 | /// Weight for case-sensitive matches. Default: 0.5 [INFO] [stderr] 19 | pub case_sensitive: f32, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 20 | /// Weight for word boundary matches. Default: 0.3 [INFO] [stderr] 21 | pub word_boundary: f32, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 22 | /// Weight for fuzzy/consecutive matches. Default: 0.2 [INFO] [stderr] 23 | pub fuzzy_match: f32, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 24 | /// Weight for substring matches. Default: 0.15 [INFO] [stderr] 25 | pub substring_match: f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 26 | /// Weight for length similarity. Default: 0.1 [INFO] [stderr] 27 | pub length_similarity: f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ScoringWeights` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `normalize` are never used [INFO] [stderr] --> crates/core/heuristic.rs:45:19 [INFO] [stderr] | [INFO] [stderr] 43 | impl ScoringWeights { [INFO] [stderr] | ------------------- associated items in this implementation [INFO] [stderr] 44 | /// Creates custom weights for domain-specific scoring. [INFO] [stderr] 45 | pub(crate) fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 64 | pub(crate) fn normalize(&self) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `fuzzy_threshold`, `max_edit_distance`, `unicode_aware`, `case_sensitive_substring`, `consecutive_match_bonus`, and `weights` are never read [INFO] [stderr] --> crates/core/heuristic.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 89 | pub(crate) struct HeuristicConfig { [INFO] [stderr] | --------------- fields in this struct [INFO] [stderr] 90 | /// Minimum fuzzy match threshold (0.0-1.0). Default: 0.6 (60%) [INFO] [stderr] 91 | pub fuzzy_threshold: f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 92 | /// Maximum edit distance for close matches. If None, uses pattern.len() / 4 [INFO] [stderr] 93 | pub max_edit_distance: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] 94 | /// Whether to use Unicode-aware word boundaries. Default: true [INFO] [stderr] 95 | pub unicode_aware: bool, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 96 | /// Whether to require case-sensitive substring matching. Default: false [INFO] [stderr] 97 | pub case_sensitive_substring: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 98 | /// Bonus multiplier for consecutive character matches. Default: 1.0 [INFO] [stderr] 99 | pub consecutive_match_bonus: f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 100 | /// Custom scoring weights. Default: standard weights [INFO] [stderr] 101 | pub weights: ScoringWeights, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `HeuristicConfig` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated functions `new` and `with_weights` are never used [INFO] [stderr] --> crates/core/heuristic.rs:106:19 [INFO] [stderr] | [INFO] [stderr] 104 | impl HeuristicConfig { [INFO] [stderr] | -------------------- associated functions in this implementation [INFO] [stderr] 105 | /// Creates a new configuration with custom settings. [INFO] [stderr] 106 | pub(crate) fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 124 | pub(crate) fn with_weights( [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ScoredMatch` is never constructed [INFO] [stderr] --> crates/core/heuristic.rs:158:19 [INFO] [stderr] | [INFO] [stderr] 158 | pub(crate) struct ScoredMatch { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ScoreBreakdown` is never constructed [INFO] [stderr] --> crates/core/heuristic.rs:181:19 [INFO] [stderr] | [INFO] [stderr] 181 | pub(crate) struct ScoreBreakdown { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calculate_relevance_score` is never used [INFO] [stderr] --> crates/core/heuristic.rs:201:15 [INFO] [stderr] | [INFO] [stderr] 201 | pub(crate) fn calculate_relevance_score( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calculate_relevance_score_with_config` is never used [INFO] [stderr] --> crates/core/heuristic.rs:217:15 [INFO] [stderr] | [INFO] [stderr] 217 | pub(crate) fn calculate_relevance_score_with_config( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calculate_relevance_score_breakdown` is never used [INFO] [stderr] --> crates/core/heuristic.rs:271:15 [INFO] [stderr] | [INFO] [stderr] 271 | pub(crate) fn calculate_relevance_score_breakdown( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_word_boundary_match` is never used [INFO] [stderr] --> crates/core/heuristic.rs:329:4 [INFO] [stderr] | [INFO] [stderr] 329 | fn is_word_boundary_match(pattern: &str, text: &str, unicode_aware: bool) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_substring_match` is never used [INFO] [stderr] --> crates/core/heuristic.rs:362:4 [INFO] [stderr] | [INFO] [stderr] 362 | fn is_substring_match(pattern: &str, text: &str, case_sensitive: bool) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `count_consecutive_matches` is never used [INFO] [stderr] --> crates/core/heuristic.rs:373:4 [INFO] [stderr] | [INFO] [stderr] 373 | fn count_consecutive_matches(pattern: &str, text: &str) -> (usize, bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `calculate_length_similarity` is never used [INFO] [stderr] --> crates/core/heuristic.rs:405:4 [INFO] [stderr] | [INFO] [stderr] 405 | fn calculate_length_similarity(pattern: &str, text: &str) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `fuzzy_match_with_threshold` is never used [INFO] [stderr] --> crates/core/heuristic.rs:420:4 [INFO] [stderr] | [INFO] [stderr] 420 | fn fuzzy_match_with_threshold(pattern: &str, text: &str, threshold: f32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `fuzzy_match` is never used [INFO] [stderr] --> crates/core/heuristic.rs:445:15 [INFO] [stderr] | [INFO] [stderr] 445 | pub(crate) fn fuzzy_match(pattern: &str, text: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `levenshtein_distance` is never used [INFO] [stderr] --> crates/core/heuristic.rs:453:15 [INFO] [stderr] | [INFO] [stderr] 453 | pub(crate) fn levenshtein_distance(s1: &str, s2: &str) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_close_match` is never used [INFO] [stderr] --> crates/core/heuristic.rs:500:15 [INFO] [stderr] | [INFO] [stderr] 500 | pub(crate) fn is_close_match(pattern: &str, text: &str, max_distance: Option) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `rank_candidates` is never used [INFO] [stderr] --> crates/core/heuristic.rs:507:15 [INFO] [stderr] | [INFO] [stderr] 507 | pub(crate) fn rank_candidates( [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `find_match_positions` is never used [INFO] [stderr] --> crates/core/heuristic.rs:537:15 [INFO] [stderr] | [INFO] [stderr] 537 | pub(crate) fn find_match_positions(pattern: &str, text: &str) -> Vec<(usize, usize)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `highlight_matches` is never used [INFO] [stderr] --> crates/core/heuristic.rs:556:15 [INFO] [stderr] | [INFO] [stderr] 556 | pub(crate) fn highlight_matches( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `IncrementalResult` is never constructed [INFO] [stderr] --> crates/core/incremental.rs:32:19 [INFO] [stderr] | [INFO] [stderr] 32 | pub(crate) struct IncrementalResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `IncrementalSearch` is never constructed [INFO] [stderr] --> crates/core/incremental.rs:48:19 [INFO] [stderr] | [INFO] [stderr] 48 | pub(crate) struct IncrementalSearch { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> crates/core/incremental.rs:61:19 [INFO] [stderr] | [INFO] [stderr] 59 | impl IncrementalSearch { [INFO] [stderr] | ---------------------- associated items in this implementation [INFO] [stderr] 60 | /// Create a new incremental search engine. [INFO] [stderr] 61 | pub(crate) fn new(max_results: usize) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 73 | pub(crate) fn can_reuse(&self, new_pattern: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 109 | pub(crate) fn filter_results( [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 143 | pub(crate) fn update( [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 159 | pub(crate) fn get_cached(&self) -> Option<&[IncrementalResult]> { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 168 | pub(crate) fn clear(&mut self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 175 | pub(crate) fn stats(&self) -> (usize, usize) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `incremental_score` is never used [INFO] [stderr] --> crates/core/incremental.rs:189:15 [INFO] [stderr] | [INFO] [stderr] 189 | pub(crate) fn incremental_score(pattern: &str, text: &str) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `PatternCache` is never constructed [INFO] [stderr] --> crates/core/optimizer.rs:19:19 [INFO] [stderr] | [INFO] [stderr] 19 | pub(crate) struct PatternCache { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `is_cached`, `add`, `clear`, and `len` are never used [INFO] [stderr] --> crates/core/optimizer.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 24 | impl PatternCache { [INFO] [stderr] | ----------------- associated items in this implementation [INFO] [stderr] 25 | /// Create a new pattern cache with size limit. [INFO] [stderr] 26 | pub(crate) fn new(max_size: usize) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 36 | pub(crate) fn is_cached(&self, pattern: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 42 | pub(crate) fn add(&mut self, pattern: String) { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 54 | pub(crate) fn clear(&mut self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 60 | pub(crate) fn len(&self) -> usize { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `FileContentCache` is never constructed [INFO] [stderr] --> crates/core/optimizer.rs:76:19 [INFO] [stderr] | [INFO] [stderr] 76 | pub(crate) struct FileContentCache { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `get`, `insert`, `clear`, and `stats` are never used [INFO] [stderr] --> crates/core/optimizer.rs:85:19 [INFO] [stderr] | [INFO] [stderr] 83 | impl FileContentCache { [INFO] [stderr] | --------------------- associated items in this implementation [INFO] [stderr] 84 | /// Create a new file content cache with size limit (in bytes). [INFO] [stderr] 85 | pub(crate) fn new(max_size_bytes: usize) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 97 | pub(crate) fn get(&self, path: &Path) -> Option> { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 103 | pub(crate) fn insert(&mut self, path: std::path::PathBuf, content: Vec) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 128 | pub(crate) fn clear(&mut self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 136 | pub(crate) fn stats(&self) -> (usize, usize) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `PathFilter` is never constructed [INFO] [stderr] --> crates/core/optimizer.rs:151:19 [INFO] [stderr] | [INFO] [stderr] 151 | pub(crate) struct PathFilter { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `default_filter`, `should_skip`, `bytes_contains`, and `is_binary` are never used [INFO] [stderr] --> crates/core/optimizer.rs:162:19 [INFO] [stderr] | [INFO] [stderr] 160 | impl PathFilter { [INFO] [stderr] | --------------- associated items in this implementation [INFO] [stderr] 161 | /// Create filter with sensible defaults. [INFO] [stderr] 162 | pub(crate) fn default_filter() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 183 | pub(crate) fn should_skip(&self, path: &Path) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 205 | fn bytes_contains(haystack: &[u8], needle: &[u8]) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 219 | pub(crate) fn is_binary(&self, content: &[u8]) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `as_str` is never used [INFO] [stderr] --> crates/core/ripgrep_config.rs:38:19 [INFO] [stderr] | [INFO] [stderr] 27 | impl SearchMode { [INFO] [stderr] | --------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 38 | pub(crate) fn as_str(&self) -> &'static str { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `save` and `to_toml` are never used [INFO] [stderr] --> crates/core/ripgrep_config.rs:172:19 [INFO] [stderr] | [INFO] [stderr] 123 | impl RipgrepConfig { [INFO] [stderr] | ------------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 172 | pub(crate) fn save(&self) -> Result<()> { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 290 | fn to_toml(&self) -> String { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SimdMatcher` is never constructed [INFO] [stderr] --> crates/core/simd.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | pub struct SimdMatcher; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `new`, `find_all`, `find_single_byte`, and `find_scalar` are never used [INFO] [stderr] --> crates/core/simd.rs:18:12 [INFO] [stderr] | [INFO] [stderr] 16 | impl SimdMatcher { [INFO] [stderr] | ---------------- associated functions in this implementation [INFO] [stderr] 17 | /// Create a new SIMD matcher [INFO] [stderr] 18 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 24 | pub fn find_all(pattern: &[u8], text: &[u8]) -> Vec { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 40 | fn find_single_byte(byte: u8, text: &[u8]) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 54 | fn find_scalar(pattern: &[u8], text: &[u8]) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SimdCaseInsensitiveMatcher` is never constructed [INFO] [stderr] --> crates/core/simd.rs:74:12 [INFO] [stderr] | [INFO] [stderr] 74 | pub struct SimdCaseInsensitiveMatcher; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `new` and `find_all` are never used [INFO] [stderr] --> crates/core/simd.rs:78:12 [INFO] [stderr] | [INFO] [stderr] 76 | impl SimdCaseInsensitiveMatcher { [INFO] [stderr] | ------------------------------- associated functions in this implementation [INFO] [stderr] 77 | /// Create a new case-insensitive SIMD matcher [INFO] [stderr] 78 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 83 | pub fn find_all(pattern: &[u8], text: &[u8]) -> Vec { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `cleanup` is never used [INFO] [stderr] --> crates/core/cache.rs:61:19 [INFO] [stderr] | [INFO] [stderr] 28 | impl DirectoryCache { [INFO] [stderr] | ------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 61 | pub(crate) fn cleanup(&mut self) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: method `clear` is never used [INFO] [stderr] --> crates/core/cache.rs:138:19 [INFO] [stderr] | [INFO] [stderr] 96 | impl SearchResultCache { [INFO] [stderr] | ---------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 138 | pub(crate) fn clear(&mut self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> crates/core/cache.rs:164:19 [INFO] [stderr] | [INFO] [stderr] 162 | impl BoundedSearch { [INFO] [stderr] | ------------------ associated function in this implementation [INFO] [stderr] 163 | /// Create bounded search with custom limits. [INFO] [stderr] 164 | pub(crate) fn new(max_results: usize) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: field `weights` is never read [INFO] [stderr] --> crates/core/heuristic.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 89 | pub(crate) struct HeuristicConfig { [INFO] [stderr] | --------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 101 | pub weights: ScoringWeights, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `HeuristicConfig` 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 `with_weights` is never used [INFO] [stderr] --> crates/core/heuristic.rs:124:19 [INFO] [stderr] | [INFO] [stderr] 104 | impl HeuristicConfig { [INFO] [stderr] | -------------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 124 | pub(crate) fn with_weights( [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `get_cached` and `stats` are never used [INFO] [stderr] --> crates/core/incremental.rs:159:19 [INFO] [stderr] | [INFO] [stderr] 59 | impl IncrementalSearch { [INFO] [stderr] | ---------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 159 | pub(crate) fn get_cached(&self) -> Option<&[IncrementalResult]> { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 175 | pub(crate) fn stats(&self) -> (usize, usize) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `clear` and `len` are never used [INFO] [stderr] --> crates/core/optimizer.rs:54:19 [INFO] [stderr] | [INFO] [stderr] 24 | impl PatternCache { [INFO] [stderr] | ----------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 54 | pub(crate) fn clear(&mut self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 60 | pub(crate) fn len(&self) -> usize { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `clear` and `stats` are never used [INFO] [stderr] --> crates/core/optimizer.rs:128:19 [INFO] [stderr] | [INFO] [stderr] 83 | impl FileContentCache { [INFO] [stderr] | --------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 128 | pub(crate) fn clear(&mut self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 136 | pub(crate) fn stats(&self) -> (usize, usize) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `save` is never used [INFO] [stderr] --> crates/core/ripgrep_config.rs:172:19 [INFO] [stderr] | [INFO] [stderr] 123 | impl RipgrepConfig { [INFO] [stderr] | ------------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 172 | pub(crate) fn save(&self) -> Result<()> { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: `ripgrep` (bin "rg") generated 44 warnings (run `cargo fix --bin "rg" -p ripgrep` to apply 1 suggestion) [INFO] [stderr] warning: `ripgrep` (bin "rg" test) generated 11 warnings (2 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s [INFO] [stdout] [INFO] [stderr] Running unittests crates/core/main.rs (/opt/rustwide/target/debug/deps/rg-34b1ef3926a5ffc6) [INFO] [stdout] running 169 tests [INFO] [stdout] test cache::tests::test_bounded_search_unlimited ... ok [INFO] [stdout] test cache::tests::test_search_result_cache ... ok [INFO] [stdout] test cache::tests::test_directory_cache ... ok [INFO] [stdout] test flags::config::tests::error ... ok [INFO] [stdout] test flags::defs::test_binary ... ok [INFO] [stdout] test flags::config::tests::basic ... ok [INFO] [stdout] test flags::defs::test_before_context ... ok [INFO] [stdout] test flags::defs::test_color ... ok [INFO] [stdout] test flags::defs::test_after_context ... ok [INFO] [stdout] test flags::defs::test_case_sensitive ... ok [INFO] [stdout] test flags::defs::test_context ... ok [INFO] [stdout] test flags::defs::test_encoding ... ok [INFO] [stdout] test flags::defs::test_context_separator ... ok [INFO] [stdout] test flags::defs::test_engine ... ok [INFO] [stdout] test flags::defs::test_debug ... ok [INFO] [stdout] test flags::defs::test_byte_offset ... ok [INFO] [stdout] test flags::defs::test_count ... ok [INFO] [stdout] test flags::defs::test_colors ... ok [INFO] [stdout] test flags::defs::test_field_context_separator ... ok [INFO] [stdout] test flags::defs::test_column ... ok [INFO] [stdout] test flags::defs::test_block_buffered ... ok [INFO] [stdout] test flags::defs::test_field_match_separator ... ok [INFO] [stdout] test flags::defs::test_files ... ok [INFO] [stdout] test flags::defs::test_file ... ok [INFO] [stdout] test flags::defs::test_files_with_matches ... ok [INFO] [stdout] test flags::defs::test_fixed_strings ... ok [INFO] [stdout] test flags::defs::test_fluid_fuzzy_threshold ... ok [INFO] [stdout] test flags::defs::test_fluid_max_edit_distance ... ok [INFO] [stdout] test flags::defs::test_follow ... ok [INFO] [stdout] test flags::defs::test_heading ... ok [INFO] [stdout] test flags::defs::test_glob ... ok [INFO] [stdout] test flags::defs::test_help ... ok [INFO] [stdout] test flags::defs::test_generate ... ok [INFO] [stdout] test flags::defs::test_ignore_case ... ok [INFO] [stdout] test flags::defs::test_iglob ... ok [INFO] [stdout] test flags::defs::test_glob_case_insensitive ... ok [INFO] [stdout] test flags::defs::test_ignore_file ... ok [INFO] [stdout] test flags::defs::test_invert_match ... ok [INFO] [stdout] test flags::defs::test_ignore_file_case_insensitive ... ok [INFO] [stdout] test flags::defs::test_hostname_bin ... ok [INFO] [stdout] test flags::defs::test_files_without_match ... ok [INFO] [stdout] test flags::defs::test_include_zero ... ok [INFO] [stdout] test flags::defs::test_fluid ... ok [INFO] [stdout] test flags::defs::test_json ... ok [INFO] [stdout] test flags::defs::test_line_buffered ... ok [INFO] [stdout] test flags::defs::test_max_columns ... ok [INFO] [stdout] test flags::defs::test_max_columns_preview ... ok [INFO] [stdout] test flags::defs::test_max_depth ... ok [INFO] [stdout] test flags::defs::test_mmap ... ok [INFO] [stdout] test flags::defs::test_hyperlink_format ... ok [INFO] [stdout] test flags::defs::test_multiline_dotall ... ok [INFO] [stdout] test flags::defs::test_multiline ... ok [INFO] [stdout] test flags::defs::test_no_ignore ... ok [INFO] [stdout] test flags::defs::test_no_config ... ok [INFO] [stdout] test flags::defs::test_no_ignore_dot ... ok [INFO] [stdout] test flags::defs::test_no_ignore_exclude ... ok [INFO] [stdout] test flags::defs::test_max_filesize ... ok [INFO] [stdout] test cache::tests::test_search_result_cache_prefix ... ok [INFO] [stdout] test flags::defs::test_no_ignore_parent ... ok [INFO] [stdout] test flags::defs::test_no_ignore_files ... ok [INFO] [stdout] test flags::defs::test_no_ignore_vcs ... ok [INFO] [stdout] test flags::defs::test_no_ignore_global ... ok [INFO] [stdout] test flags::defs::test_no_line_number ... ok [INFO] [stdout] test flags::defs::test_no_messages ... ok [INFO] [stdout] test flags::defs::test_count_matches ... ok [INFO] [stdout] test flags::defs::test_no_ignore_messages ... ok [INFO] [stdout] test flags::defs::test_line_number ... ok [INFO] [stdout] test flags::defs::test_crlf ... ok [INFO] [stdout] test flags::defs::test_line_regexp ... ok [INFO] [stdout] test flags::defs::test_max_count ... ok [INFO] [stdout] test flags::defs::test_null ... ok [INFO] [stdout] test flags::defs::test_null_data ... ok [INFO] [stdout] test flags::defs::test_one_file_system ... ok [INFO] [stdout] test flags::defs::test_pcre2 ... ok [INFO] [stdout] test flags::defs::test_auto_hybrid_regex ... ok [INFO] [stdout] test flags::defs::test_path_separator ... ok [INFO] [stdout] test flags::defs::test_pcre2_version ... ok [INFO] [stdout] test flags::defs::test_pre ... ok [INFO] [stdout] test flags::defs::test_replace ... ok [INFO] [stdout] test flags::defs::test_pretty ... ok [INFO] [stdout] test flags::defs::test_regex_size_limit ... ok [INFO] [stdout] test flags::defs::test_dfa_size_limit ... ok [INFO] [stdout] test flags::defs::test_pre_glob ... ok [INFO] [stdout] test flags::defs::test_passthru ... ok [INFO] [stdout] test flags::defs::test_quiet ... ok [INFO] [stdout] test flags::defs::test_regexp ... ok [INFO] [stdout] test flags::defs::test_search_zip ... ok [INFO] [stdout] test flags::defs::test_sortr ... ok [INFO] [stdout] test flags::defs::test_stats ... ok [INFO] [stdout] test flags::defs::test_sort ... ok [INFO] [stdout] test flags::defs::test_stop_on_nonmatch ... ok [INFO] [stdout] test flags::defs::test_threads ... ok [INFO] [stdout] test flags::defs::test_smart_case ... ok [INFO] [stdout] test flags::defs::test_text ... ok [INFO] [stdout] test flags::defs::test_sort_files ... ok [INFO] [stdout] test flags::defs::test_type ... ok [INFO] [stdout] test flags::defs::test_only_matching ... ok [INFO] [stdout] test cache::tests::test_bounded_search ... ok [INFO] [stdout] test flags::defs::test_type_list ... ok [INFO] [stdout] test flags::defs::test_type_not ... ok [INFO] [stdout] test flags::defs::test_version ... ok [INFO] [stdout] test flags::defs::test_with_filename ... ok [INFO] [stdout] test flags::defs::test_with_filename_no ... ok [INFO] [stdout] test flags::defs::test_unrestricted ... ok [INFO] [stdout] test flags::defs::test_vimgrep ... ok [INFO] [stdout] test flags::defs::test_word_regexp ... ok [INFO] [stdout] test flags::defs::test_trim ... ok [INFO] [stdout] test flags::defs::tests::non_switches_have_variable_names ... ok [INFO] [stdout] test flags::defs::tests::choices_ascii_alphanumeric ... ok [INFO] [stdout] test flags::defs::tests::longs_all_ascii_alphanumeric ... ok [INFO] [stdout] test flags::defs::tests::available_shorts ... ok [INFO] [stdout] test flags::defs::tests::longs_no_duplicates ... ok [INFO] [stdout] test flags::defs::test_trace ... ok [INFO] [stdout] test flags::defs::tests::shorts_all_ascii_alphanumeric ... ok [INFO] [stdout] test heuristic::tests::test_edge_cases ... ok [INFO] [stdout] test heuristic::tests::test_fuzzy_match ... ok [INFO] [stdout] test heuristic::tests::test_fuzzy_match_with_threshold ... ok [INFO] [stdout] test heuristic::tests::test_heuristic_config ... ok [INFO] [stdout] test flags::defs::tests::switches_have_no_choices ... ok [INFO] [stdout] test heuristic::tests::test_consecutive_matches ... ok [INFO] [stdout] test heuristic::tests::test_find_match_positions ... ok [INFO] [stdout] test heuristic::tests::test_heuristic_config_custom ... ok [INFO] [stdout] test heuristic::tests::test_highlight_matches ... ok [INFO] [stdout] test flags::defs::test_no_pcre2_unicode ... ok [INFO] [stdout] test flags::defs::test_no_require_git ... ok [INFO] [stdout] test flags::defs::test_no_unicode ... ok [INFO] [stdout] test cache::tests::test_directory_cache_expiry ... ok [INFO] [stdout] test flags::defs::test_type_clear ... ok [INFO] [stdout] test heuristic::tests::test_highlight_matches_no_match ... ok [INFO] [stdout] test heuristic::tests::test_is_close_match ... ok [INFO] [stdout] test heuristic::tests::test_length_similarity ... ok [INFO] [stdout] test heuristic::tests::test_levenshtein_distance ... ok [INFO] [stdout] test heuristic::tests::test_relevance_score ... ok [INFO] [stdout] test heuristic::tests::test_relevance_score_normalized ... ok [INFO] [stdout] test heuristic::tests::test_scored_match_ordering ... ok [INFO] [stdout] test heuristic::tests::test_score_breakdown ... ok [INFO] [stdout] test flags::defs::test_type_add ... ok [INFO] [stdout] test flags::defs::tests::shorts_no_duplicates ... ok [INFO] [stdout] test heuristic::tests::test_scoring_weights ... ok [INFO] [stdout] test heuristic::tests::test_scoring_weights_normalize ... ok [INFO] [stdout] test heuristic::tests::test_word_boundary_match ... ok [INFO] [stdout] test heuristic::tests::test_substring_match ... ok [INFO] [stdout] test incremental::tests::test_can_reuse_empty_pattern ... ok [INFO] [stdout] test incremental::tests::test_can_reuse_forward ... ok [INFO] [stdout] test incremental::tests::test_clear ... ok [INFO] [stdout] test incremental::tests::test_can_reuse_backward ... ok [INFO] [stdout] test incremental::tests::test_filter_results ... ok [INFO] [stdout] test incremental::tests::test_incremental_search_creation ... ok [INFO] [stdout] test incremental::tests::test_incremental_score ... ok [INFO] [stdout] test optimizer::tests::test_binary_detection ... ok [INFO] [stdout] test optimizer::tests::test_file_content_cache ... ok [INFO] [stdout] test ripgrep_config::tests::test_fuzzy_threshold_validation ... ok [INFO] [stdout] test ripgrep_config::tests::test_parse_toml ... ok [INFO] [stdout] test ripgrep_config::tests::test_parse_toml_with_comments ... ok [INFO] [stdout] test optimizer::tests::test_path_filter ... ok [INFO] [stdout] test simd::tests::test_empty_text ... ok [INFO] [stdout] test simd::tests::test_simd_multi_byte ... ok [INFO] [stdout] test simd::tests::test_case_insensitive ... ok [INFO] [stdout] test ripgrep_config::tests::test_search_mode_validation ... ok [INFO] [stdout] test optimizer::tests::test_pattern_cache ... ok [INFO] [stdout] test simd::tests::test_simd_single_byte ... ok [INFO] [stdout] test ripgrep_config::tests::test_default_config ... ok [INFO] [stdout] test ripgrep_config::tests::test_max_edit_distance_validation ... ok [INFO] [stdout] test ripgrep_config::tests::test_to_toml ... ok [INFO] [stdout] test simd::tests::test_simd_overlapping ... ok [INFO] [stdout] test simd::tests::test_empty_pattern ... ok [INFO] [stdout] test simd::tests::test_simd_no_match ... ok [INFO] [stdout] test flags::defs::test_hidden ... ok [INFO] [stdout] test heuristic::tests::test_rank_candidates ... ok [INFO] [stderr] Running tests/tests.rs (/opt/rustwide/target/debug/deps/integration-1f6bab5fc08b55ad) [INFO] [stdout] [INFO] [stdout] test result: ok. 169 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 329 tests [INFO] [stdout] test binary::after_match2_implicit ... ok [INFO] [stdout] test binary::after_match1_implicit_count ... ok [INFO] [stdout] test binary::after_match1_implicit_binary ... ok [INFO] [stdout] test binary::after_match1_explicit_count ... ok [INFO] [stdout] test binary::before_match2_explicit ... ok [INFO] [stdout] test binary::after_match1_explicit ... ok [INFO] [stdout] test binary::mmap_after_nul_match ... ok [INFO] [stdout] test binary::before_match2_implicit ... ok [INFO] [stdout] test binary::after_match1_implicit ... ok [INFO] [stdout] test binary::after_match1_explicit_text ... ok [INFO] [stdout] test binary::after_match1_implicit_count_binary ... ok [INFO] [stdout] test binary::after_match1_stdin ... ok [INFO] [stdout] test binary::after_match1_implicit_path ... ok [INFO] [stdout] test binary::mmap_binary_flag ... ok [INFO] [stdout] test binary::after_match1_implicit_quiet ... ok [INFO] [stdout] test binary::mmap_match_explicit ... ok [INFO] [stdout] test binary::before_match1_implicit_binary ... ok [INFO] [stdout] test binary::before_match2_implicit_text ... ok [INFO] [stdout] test binary::mmap_match_near_nul ... ok [INFO] [stdout] test feature::context_sep_default ... ok [INFO] [stdout] test binary::mmap_text_flag ... ok [INFO] [stdout] test binary::mmap_match_count ... ok [INFO] [stdout] test feature::f1078_max_columns_preview2 ... ok [INFO] [stdout] test feature::f1155_auto_hybrid_regex ... ok [INFO] [stdout] test binary::before_match1_explicit ... ok [INFO] [stdout] test feature::f109_case_sensitive_part2 ... ok [INFO] [stdout] test binary::before_match1_implicit_text ... ok [INFO] [stdout] test feature::f1207_auto_encoding ... ok [INFO] [stdout] test feature::f109_case_sensitive_part1 ... ok [INFO] [stdout] test binary::before_match1_implicit ... ok [INFO] [stdout] test binary::mmap_match_multiple ... ok [INFO] [stdout] test binary::after_match2_implicit_text ... ok [INFO] [stdout] test feature::f109_max_depth ... ok [INFO] [stdout] test feature::f129_replace ... ok [INFO] [stdout] test feature::f129_matches ... ok [INFO] [stdout] test feature::context_sep_empty ... ok [INFO] [stdout] test feature::f1207_ignore_encoding ... ok [INFO] [stdout] test feature::context_sep ... ok [INFO] [stdout] test binary::after_match1_implicit_text ... ok [INFO] [stdout] test feature::f1138_no_ignore_dot ... ok [INFO] [stdout] test feature::f129_context ... ok [INFO] [stdout] test binary::mmap_match_implicit ... ok [INFO] [stdout] test feature::f159_max_count_zero ... ok [INFO] [stdout] test feature::f159_max_count ... ok [INFO] [stdout] test feature::f1_replacement_encoding ... ok [INFO] [stdout] test feature::f196_persistent_config ... ok [INFO] [stdout] test feature::f1420_no_ignore_exclude ... ok [INFO] [stdout] test feature::f2288_context_partial_override ... ok [INFO] [stdout] test feature::f1_eucjp ... ok [INFO] [stdout] test feature::f1078_max_columns_preview1 ... ok [INFO] [stdout] test feature::f2288_context_partial_override_rev ... ok [INFO] [stdout] test feature::f1_sjis ... ok [INFO] [stdout] test feature::f1404_nothing_searched_warning ... ok [INFO] [stdout] test feature::f1466_no_ignore_files ... ok [INFO] [stdout] test feature::f20_no_filename ... ok [INFO] [stdout] test feature::f1_utf16_explicit ... ok [INFO] [stdout] test feature::f263_sort_files ... ok [INFO] [stdout] test feature::f1_utf16_auto ... ok [INFO] [stdout] test feature::f1_unknown_encoding ... ok [INFO] [stdout] test feature::f1842_field_match_separator ... ok [INFO] [stdout] test feature::f362_exceeds_regex_size_limit ... ok [INFO] [stdout] test feature::f1842_field_context_separator ... ok [INFO] [stdout] test feature::f362_dfa_size_limit ... ok [INFO] [stdout] test feature::f1404_nothing_searched_ignored ... ok [INFO] [stdout] test feature::f411_parallel_quiet_search_stats ... ok [INFO] [stdout] test feature::f34_only_matching_line_column ... ok [INFO] [stdout] test feature::f1414_no_require_git ... ok [INFO] [stdout] test feature::f411_single_threaded_search_stats ... ok [INFO] [stdout] test feature::f411_single_threaded_quiet_search_stats ... ok [INFO] [stdout] test feature::f275_pathsep ... ok [INFO] [stdout] test feature::f263_sort_files_reverse ... ok [INFO] [stdout] test feature::f411_parallel_search_stats ... ok [INFO] [stdout] test feature::f416_crlf_multiline ... ok [INFO] [stdout] test feature::f416_crlf ... ok [INFO] [stdout] test feature::f243_column_line ... ok [INFO] [stdout] test feature::f7 ... ok [INFO] [stdout] test feature::f34_only_matching ... ok [INFO] [stdout] test binary::matching_files_inconsistent_with_count ... ok [INFO] [stdout] test feature::f416_crlf_only_matching ... ok [INFO] [stdout] test feature::f45_precedence_with_others ... ok [INFO] [stdout] test feature::f419_zero_as_shortcut_for_null ... ok [INFO] [stdout] test feature::f45_precedence_internal ... ok [INFO] [stdout] test feature::f68_no_ignore_vcs ... ok [INFO] [stdout] test feature::f917_trim ... ok [INFO] [stdout] test feature::f89_files_with_matches ... ok [INFO] [stdout] test feature::f917_trim_match ... ok [INFO] [stdout] test feature::f89_files ... ok [INFO] [stdout] test feature::f89_files_without_match ... ok [INFO] [stdout] test feature::f89_count ... ok [INFO] [stdout] test feature::f7_stdin ... ok [INFO] [stdout] test feature::no_context_sep ... ok [INFO] [stdout] test feature::f89_match ... ok [INFO] [stdout] test feature::f948_exit_code_match ... ok [INFO] [stdout] test feature::f993_null_data ... ok [INFO] [stdout] test feature::f917_trim_max_columns_normal ... ok [INFO] [stdout] test feature::f948_exit_code_error ... ok [INFO] [stdout] test feature::f917_trim_max_columns_matches ... ok [INFO] [stdout] test feature::f917_trim_max_columns_multi_per_match ... ok [INFO] [stdout] test feature::f70_smart_case ... ok [INFO] [stdout] test feature::f917_trim_multi_standard ... ok [INFO] [stdout] test json::basic ... ok [INFO] [stdout] test feature::f948_exit_code_no_match ... ok [INFO] [stdout] test json::r1412_look_behind_match_missing ... ok [INFO] [stdout] test json::notutf8_file ... ok [INFO] [stdout] test feature::f917_trim_max_columns_multi_standard ... ok [INFO] [stdout] test json::crlf ... ok [INFO] [stdout] test misc::after_context ... ok [INFO] [stdout] test json::notutf8 ... ok [INFO] [stdout] test feature::stop_on_nonmatch ... ok [INFO] [stdout] test json::replacement ... ok [INFO] [stdout] test feature::no_unicode ... ok [INFO] [stdout] test feature::f917_trim_max_columns_multi_only_matching ... ok [INFO] [stdout] test misc::binary_quit ... ok [INFO] [stdout] test json::r1095_missing_crlf ... ok [INFO] [stdout] test misc::binary_convert_mmap ... ok [INFO] [stdout] test misc::binary_search_no_mmap ... ok [INFO] [stdout] test misc::binary_search_mmap ... ok [INFO] [stdout] test misc::compressed_brotli ... ok [INFO] [stdout] test misc::byte_offset_only_matching ... ok [INFO] [stdout] test misc::columns ... ok [INFO] [stdout] test misc::compressed_failing_gzip ... ok [INFO] [stdout] test misc::compressed_lz4 ... ok [INFO] [stdout] test misc::case_insensitive ... ok [INFO] [stdout] test feature::f45_relative_cwd ... ok [INFO] [stdout] test misc::compressed_gzip ... ok [INFO] [stdout] test json::quiet_stats ... ok [INFO] [stdout] test misc::after_context_line_numbers ... ok [INFO] [stdout] test misc::compressed_xz ... ok [INFO] [stdout] test misc::compressed_lzma ... ok [INFO] [stdout] test misc::compressed_bzip2 ... ok [INFO] [stdout] test misc::context ... ok [INFO] [stdout] test feature::no_context_sep_overridden ... ok [INFO] [stdout] test misc::compressed_zstd ... ok [INFO] [stdout] test misc::context_line_numbers ... ok [INFO] [stdout] test misc::before_context ... ok [INFO] [stdout] test misc::before_context_line_numbers ... ok [INFO] [stdout] test misc::count ... ok [INFO] [stdout] test misc::binary_quit_mmap ... ok [INFO] [stdout] test feature::f740_passthru ... ok [INFO] [stdout] test misc::compressed_uncompress ... ok [INFO] [stdout] test misc::binary_convert ... ok [INFO] [stdout] test misc::count_matches_inverted ... ok [INFO] [stdout] test misc::file_type_clear ... ok [INFO] [stdout] test misc::count_matches_via_only ... ok [INFO] [stdout] test misc::count_matches ... ok [INFO] [stdout] test feature::no_context_sep_overrides ... ok [INFO] [stdout] test misc::dir ... ok [INFO] [stdout] test misc::file_type_add_compose ... ok [INFO] [stdout] test misc::file_types ... ok [INFO] [stdout] test misc::files_without_match ... ok [INFO] [stdout] test misc::glob_always_case_insensitive ... ok [INFO] [stdout] test misc::glob ... ok [INFO] [stdout] test json::r1095_crlf_empty_match ... ok [INFO] [stdout] test misc::file_type_add ... ok [INFO] [stdout] test misc::ignore_git ... ok [INFO] [stdout] test misc::files ... ok [INFO] [stdout] test misc::files_with_matches ... ok [INFO] [stdout] test misc::glob_case_sensitive ... ok [INFO] [stdout] test misc::ignore_git_parent ... ok [INFO] [stdout] test misc::ignore_generic ... ok [INFO] [stdout] test misc::glob_case_insensitive ... ok [INFO] [stdout] test misc::inverted ... ok [INFO] [stdout] test misc::inverted_line_numbers ... ok [INFO] [stdout] test misc::glob_negate ... ok [INFO] [stdout] test misc::ignore_ripgrep ... ok [INFO] [stdout] test misc::literal ... ok [INFO] [stdout] test misc::max_filesize_parse_error_length ... ok [INFO] [stdout] test misc::ignore_ripgrep_parent_no_stop ... ok [INFO] [stdout] test misc::max_filesize_parse_no_suffix ... ok [INFO] [stdout] test misc::max_filesize_parse_error_suffix ... ok [INFO] [stdout] test misc::line_numbers ... ok [INFO] [stdout] test misc::max_filesize_suffix_overflow ... ok [INFO] [stdout] test misc::no_ignore ... ok [INFO] [stdout] test misc::ignore_git_parent_stop_file ... ok [INFO] [stdout] test misc::ignore_git_parent_stop ... ok [INFO] [stdout] test misc::file_types_negate ... ok [INFO] [stdout] test misc::no_parent_ignore_git ... ok [INFO] [stdout] test misc::ignore_hidden ... ok [INFO] [stdout] test misc::max_filesize_parse_k_suffix ... ok [INFO] [stdout] test misc::quiet ... ok [INFO] [stdout] test misc::max_filesize_parse_m_suffix ... ok [INFO] [stdout] test misc::no_ignore_hidden ... ok [INFO] [stdout] test misc::preprocessing_glob ... ok [INFO] [stdout] test misc::single_file ... ok [INFO] [stdout] test misc::replace ... ok [INFO] [stdout] test misc::replace_named_groups ... ok [INFO] [stdout] test misc::replace_groups ... ok [INFO] [stdout] test misc::preprocessing ... ok [INFO] [stdout] test misc::include_zero ... ok [INFO] [stdout] test misc::include_zero_override ... ok [INFO] [stdout] test misc::line ... ok [INFO] [stdout] test misc::symlink_nofollow ... ok [INFO] [stdout] test misc::unrestricted3 ... ok [INFO] [stdout] test misc::unrestricted1 ... ok [INFO] [stdout] test misc::type_list ... ok [INFO] [stdout] test misc::with_filename ... ok [INFO] [stdout] test misc::symlink_follow ... ok [INFO] [stdout] test misc::with_heading ... ok [INFO] [stdout] test misc::word ... ok [INFO] [stdout] test misc::unrestricted2 ... ok [INFO] [stdout] test misc::vimgrep_no_line_no_column ... ok [INFO] [stdout] test misc::vimgrep ... ok [INFO] [stdout] test misc::with_heading_default ... ok [INFO] [stdout] test misc::word_period ... ok [INFO] [stdout] test multiline::overlap2 ... ok [INFO] [stdout] test multiline::only_matching ... ok [INFO] [stdout] test multiline::vimgrep ... ok [INFO] [stdout] test misc::vimgrep_no_line ... ok [INFO] [stdout] test multiline::context ... ok [INFO] [stdout] test multiline::dot_no_newline ... ok [INFO] [stdout] test multiline::overlap1 ... ok [INFO] [stdout] test regression::r105_part1 ... ok [INFO] [stdout] test regression::r1159_invalid_flag ... ok [INFO] [stdout] test regression::r1098 ... ok [INFO] [stdout] test regression::r1130 ... ok [INFO] [stdout] test multiline::dot_all ... ok [INFO] [stdout] test regression::r1173 ... ok [INFO] [stdout] test regression::r1176_line_regex ... ok [INFO] [stdout] test regression::r1176_literal_file ... ok [INFO] [stdout] test regression::f1757 ... ok [INFO] [stdout] test multiline::stdin ... ok [INFO] [stdout] test regression::r1163 ... ok [INFO] [stdout] test regression::r1223_no_dir_check_for_default_path ... ok [INFO] [stdout] test regression::r1259_drop_last_byte_nonl ... ok [INFO] [stdout] test regression::r127 ... ok [INFO] [stdout] test regression::r128 ... ok [INFO] [stdout] test regression::r1311_multi_line_term_replace ... ok [INFO] [stdout] test regression::r1319 ... ok [INFO] [stdout] test regression::r105_part2 ... ok [INFO] [stdout] test regression::r137 ... ok [INFO] [stdout] test regression::r1380 ... ok [INFO] [stdout] test regression::r1174 ... ok [INFO] [stdout] test regression::r1401_look_ahead_only_matching_1 ... ok [INFO] [stdout] test regression::r1401_look_ahead_only_matching_2 ... ok [INFO] [stdout] test regression::r1412_look_behind_no_replacement ... ok [INFO] [stdout] test regression::r1064 ... ok [INFO] [stdout] test regression::r131 ... ok [INFO] [stdout] test regression::r1389_bad_symlinks_no_biscuit ... ok [INFO] [stdout] test regression::r1446_respect_excludes_in_worktree ... ok [INFO] [stdout] test regression::r1573 ... ok [INFO] [stdout] test regression::r1164 ... ok [INFO] [stdout] test regression::r1334_invert_empty_patterns ... ok [INFO] [stdout] test regression::r1739_replacement_lineterm_match ... ok [INFO] [stdout] test misc::replace_with_only_matching ... ok [INFO] [stdout] test regression::r1559 ... ok [INFO] [stdout] test regression::r1334_crazy_literals ... ok [INFO] [stdout] test regression::r1866 ... ok [INFO] [stdout] test regression::r1537 ... ok [INFO] [stdout] test regression::r1765 ... ok [INFO] [stdout] test regression::r1891 ... ok [INFO] [stdout] test regression::r1838_nul_error_with_binary_detection ... ok [INFO] [stdout] test misc::sort_files ... ok [INFO] [stdout] test regression::r1203_reverse_suffix_literal ... ok [INFO] [stdout] test regression::r16 ... ok [INFO] [stdout] test regression::r206 ... ok [INFO] [stdout] test regression::r199 ... ok [INFO] [stdout] test regression::r210 ... ok [INFO] [stdout] test regression::r2094 ... ok [INFO] [stdout] test misc::sortr_accessed ... ok [INFO] [stdout] test regression::r184 ... ok [INFO] [stdout] test regression::r2198 ... ok [INFO] [stdout] test regression::r228 ... ok [INFO] [stdout] test regression::r1878 ... ok [INFO] [stdout] test regression::r2095 ... ok [INFO] [stdout] test regression::r229 ... ok [INFO] [stdout] test regression::r256_j1 ... ok [INFO] [stdout] test regression::r2236 ... ok [INFO] [stdout] test regression::r1638 ... ok [INFO] [stdout] test regression::r251 ... ok [INFO] [stdout] test regression::r256 ... ok [INFO] [stdout] test misc::sort_accessed ... ok [INFO] [stdout] test regression::r156 ... ok [INFO] [stdout] test regression::r2658_null_data_line_regexp ... ok [INFO] [stdout] test regression::r25 ... ok [INFO] [stdout] test regression::r1159_exit_status ... ok [INFO] [stdout] test regression::r30 ... ok [INFO] [stdout] test regression::r2574 ... ok [INFO] [stdout] test regression::r2944_incorrect_bytes_searched ... ok [INFO] [stdout] test regression::r3139_multiline_lookahead_files_with_matches ... ok [INFO] [stdout] test regression::r3067_gitignore_error ... ok [INFO] [stdout] test regression::r3127_glob_flag_not_allow_unclosed_class ... ok [INFO] [stdout] test feature::f2361_sort_nested_files ... ok [INFO] [stdout] test regression::r2208 ... ok [INFO] [stdout] test regression::r2990_trip_over_trailing_dot ... ok [INFO] [stdout] test regression::r270 ... ok [INFO] [stdout] test regression::r279 ... ok [INFO] [stdout] test regression::r2480 ... ok [INFO] [stdout] test regression::r2770_gitignore_error ... ok [INFO] [stdout] test regression::r391 ... ok [INFO] [stdout] test regression::r451_only_matching ... ok [INFO] [stdout] test regression::r405 ... ok [INFO] [stdout] test regression::r451_only_matching_as_in_issue ... ok [INFO] [stdout] test regression::r49 ... ok [INFO] [stdout] test regression::r483_non_matching_exit_code ... ok [INFO] [stdout] test regression::r428_color_context_path ... ok [INFO] [stdout] test regression::r493 ... ok [INFO] [stdout] test regression::r3179_global_gitignore_cwd ... ok [INFO] [stdout] test regression::r3127_gitignore_allow_unclosed_class ... ok [INFO] [stdout] test regression::r1868_context_passthru_override ... ok [INFO] [stdout] test regression::r483_matching_no_stdout ... ok [INFO] [stdout] test regression::r64 ... ok [INFO] [stdout] test regression::r506_word_not_parenthesized ... ok [INFO] [stdout] test regression::r599 ... ok [INFO] [stdout] test regression::r693_context_in_contextless_mode ... ok [INFO] [stdout] test regression::r67 ... ok [INFO] [stdout] test regression::r553_flag ... ok [INFO] [stdout] test regression::r428_unrecognized_style ... ok [INFO] [stdout] test regression::r50 ... ok [INFO] [stdout] test regression::r3180_look_around_panic ... ok [INFO] [stdout] test regression::r807 ... ok [INFO] [stdout] test regression::r829_2778 ... ok [INFO] [stdout] test regression::r900 ... ok [INFO] [stdout] test regression::r65 ... ok [INFO] [stdout] test regression::r90 ... ok [INFO] [stdout] test regression::r553_switch ... ok [INFO] [stdout] test regression::r3173_hidden_whitelist_only_dot ... ok [INFO] [stdout] test regression::r829_2933 ... ok [INFO] [stdout] test regression::r568_leading_hyphen_option_args ... ok [INFO] [stdout] test regression::r829_2747 ... ok [INFO] [stdout] test regression::r99 ... ok [INFO] [stdout] test regression::r3108_files_without_match_quiet_exit ... ok [INFO] [stdout] test regression::r829_2836 ... ok [INFO] [stdout] test regression::r829_original ... ok [INFO] [stdout] test regression::r87 ... ok [INFO] [stdout] test regression::r2711 ... ok [INFO] [stdout] test misc::file_types_negate_all ... ok [INFO] [stdout] test regression::r829_2731 ... ok [INFO] [stdout] test regression::r93 ... ok [INFO] [stdout] test misc::file_types_all ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 329 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.85s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "4245325a154e0a081d2656254781bbf84958fc1793082a8bdf47465d1c48cc3a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4245325a154e0a081d2656254781bbf84958fc1793082a8bdf47465d1c48cc3a", kill_on_drop: false }` [INFO] [stdout] 4245325a154e0a081d2656254781bbf84958fc1793082a8bdf47465d1c48cc3a