[INFO] cloning repository https://github.com/mostafa630/rusty_grep
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mostafa630/rusty_grep" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmostafa630%2Frusty_grep", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmostafa630%2Frusty_grep'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 511135b67a9ffe44ad40462bc78a9e8b150a501b
[INFO] testing mostafa630/rusty_grep against 1.95.0 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmostafa630%2Frusty_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] started tweaking git repo https://github.com/mostafa630/rusty_grep
[INFO] finished tweaking git repo https://github.com/mostafa630/rusty_grep
[INFO] tweaked toml for git repo https://github.com/mostafa630/rusty_grep written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mostafa630/rusty_grep on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mostafa630/rusty_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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded syn v2.0.75
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0dc94cd635d8f03c576727e7f1fdf42b9fb89ebf446dd88f8447d7e38b88d805
[INFO] running `Command { std: "docker" "start" "-a" "0dc94cd635d8f03c576727e7f1fdf42b9fb89ebf446dd88f8447d7e38b88d805", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0dc94cd635d8f03c576727e7f1fdf42b9fb89ebf446dd88f8447d7e38b88d805", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0dc94cd635d8f03c576727e7f1fdf42b9fb89ebf446dd88f8447d7e38b88d805", kill_on_drop: false }`
[INFO] [stdout] 0dc94cd635d8f03c576727e7f1fdf42b9fb89ebf446dd88f8447d7e38b88d805
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 54c3ed0e5d924bada7be4f2a041a70dc9dae9722e2c56f267d0ee1cbf7b09e72
[INFO] running `Command { std: "docker" "start" "-a" "54c3ed0e5d924bada7be4f2a041a70dc9dae9722e2c56f267d0ee1cbf7b09e72", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling anyhow v1.0.86
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]    Compiling bytes v1.7.1
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling syn v2.0.75
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling codecrafters-grep v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `io::Read`
[INFO] [stdout]  --> src/Pattern.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     io::Read,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Error`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use anyhow::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Pattern.rs:302:21
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 let mut token;
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/Pattern.rs:399:17
[INFO] [stdout]     |
[INFO] [stdout] 399 |                 _ => Err(ParseError::InvalidAnchorType),
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/Pattern.rs:399:17
[INFO] [stdout]     |
[INFO] [stdout] 393 |                 Anchor::Start => Ok(Some(Token::SOL(tokens))),
[INFO] [stdout]     |                 ------------- matches some of the same values
[INFO] [stdout] 394 |                 Anchor::End => {
[INFO] [stdout]     |                 ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 398 |                 Anchor::Both => Ok(Some(Token::Exact(tokens))),
[INFO] [stdout]     |                 ------------ matches some of the same values
[INFO] [stdout] 399 |                 _ => Err(ParseError::InvalidAnchorType),
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `final_remaning` is never read
[INFO] [stdout]    --> src/Pattern.rs:457:25
[INFO] [stdout]     |
[INFO] [stdout] 457 |                         final_remaning = remaining_str;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_lines` is never used
[INFO] [stdout]   --> src/main.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn print_lines(lines_content: Vec<&String>, file_name: String) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/Pattern.rs:201:14
[INFO] [stdout]     |
[INFO] [stdout] 201 |     Unclosed(String),      // e.g. missing ]
[INFO] [stdout]     |     -------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 201 -     Unclosed(String),      // e.g. missing ]
[INFO] [stdout] 201 +     Unclosed(()),      // e.g. missing ]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/Pattern.rs:202:19
[INFO] [stdout]     |
[INFO] [stdout] 202 |     InvalidEscape(String), // e.g. \q
[INFO] [stdout]     |     ------------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 202 -     InvalidEscape(String), // e.g. \q
[INFO] [stdout] 202 +     InvalidEscape(()), // e.g. \q
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/Pattern.rs:203:19
[INFO] [stdout]     |
[INFO] [stdout] 203 |     UnexpectedEof(String), // e.g. alone \
[INFO] [stdout]     |     ------------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 203 -     UnexpectedEof(String), // e.g. alone \
[INFO] [stdout] 203 +     UnexpectedEof(()), // e.g. alone \
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/Pattern.rs:204:20
[INFO] [stdout]     |
[INFO] [stdout] 204 |     InvalidPattern(String),
[INFO] [stdout]     |     -------------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 204 -     InvalidPattern(String),
[INFO] [stdout] 204 +     InvalidPattern(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/File.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct _File {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 12 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Pattern` should have a snake case name
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod Pattern;
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to snake case: `pattern`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `File` should have a snake case name
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | mod File;
[INFO] [stdout]   |     ^^^^ help: convert the identifier to snake case (notice the capitalization): `file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |             recursive_search(path.to_string_lossy().to_string(), founded_files);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 98 |             let _ = recursive_search(path.to_string_lossy().to_string(), founded_files);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `AnchorType` should have a snake case name
[INFO] [stdout]    --> src/Pattern.rs:381:9
[INFO] [stdout]     |
[INFO] [stdout] 381 |         AnchorType: Anchor,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `anchor_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.85s
[INFO] running `Command { std: "docker" "inspect" "54c3ed0e5d924bada7be4f2a041a70dc9dae9722e2c56f267d0ee1cbf7b09e72", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "54c3ed0e5d924bada7be4f2a041a70dc9dae9722e2c56f267d0ee1cbf7b09e72", kill_on_drop: false }`
[INFO] [stdout] 54c3ed0e5d924bada7be4f2a041a70dc9dae9722e2c56f267d0ee1cbf7b09e72
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f5bb4df2dec48489fcce99137648ade08f190e6e635b69579f8b0cff5ffdd91f
[INFO] running `Command { std: "docker" "start" "-a" "f5bb4df2dec48489fcce99137648ade08f190e6e635b69579f8b0cff5ffdd91f", kill_on_drop: false }`
[INFO] [stderr]    Compiling codecrafters-grep v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `io::Read`
[INFO] [stdout]  --> src/Pattern.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     io::Read,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Error`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use anyhow::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Pattern.rs:302:21
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 let mut token;
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/Pattern.rs:399:17
[INFO] [stdout]     |
[INFO] [stdout] 399 |                 _ => Err(ParseError::InvalidAnchorType),
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/Pattern.rs:399:17
[INFO] [stdout]     |
[INFO] [stdout] 393 |                 Anchor::Start => Ok(Some(Token::SOL(tokens))),
[INFO] [stdout]     |                 ------------- matches some of the same values
[INFO] [stdout] 394 |                 Anchor::End => {
[INFO] [stdout]     |                 ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 398 |                 Anchor::Both => Ok(Some(Token::Exact(tokens))),
[INFO] [stdout]     |                 ------------ matches some of the same values
[INFO] [stdout] 399 |                 _ => Err(ParseError::InvalidAnchorType),
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `final_remaning` is never read
[INFO] [stdout]    --> src/Pattern.rs:457:25
[INFO] [stdout]     |
[INFO] [stdout] 457 |                         final_remaning = remaining_str;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_lines` is never used
[INFO] [stdout]   --> src/main.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn print_lines(lines_content: Vec<&String>, file_name: String) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/Pattern.rs:201:14
[INFO] [stdout]     |
[INFO] [stdout] 201 |     Unclosed(String),      // e.g. missing ]
[INFO] [stdout]     |     -------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 201 -     Unclosed(String),      // e.g. missing ]
[INFO] [stdout] 201 +     Unclosed(()),      // e.g. missing ]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/Pattern.rs:202:19
[INFO] [stdout]     |
[INFO] [stdout] 202 |     InvalidEscape(String), // e.g. \q
[INFO] [stdout]     |     ------------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 202 -     InvalidEscape(String), // e.g. \q
[INFO] [stdout] 202 +     InvalidEscape(()), // e.g. \q
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/Pattern.rs:203:19
[INFO] [stdout]     |
[INFO] [stdout] 203 |     UnexpectedEof(String), // e.g. alone \
[INFO] [stdout]     |     ------------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 203 -     UnexpectedEof(String), // e.g. alone \
[INFO] [stdout] 203 +     UnexpectedEof(()), // e.g. alone \
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/Pattern.rs:204:20
[INFO] [stdout]     |
[INFO] [stdout] 204 |     InvalidPattern(String),
[INFO] [stdout]     |     -------------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 204 -     InvalidPattern(String),
[INFO] [stdout] 204 +     InvalidPattern(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/File.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct _File {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 12 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Pattern` should have a snake case name
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod Pattern;
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to snake case: `pattern`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `File` should have a snake case name
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | mod File;
[INFO] [stdout]   |     ^^^^ help: convert the identifier to snake case (notice the capitalization): `file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |             recursive_search(path.to_string_lossy().to_string(), founded_files);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 98 |             let _ = recursive_search(path.to_string_lossy().to_string(), founded_files);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `AnchorType` should have a snake case name
[INFO] [stdout]    --> src/Pattern.rs:381:9
[INFO] [stdout]     |
[INFO] [stdout] 381 |         AnchorType: Anchor,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `anchor_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.70s
[INFO] running `Command { std: "docker" "inspect" "f5bb4df2dec48489fcce99137648ade08f190e6e635b69579f8b0cff5ffdd91f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f5bb4df2dec48489fcce99137648ade08f190e6e635b69579f8b0cff5ffdd91f", kill_on_drop: false }`
[INFO] [stdout] f5bb4df2dec48489fcce99137648ade08f190e6e635b69579f8b0cff5ffdd91f
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5a3546117dacc763fd8f61b36bf7319512584518c2e828345736124dbee39b8b
[INFO] running `Command { std: "docker" "start" "-a" "5a3546117dacc763fd8f61b36bf7319512584518c2e828345736124dbee39b8b", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `io::Read`
[INFO] [stderr]  --> src/Pattern.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 |     io::Read,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `anyhow::Error`
[INFO] [stderr]   --> src/main.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use anyhow::Error;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/Pattern.rs:302:21
[INFO] [stderr]     |
[INFO] [stderr] 302 |                 let mut token;
[INFO] [stderr]     |                     ----^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/Pattern.rs:399:17
[INFO] [stderr]     |
[INFO] [stderr] 399 |                 _ => Err(ParseError::InvalidAnchorType),
[INFO] [stderr]     |                 ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/Pattern.rs:399:17
[INFO] [stderr]     |
[INFO] [stderr] 393 |                 Anchor::Start => Ok(Some(Token::SOL(tokens))),
[INFO] [stderr]     |                 ------------- matches some of the same values
[INFO] [stderr] 394 |                 Anchor::End => {
[INFO] [stderr]     |                 ----------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 398 |                 Anchor::Both => Ok(Some(Token::Exact(tokens))),
[INFO] [stderr]     |                 ------------ matches some of the same values
[INFO] [stderr] 399 |                 _ => Err(ParseError::InvalidAnchorType),
[INFO] [stderr]     |                 ^ collectively making this unreachable
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `final_remaning` is never read
[INFO] [stderr]    --> src/Pattern.rs:457:25
[INFO] [stderr]     |
[INFO] [stderr] 457 |                         final_remaning = remaining_str;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_lines` is never used
[INFO] [stderr]   --> src/main.rs:73:4
[INFO] [stderr]    |
[INFO] [stderr] 73 | fn print_lines(lines_content: Vec<&String>, file_name: String) {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/Pattern.rs:201:14
[INFO] [stderr]     |
[INFO] [stderr] 201 |     Unclosed(String),      // e.g. missing ]
[INFO] [stderr]     |     -------- ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 201 -     Unclosed(String),      // e.g. missing ]
[INFO] [stderr] 201 +     Unclosed(()),      // e.g. missing ]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/Pattern.rs:202:19
[INFO] [stderr]     |
[INFO] [stderr] 202 |     InvalidEscape(String), // e.g. \q
[INFO] [stderr]     |     ------------- ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 202 -     InvalidEscape(String), // e.g. \q
[INFO] [stderr] 202 +     InvalidEscape(()), // e.g. \q
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/Pattern.rs:203:19
[INFO] [stderr]     |
[INFO] [stderr] 203 |     UnexpectedEof(String), // e.g. alone \
[INFO] [stderr]     |     ------------- ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 203 -     UnexpectedEof(String), // e.g. alone \
[INFO] [stderr] 203 +     UnexpectedEof(()), // e.g. alone \
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/Pattern.rs:204:20
[INFO] [stderr]     |
[INFO] [stderr] 204 |     InvalidPattern(String),
[INFO] [stderr]     |     -------------- ^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     field in this variant
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]     |
[INFO] [stderr] 204 -     InvalidPattern(String),
[INFO] [stderr] 204 +     InvalidPattern(()),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: field `name` is never read
[INFO] [stderr]   --> src/File.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct _File {
[INFO] [stderr]    |            ----- field in this struct
[INFO] [stderr] 12 |     name: String,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: module `Pattern` should have a snake case name
[INFO] [stderr]  --> src/main.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | mod Pattern;
[INFO] [stderr]   |     ^^^^^^^ help: convert the identifier to snake case: `pattern`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: module `File` should have a snake case name
[INFO] [stderr]  --> src/main.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | mod File;
[INFO] [stderr]   |     ^^^^ help: convert the identifier to snake case (notice the capitalization): `file`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:98:13
[INFO] [stderr]    |
[INFO] [stderr] 98 |             recursive_search(path.to_string_lossy().to_string(), founded_files);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 98 |             let _ = recursive_search(path.to_string_lossy().to_string(), founded_files);
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable `AnchorType` should have a snake case name
[INFO] [stderr]    --> src/Pattern.rs:381:9
[INFO] [stderr]     |
[INFO] [stderr] 381 |         AnchorType: Anchor,
[INFO] [stderr]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `anchor_type`
[INFO] [stderr] 
[INFO] [stderr] warning: `codecrafters-grep` (bin "rusty_grep" test) generated 15 warnings (run `cargo fix --bin "rusty_grep" -p codecrafters-grep --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rusty_grep-23cde39289ddc31a)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test Pattern::test_parsing_digit_class ... ok
[INFO] [stdout] test Pattern::test_parsing_alternation ... ok
[INFO] [stdout] test Pattern::test_parsing_combination ... ok
[INFO] [stdout] test Pattern::test_parsing_eol ... ok
[INFO] [stdout] test Pattern::test_parsing_identifier_class ... ok
[INFO] [stdout] test Pattern::test_parsing_literals ... ok
[INFO] [stdout] test Pattern::test_parsing_none_class ... ok
[INFO] [stdout] test Pattern::test_parsing_one_or_more ... ok
[INFO] [stdout] test Pattern::test_parsing_one_or_none ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_combinations ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_digits ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_identifier ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_literals ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_one_or_more ... ok
[INFO] [stdout] test Pattern::test_parsing_one_class ... ok
[INFO] [stdout] test Pattern::test_parsing_sol ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_sol ... ok
[INFO] [stdout] test Pattern::test_parsing_one_or_more_digit ... ok
[INFO] [stdout] test pattern_matcher::test_trigger_hiiii ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_wild_card ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_alternation ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_one_or_more_digit ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_eol ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_one_or_none ... ok
[INFO] [stdout] test pattern_matcher::test_match_pattern_on_exact_match ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "5a3546117dacc763fd8f61b36bf7319512584518c2e828345736124dbee39b8b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5a3546117dacc763fd8f61b36bf7319512584518c2e828345736124dbee39b8b", kill_on_drop: false }`
[INFO] [stdout] 5a3546117dacc763fd8f61b36bf7319512584518c2e828345736124dbee39b8b
