[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<Arc<Vec<PathBuf>>> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub(crate) fn insert(&mut self, dir: PathBuf, entries: Vec<PathBuf>) {
[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<Vec<CachedResult>> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub(crate) fn update(&mut self, pattern: String, results: Vec<CachedResult>) {
[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<usize>,
[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<usize>) -> 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<Arc<[u8]>> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub(crate) fn insert(&mut self, path: std::path::PathBuf, content: Vec<u8>) {
[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<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn find_single_byte(byte: u8, text: &[u8]) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn find_scalar(pattern: &[u8], text: &[u8]) -> Vec<usize> {
[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<usize> {
[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<Arc<Vec<PathBuf>>> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub(crate) fn insert(&mut self, dir: PathBuf, entries: Vec<PathBuf>) {
[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<Vec<CachedResult>> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub(crate) fn update(&mut self, pattern: String, results: Vec<CachedResult>) {
[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<usize>,
[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<usize>) -> 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<Arc<[u8]>> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub(crate) fn insert(&mut self, path: std::path::PathBuf, content: Vec<u8>) {
[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<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn find_single_byte(byte: u8, text: &[u8]) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn find_scalar(pattern: &[u8], text: &[u8]) -> Vec<usize> {
[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<usize> {
[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<Arc<Vec<PathBuf>>> {
[INFO] [stderr]    |                   ^^^
[INFO] [stderr] ...
[INFO] [stderr] 55 |     pub(crate) fn insert(&mut self, dir: PathBuf, entries: Vec<PathBuf>) {
[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<Vec<CachedResult>> {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] ...
[INFO] [stderr] 131 |     pub(crate) fn update(&mut self, pattern: String, results: Vec<CachedResult>) {
[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<usize>,
[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<usize>) -> 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<Arc<[u8]>> {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] ...
[INFO] [stderr] 103 |     pub(crate) fn insert(&mut self, path: std::path::PathBuf, content: Vec<u8>) {
[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<usize> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 40 |     fn find_single_byte(byte: u8, text: &[u8]) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     fn find_scalar(pattern: &[u8], text: &[u8]) -> Vec<usize> {
[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<usize> {
[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
