[INFO] cloning repository https://github.com/henrik-knudsen/rust-intro-regex
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/henrik-knudsen/rust-intro-regex" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhenrik-knudsen%2Frust-intro-regex", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhenrik-knudsen%2Frust-intro-regex'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] eaae99f20a2444a1c519347c79c817296febb3e5
[INFO] checking henrik-knudsen/rust-intro-regex against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhenrik-knudsen%2Frust-intro-regex" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/henrik-knudsen/rust-intro-regex
[INFO] finished tweaking git repo https://github.com/henrik-knudsen/rust-intro-regex
[INFO] tweaked toml for git repo https://github.com/henrik-knudsen/rust-intro-regex written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/henrik-knudsen/rust-intro-regex 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/henrik-knudsen/rust-intro-regex 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] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded owo-colors v3.5.0
[INFO] [stderr]   Downloaded regex v1.7.3
[INFO] [stderr]   Downloaded rustix v0.37.11
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 1a2e3df3a0c91709087a90c64b0fbc33d32173a5b9b1566309b154cf952862c6
[INFO] running `Command { std: "docker" "start" "-a" "1a2e3df3a0c91709087a90c64b0fbc33d32173a5b9b1566309b154cf952862c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1a2e3df3a0c91709087a90c64b0fbc33d32173a5b9b1566309b154cf952862c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a2e3df3a0c91709087a90c64b0fbc33d32173a5b9b1566309b154cf952862c6", kill_on_drop: false }`
[INFO] [stdout] 1a2e3df3a0c91709087a90c64b0fbc33d32173a5b9b1566309b154cf952862c6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9cb40acf39531bc9574011319f771c06abebb42fa521b99b6a5d5db61d4fb1c7
[INFO] running `Command { std: "docker" "start" "-a" "9cb40acf39531bc9574011319f771c06abebb42fa521b99b6a5d5db61d4fb1c7", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling libc v0.2.141
[INFO] [stderr]    Compiling rustix v0.37.11
[INFO] [stderr]     Checking linux-raw-sys v0.3.1
[INFO] [stderr]     Checking utf8parse v0.2.1
[INFO] [stderr]     Checking concolor-query v0.3.3
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]     Checking aho-corasick v0.7.20
[INFO] [stderr]     Checking anstyle v0.3.5
[INFO] [stderr]     Checking anstyle-parse v0.1.1
[INFO] [stderr]     Checking concolor-override v1.0.0
[INFO] [stderr]    Compiling syn v2.0.13
[INFO] [stderr]     Checking clap_lex v0.4.1
[INFO] [stderr]    Compiling anyhow v1.0.70
[INFO] [stderr]     Checking owo-colors v3.5.0
[INFO] [stderr]     Checking part3_regexlib v0.1.0 (/opt/rustwide/workdir/part3_regexlib)
[INFO] [stdout] warning: variants `Jump` and `Split` are never constructed
[INFO] [stdout]   --> part3_regexlib/src/compile.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum Instruction {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 60 |     Jump(InstructionPointer),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 61 |     Split(InstructionPointer, InstructionPointer),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Instruction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> part3_regexlib/src/lib.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn find(&self, text: &str) -> Option<Match> {
[INFO] [stdout]    |                 ^^^^^                        ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn find(&self, text: &str) -> Option<Match<'_>> {
[INFO] [stdout]    |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> part3_regexlib/src/lib.rs:44:20
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn find_at(&self, _text: &str, _start: usize) -> Option<Match> {
[INFO] [stdout]    |                    ^^^^^ the lifetime is elided here            ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn find_at(&self, _text: &str, _start: usize) -> Option<Match<'_>> {
[INFO] [stdout]    |                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Jump` and `Split` are never constructed
[INFO] [stdout]   --> part3_regexlib/src/compile.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum Instruction {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 60 |     Jump(InstructionPointer),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 61 |     Split(InstructionPointer, InstructionPointer),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Instruction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> part3_regexlib/src/lib.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn find(&self, text: &str) -> Option<Match> {
[INFO] [stdout]    |                 ^^^^^                        ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn find(&self, text: &str) -> Option<Match<'_>> {
[INFO] [stdout]    |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> part3_regexlib/src/lib.rs:44:20
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn find_at(&self, _text: &str, _start: usize) -> Option<Match> {
[INFO] [stdout]    |                    ^^^^^ the lifetime is elided here            ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn find_at(&self, _text: &str, _start: usize) -> Option<Match<'_>> {
[INFO] [stdout]    |                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking io-lifetimes v1.0.10
[INFO] [stderr]     Checking regex v1.7.3
[INFO] [stderr]     Checking is-terminal v0.4.7
[INFO] [stderr]     Checking anstream v0.2.6
[INFO] [stderr]     Checking part1_fundamentals v0.1.0 (/opt/rustwide/workdir/part1_fundamentals)
[INFO] [stdout] warning: unused import: `Regex`
[INFO] [stdout]  --> part1_fundamentals/src/groups.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use regex::{self, Captures, Regex, RegexBuilder};
[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: `assert_match`
[INFO] [stdout]  --> part1_fundamentals/src/groups.rs:6:47
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use crate::utils::{assert_captured_group, assert_match};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_match` is never used
[INFO] [stdout]  --> part1_fundamentals/src/utils.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn assert_match(captures: &Captures, value: &str) {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_captured_group` is never used
[INFO] [stdout]  --> part1_fundamentals/src/utils.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn assert_captured_group(captures: &Captures, group_index: usize, value: &str) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_captured_group_is_none` is never used
[INFO] [stdout]   --> part1_fundamentals/src/utils.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn assert_captured_group_is_none(captures: &Captures, group_index: usize) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking clap_builder v4.2.1
[INFO] [stderr]    Compiling clap_derive v4.2.0
[INFO] [stderr]     Checking clap v4.2.1
[INFO] [stderr]     Checking part2_grep v0.1.0 (/opt/rustwide/workdir/part2_grep)
[INFO] [stdout] warning: unused import: `fs::read_to_string`
[INFO] [stdout]  --> part2_grep/src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs::read_to_string, path::Path};
[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`
[INFO] [stdout]  --> part2_grep/src/main.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `owo_colors::OwoColorize`
[INFO] [stdout]  --> part2_grep/src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use owo_colors::OwoColorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Match`
[INFO] [stdout]  --> part2_grep/src/main.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use regex::{self, Match, Regex};
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `re`
[INFO] [stdout]   --> part2_grep/src/main.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn search_path(re: &Regex, path: String) -> Result<()> {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_re`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> part2_grep/src/main.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let path = Path::new(&path);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fs::read_to_string`
[INFO] [stdout]  --> part2_grep/src/main.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs::read_to_string, path::Path};
[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`
[INFO] [stdout]  --> part2_grep/src/main.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{anyhow, Result};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `owo_colors::OwoColorize`
[INFO] [stdout]  --> part2_grep/src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use owo_colors::OwoColorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Match`
[INFO] [stdout]  --> part2_grep/src/main.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | use regex::{self, Match, Regex};
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `re`
[INFO] [stdout]   --> part2_grep/src/main.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn search_path(re: &Regex, path: String) -> Result<()> {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_re`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> part2_grep/src/main.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let path = Path::new(&path);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.82s
[INFO] running `Command { std: "docker" "inspect" "9cb40acf39531bc9574011319f771c06abebb42fa521b99b6a5d5db61d4fb1c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9cb40acf39531bc9574011319f771c06abebb42fa521b99b6a5d5db61d4fb1c7", kill_on_drop: false }`
[INFO] [stdout] 9cb40acf39531bc9574011319f771c06abebb42fa521b99b6a5d5db61d4fb1c7
