[INFO] cloning repository https://github.com/nikomatsakis/perf-focus
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nikomatsakis/perf-focus" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnikomatsakis%2Fperf-focus", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnikomatsakis%2Fperf-focus'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7840f74fa34d6904a41c78a093de47096377837a
[INFO] checking nikomatsakis/perf-focus/7840f74fa34d6904a41c78a093de47096377837a against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145342
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnikomatsakis%2Fperf-focus" "/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/nikomatsakis/perf-focus
[INFO] finished tweaking git repo https://github.com/nikomatsakis/perf-focus
[INFO] tweaked toml for git repo https://github.com/nikomatsakis/perf-focus written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nikomatsakis/perf-focus on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nikomatsakis/perf-focus 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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fixedbitset v0.1.7
[INFO] [stderr]   Downloaded ordermap v0.2.10
[INFO] [stderr]   Downloaded rusty-peg v0.4.0
[INFO] [stderr]   Downloaded petgraph v0.4.5
[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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 35c0ad9563106a2a4048787e635fdbe14d336722266a8ad5464fe692e6e5520a
[INFO] running `Command { std: "docker" "start" "-a" "35c0ad9563106a2a4048787e635fdbe14d336722266a8ad5464fe692e6e5520a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "35c0ad9563106a2a4048787e635fdbe14d336722266a8ad5464fe692e6e5520a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "35c0ad9563106a2a4048787e635fdbe14d336722266a8ad5464fe692e6e5520a", kill_on_drop: false }`
[INFO] [stdout] 35c0ad9563106a2a4048787e635fdbe14d336722266a8ad5464fe692e6e5520a
[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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 695a123da65a595105204f81ff74863b244bfb9bfd0a5dcfcf60f9c846204df8
[INFO] running `Command { std: "docker" "start" "-a" "695a123da65a595105204f81ff74863b244bfb9bfd0a5dcfcf60f9c846204df8", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking libc v0.2.29
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking regex-syntax v0.3.9
[INFO] [stderr]     Checking utf8-ranges v0.1.3
[INFO] [stderr]     Checking ordermap v0.2.10
[INFO] [stderr]     Checking fixedbitset v0.1.7
[INFO] [stderr]     Checking either v1.4.0
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]     Checking itertools v0.7.6
[INFO] [stderr]     Checking petgraph v0.4.5
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]     Checking regex v0.1.80
[INFO] [stderr]     Checking rusty-peg v0.4.0
[INFO] [stderr]     Checking perf-focus v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/graph/mod.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 109 |         try!(write!(out, "digraph G {{\n"));
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/graph/mod.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |         try!(write!(out, "  node [ shape=box ];"));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/graph/mod.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |         try!(write!(out, "}}\n"));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/graph/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             try!(write!(out, "  n{} -> n{} [label=\"{}%\"];\n",
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/graph/mod.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |                 try!(write!(out, "  n{} [label=\"{} ({}%)\"];\n",
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:418:35
[INFO] [stdout]     |
[INFO] [stdout] 418 |     let mut file = BufWriter::new(try!(File::create(graph_file)));
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/mod.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |     object: Box<MatcherTrait>,
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 71 |     object: Box<dyn MatcherTrait>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/graph/mod.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 109 |         try!(write!(out, "digraph G {{\n"));
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/graph/mod.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |         try!(write!(out, "  node [ shape=box ];"));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/graph/mod.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |         try!(write!(out, "}}\n"));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/graph/mod.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             try!(write!(out, "  n{} -> n{} [label=\"{}%\"];\n",
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/graph/mod.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |                 try!(write!(out, "  n{} [label=\"{} ({}%)\"];\n",
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/trace/mod.rs:35:35
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn each_trace_impl<F>(stdin: &mut BufRead, mut callback: F) -> io::Result<()>
[INFO] [stdout]    |                                   ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn each_trace_impl<F>(stdin: &mut dyn BufRead, mut callback: F) -> io::Result<()>
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:155:35
[INFO] [stdout]     |
[INFO] [stdout] 155 |     fn clone_object(&self) -> Box<MatcherTrait>;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 155 |     fn clone_object(&self) -> Box<dyn MatcherTrait>;
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/matcher/parser.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / rusty_peg! {
[INFO] [stdout]  7 | |     parser Parser<'input> {
[INFO] [stdout]  8 | |         MATCHER: Matcher = (
[INFO] [stdout]  9 | |             MATCHER_COMMA_MATCHER /
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `rusty_peg_declare_map_nonterminal` which comes from the expansion of the macro `rusty_peg` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/main.rs:418:35
[INFO] [stdout]     |
[INFO] [stdout] 418 |     let mut file = BufWriter::new(try!(File::create(graph_file)));
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:196:35
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:233:35
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:263:35
[INFO] [stdout]     |
[INFO] [stdout] 263 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 263 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:296:35
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:332:35
[INFO] [stdout]     |
[INFO] [stdout] 332 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 332 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:369:35
[INFO] [stdout]     |
[INFO] [stdout] 369 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 369 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:412:35
[INFO] [stdout]     |
[INFO] [stdout] 412 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 412 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:452:35
[INFO] [stdout]     |
[INFO] [stdout] 452 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 452 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/matcher/mod.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |     object: Box<MatcherTrait>,
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 71 |     object: Box<dyn MatcherTrait>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/graph/mod.rs:108:34
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn dump(&self, out: &mut Write) -> Result<()> {
[INFO] [stdout]     |                                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn dump(&self, out: &mut dyn Write) -> Result<()> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/trace/mod.rs:35:35
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn each_trace_impl<F>(stdin: &mut BufRead, mut callback: F) -> io::Result<()>
[INFO] [stdout]    |                                   ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn each_trace_impl<F>(stdin: &mut dyn BufRead, mut callback: F) -> io::Result<()>
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:155:35
[INFO] [stdout]     |
[INFO] [stdout] 155 |     fn clone_object(&self) -> Box<MatcherTrait>;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 155 |     fn clone_object(&self) -> Box<dyn MatcherTrait>;
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:196:35
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:233:35
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:263:35
[INFO] [stdout]     |
[INFO] [stdout] 263 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 263 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:296:35
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:332:35
[INFO] [stdout]     |
[INFO] [stdout] 332 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 332 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:369:35
[INFO] [stdout]     |
[INFO] [stdout] 369 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 369 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:412:35
[INFO] [stdout]     |
[INFO] [stdout] 412 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 412 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/matcher/mod.rs:452:35
[INFO] [stdout]     |
[INFO] [stdout] 452 |     fn clone_object(&self) -> Box<MatcherTrait> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 452 |     fn clone_object(&self) -> Box<dyn MatcherTrait> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/graph/mod.rs:108:34
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn dump(&self, out: &mut Write) -> Result<()> {
[INFO] [stdout]     |                                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn dump(&self, out: &mut dyn Write) -> Result<()> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]   --> src/trace/mod.rs:64:26
[INFO] [stdout]    |
[INFO] [stdout] 64 |                         .intersperse(" ")
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]    = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]    = note: `#[warn(unstable_name_collisions)]` on by default
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]   --> src/main.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 + #![feature(iter_intersperse)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `matcher::Matcher: matcher::MatcherTrait` is not satisfied
[INFO] [stdout]   --> src/matcher/test.rs:6:26
[INFO] [stdout]    |
[INFO] [stdout]  6 |     let m = Matcher::new(RegexMatcher::new("b"));
[INFO] [stdout]    |             ------------ ^^^^^^^^^^^^^^^^^^^^^^ the trait `matcher::MatcherTrait` is not implemented for `matcher::Matcher`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `matcher::MatcherTrait`:
[INFO] [stdout]              EmptyMatcher
[INFO] [stdout]              matcher::NotMatcher
[INFO] [stdout]              matcher::OrMatcher
[INFO] [stdout]              matcher::ParenMatcher
[INFO] [stdout]              matcher::RegexMatcher
[INFO] [stdout]              matcher::SkipMatcher
[INFO] [stdout]              matcher::ThenMatcher
[INFO] [stdout]              matcher::WildcardMatcher
[INFO] [stdout] note: required by a bound in `matcher::Matcher::new`
[INFO] [stdout]   --> src/matcher/mod.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn new<M: MatcherTrait + 'static>(m: M) -> Matcher {
[INFO] [stdout]    |               ^^^^^^^^^^^^ required by this bound in `Matcher::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `prefix` on type `SearchResult`
[INFO] [stdout]  --> src/matcher/test.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 |     assert_eq!(r.prefix, &[format!("a")]);
[INFO] [stdout]   |                  ^^^^^^ unknown field
[INFO] [stdout]   |
[INFO] [stdout]   = note: available fields are: `first_matching_frame`, `first_callee_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `suffix` on type `SearchResult`
[INFO] [stdout]  --> src/matcher/test.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 |     assert_eq!(r.suffix, &[format!("c")]);
[INFO] [stdout]   |                  ^^^^^^ unknown field
[INFO] [stdout]   |
[INFO] [stdout]   = note: available fields are: `first_matching_frame`, `first_callee_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `matcher::Matcher: matcher::MatcherTrait` is not satisfied
[INFO] [stdout]   --> src/matcher/test.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |                 Matcher::new(RegexMatcher::new("b")),
[INFO] [stdout]    |                 ------------ ^^^^^^^^^^^^^^^^^^^^^^ the trait `matcher::MatcherTrait` is not implemented for `matcher::Matcher`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `matcher::MatcherTrait`:
[INFO] [stdout]              EmptyMatcher
[INFO] [stdout]              matcher::NotMatcher
[INFO] [stdout]              matcher::OrMatcher
[INFO] [stdout]              matcher::ParenMatcher
[INFO] [stdout]              matcher::RegexMatcher
[INFO] [stdout]              matcher::SkipMatcher
[INFO] [stdout]              matcher::ThenMatcher
[INFO] [stdout]              matcher::WildcardMatcher
[INFO] [stdout] note: required by a bound in `matcher::Matcher::new`
[INFO] [stdout]   --> src/matcher/mod.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn new<M: MatcherTrait + 'static>(m: M) -> Matcher {
[INFO] [stdout]    |               ^^^^^^^^^^^^ required by this bound in `Matcher::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `matcher::Matcher: matcher::MatcherTrait` is not satisfied
[INFO] [stdout]   --> src/matcher/test.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |                 Matcher::new(RegexMatcher::new("c"))));
[INFO] [stdout]    |                 ------------ ^^^^^^^^^^^^^^^^^^^^^^ the trait `matcher::MatcherTrait` is not implemented for `matcher::Matcher`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `matcher::MatcherTrait`:
[INFO] [stdout]              EmptyMatcher
[INFO] [stdout]              matcher::NotMatcher
[INFO] [stdout]              matcher::OrMatcher
[INFO] [stdout]              matcher::ParenMatcher
[INFO] [stdout]              matcher::RegexMatcher
[INFO] [stdout]              matcher::SkipMatcher
[INFO] [stdout]              matcher::ThenMatcher
[INFO] [stdout]              matcher::WildcardMatcher
[INFO] [stdout] note: required by a bound in `matcher::Matcher::new`
[INFO] [stdout]   --> src/matcher/mod.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn new<M: MatcherTrait + 'static>(m: M) -> Matcher {
[INFO] [stdout]    |               ^^^^^^^^^^^^ required by this bound in `Matcher::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `matcher::Matcher: matcher::MatcherTrait` is not satisfied
[INFO] [stdout]   --> src/matcher/test.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |           Matcher::new(
[INFO] [stdout]    |           ------------ required by a bound introduced by this call
[INFO] [stdout] 17 | /             ThenMatcher::new(
[INFO] [stdout] 18 | |                 Matcher::new(RegexMatcher::new("b")),
[INFO] [stdout] 19 | |                 Matcher::new(RegexMatcher::new("c"))));
[INFO] [stdout]    | |_____________________________________________________^ the trait `matcher::MatcherTrait` is not implemented for `matcher::Matcher`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `matcher::MatcherTrait`:
[INFO] [stdout]              EmptyMatcher
[INFO] [stdout]              matcher::NotMatcher
[INFO] [stdout]              matcher::OrMatcher
[INFO] [stdout]              matcher::ParenMatcher
[INFO] [stdout]              matcher::RegexMatcher
[INFO] [stdout]              matcher::SkipMatcher
[INFO] [stdout]              matcher::ThenMatcher
[INFO] [stdout]              matcher::WildcardMatcher
[INFO] [stdout] note: required by a bound in `matcher::Matcher::new`
[INFO] [stdout]   --> src/matcher/mod.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn new<M: MatcherTrait + 'static>(m: M) -> Matcher {
[INFO] [stdout]    |               ^^^^^^^^^^^^ required by this bound in `Matcher::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `prefix` on type `SearchResult`
[INFO] [stdout]   --> src/matcher/test.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 |     assert_eq!(r.prefix, &[format!("a")]);
[INFO] [stdout]    |                  ^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `first_matching_frame`, `first_callee_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `suffix` on type `SearchResult`
[INFO] [stdout]   --> src/matcher/test.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     assert!(r.suffix.is_empty());
[INFO] [stdout]    |               ^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `first_matching_frame`, `first_callee_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `matcher::Matcher: matcher::MatcherTrait` is not satisfied
[INFO] [stdout]   --> src/matcher/test.rs:31:30
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 Matcher::new(RegexMatcher::new("a")),
[INFO] [stdout]    |                 ------------ ^^^^^^^^^^^^^^^^^^^^^^ the trait `matcher::MatcherTrait` is not implemented for `matcher::Matcher`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `matcher::MatcherTrait`:
[INFO] [stdout]              EmptyMatcher
[INFO] [stdout]              matcher::NotMatcher
[INFO] [stdout]              matcher::OrMatcher
[INFO] [stdout]              matcher::ParenMatcher
[INFO] [stdout]              matcher::RegexMatcher
[INFO] [stdout]              matcher::SkipMatcher
[INFO] [stdout]              matcher::ThenMatcher
[INFO] [stdout]              matcher::WildcardMatcher
[INFO] [stdout] note: required by a bound in `matcher::Matcher::new`
[INFO] [stdout]   --> src/matcher/mod.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn new<M: MatcherTrait + 'static>(m: M) -> Matcher {
[INFO] [stdout]    |               ^^^^^^^^^^^^ required by this bound in `Matcher::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `matcher::Matcher: matcher::MatcherTrait` is not satisfied
[INFO] [stdout]   --> src/matcher/test.rs:32:30
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 Matcher::new(RegexMatcher::new("c"))));
[INFO] [stdout]    |                 ------------ ^^^^^^^^^^^^^^^^^^^^^^ the trait `matcher::MatcherTrait` is not implemented for `matcher::Matcher`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `matcher::MatcherTrait`:
[INFO] [stdout]              EmptyMatcher
[INFO] [stdout]              matcher::NotMatcher
[INFO] [stdout]              matcher::OrMatcher
[INFO] [stdout]              matcher::ParenMatcher
[INFO] [stdout]              matcher::RegexMatcher
[INFO] [stdout]              matcher::SkipMatcher
[INFO] [stdout]              matcher::ThenMatcher
[INFO] [stdout]              matcher::WildcardMatcher
[INFO] [stdout] note: required by a bound in `matcher::Matcher::new`
[INFO] [stdout]   --> src/matcher/mod.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn new<M: MatcherTrait + 'static>(m: M) -> Matcher {
[INFO] [stdout]    |               ^^^^^^^^^^^^ required by this bound in `Matcher::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `matcher::Matcher: matcher::MatcherTrait` is not satisfied
[INFO] [stdout]   --> src/matcher/test.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |           Matcher::new(
[INFO] [stdout]    |           ------------ required by a bound introduced by this call
[INFO] [stdout] 30 | /             ThenMatcher::new(
[INFO] [stdout] 31 | |                 Matcher::new(RegexMatcher::new("a")),
[INFO] [stdout] 32 | |                 Matcher::new(RegexMatcher::new("c"))));
[INFO] [stdout]    | |_____________________________________________________^ the trait `matcher::MatcherTrait` is not implemented for `matcher::Matcher`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `matcher::MatcherTrait`:
[INFO] [stdout]              EmptyMatcher
[INFO] [stdout]              matcher::NotMatcher
[INFO] [stdout]              matcher::OrMatcher
[INFO] [stdout]              matcher::ParenMatcher
[INFO] [stdout]              matcher::RegexMatcher
[INFO] [stdout]              matcher::SkipMatcher
[INFO] [stdout]              matcher::ThenMatcher
[INFO] [stdout]              matcher::WildcardMatcher
[INFO] [stdout] note: required by a bound in `matcher::Matcher::new`
[INFO] [stdout]   --> src/matcher/mod.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn new<M: MatcherTrait + 'static>(m: M) -> Matcher {
[INFO] [stdout]    |               ^^^^^^^^^^^^ required by this bound in `Matcher::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `matcher::Matcher: matcher::MatcherTrait` is not satisfied
[INFO] [stdout]   --> src/matcher/test.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 Matcher::new(RegexMatcher::new("a")),
[INFO] [stdout]    |                 ------------ ^^^^^^^^^^^^^^^^^^^^^^ the trait `matcher::MatcherTrait` is not implemented for `matcher::Matcher`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `matcher::MatcherTrait`:
[INFO] [stdout]              EmptyMatcher
[INFO] [stdout]              matcher::NotMatcher
[INFO] [stdout]              matcher::OrMatcher
[INFO] [stdout]              matcher::ParenMatcher
[INFO] [stdout]              matcher::RegexMatcher
[INFO] [stdout]              matcher::SkipMatcher
[INFO] [stdout]              matcher::ThenMatcher
[INFO] [stdout]              matcher::WildcardMatcher
[INFO] [stdout] note: required by a bound in `matcher::Matcher::new`
[INFO] [stdout]   --> src/matcher/mod.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn new<M: MatcherTrait + 'static>(m: M) -> Matcher {
[INFO] [stdout]    |               ^^^^^^^^^^^^ required by this bound in `Matcher::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `matcher::Matcher: matcher::MatcherTrait` is not satisfied
[INFO] [stdout]   --> src/matcher/test.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |                     Matcher::new(RegexMatcher::new("c"))))));
[INFO] [stdout]    |                     ------------ ^^^^^^^^^^^^^^^^^^^^^^ the trait `matcher::MatcherTrait` is not implemented for `matcher::Matcher`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `matcher::MatcherTrait`:
[INFO] [stdout]              EmptyMatcher
[INFO] [stdout]              matcher::NotMatcher
[INFO] [stdout]              matcher::OrMatcher
[INFO] [stdout]              matcher::ParenMatcher
[INFO] [stdout]              matcher::RegexMatcher
[INFO] [stdout]              matcher::SkipMatcher
[INFO] [stdout]              matcher::ThenMatcher
[INFO] [stdout]              matcher::WildcardMatcher
[INFO] [stdout] note: required by a bound in `matcher::Matcher::new`
[INFO] [stdout]   --> src/matcher/mod.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn new<M: MatcherTrait + 'static>(m: M) -> Matcher {
[INFO] [stdout]    |               ^^^^^^^^^^^^ required by this bound in `Matcher::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `matcher::Matcher: matcher::MatcherTrait` is not satisfied
[INFO] [stdout]   --> src/matcher/test.rs:42:30
[INFO] [stdout]    |
[INFO] [stdout] 42 |                   Matcher::new(SkipMatcher::new(
[INFO] [stdout]    |  _________________------------_^
[INFO] [stdout]    | |                 |
[INFO] [stdout]    | |                 required by a bound introduced by this call
[INFO] [stdout] 43 | |                     Matcher::new(RegexMatcher::new("c"))))));
[INFO] [stdout]    | |_________________________________________________________^ the trait `matcher::MatcherTrait` is not implemented for `matcher::Matcher`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `matcher::MatcherTrait`:
[INFO] [stdout]              EmptyMatcher
[INFO] [stdout]              matcher::NotMatcher
[INFO] [stdout]              matcher::OrMatcher
[INFO] [stdout]              matcher::ParenMatcher
[INFO] [stdout]              matcher::RegexMatcher
[INFO] [stdout]              matcher::SkipMatcher
[INFO] [stdout]              matcher::ThenMatcher
[INFO] [stdout]              matcher::WildcardMatcher
[INFO] [stdout] note: required by a bound in `matcher::Matcher::new`
[INFO] [stdout]   --> src/matcher/mod.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn new<M: MatcherTrait + 'static>(m: M) -> Matcher {
[INFO] [stdout]    |               ^^^^^^^^^^^^ required by this bound in `Matcher::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `matcher::Matcher: matcher::MatcherTrait` is not satisfied
[INFO] [stdout]   --> src/matcher/test.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |           Matcher::new(
[INFO] [stdout]    |           ------------ required by a bound introduced by this call
[INFO] [stdout] 40 | /             ThenMatcher::new(
[INFO] [stdout] 41 | |                 Matcher::new(RegexMatcher::new("a")),
[INFO] [stdout] 42 | |                 Matcher::new(SkipMatcher::new(
[INFO] [stdout] 43 | |                     Matcher::new(RegexMatcher::new("c"))))));
[INFO] [stdout]    | |___________________________________________________________^ the trait `matcher::MatcherTrait` is not implemented for `matcher::Matcher`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `matcher::MatcherTrait`:
[INFO] [stdout]              EmptyMatcher
[INFO] [stdout]              matcher::NotMatcher
[INFO] [stdout]              matcher::OrMatcher
[INFO] [stdout]              matcher::ParenMatcher
[INFO] [stdout]              matcher::RegexMatcher
[INFO] [stdout]              matcher::SkipMatcher
[INFO] [stdout]              matcher::ThenMatcher
[INFO] [stdout]              matcher::WildcardMatcher
[INFO] [stdout] note: required by a bound in `matcher::Matcher::new`
[INFO] [stdout]   --> src/matcher/mod.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn new<M: MatcherTrait + 'static>(m: M) -> Matcher {
[INFO] [stdout]    |               ^^^^^^^^^^^^ required by this bound in `Matcher::new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `prefix` on type `SearchResult`
[INFO] [stdout]   --> src/matcher/test.rs:46:24
[INFO] [stdout]    |
[INFO] [stdout] 46 |              .unwrap().prefix.len() == 0);
[INFO] [stdout]    |                        ^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `first_matching_frame`, `first_callee_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `prefix` on type `SearchResult`
[INFO] [stdout]   --> src/matcher/test.rs:49:24
[INFO] [stdout]    |
[INFO] [stdout] 49 |              .unwrap().prefix.len() == 1);
[INFO] [stdout]    |                        ^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `first_matching_frame`, `first_callee_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `prefix` on type `SearchResult`
[INFO] [stdout]   --> src/matcher/test.rs:52:24
[INFO] [stdout]    |
[INFO] [stdout] 52 |              .unwrap().prefix.len() == 1);
[INFO] [stdout]    |                        ^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `first_matching_frame`, `first_callee_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `prefix` on type `SearchResult`
[INFO] [stdout]   --> src/matcher/test.rs:60:24
[INFO] [stdout]    |
[INFO] [stdout] 60 |              .unwrap().prefix.len() == 0);
[INFO] [stdout]    |                        ^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `first_matching_frame`, `first_callee_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `prefix` on type `SearchResult`
[INFO] [stdout]   --> src/matcher/test.rs:63:24
[INFO] [stdout]    |
[INFO] [stdout] 63 |              .unwrap().prefix.len() == 1);
[INFO] [stdout]    |                        ^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `first_matching_frame`, `first_callee_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `prefix` on type `SearchResult`
[INFO] [stdout]   --> src/matcher/test.rs:66:24
[INFO] [stdout]    |
[INFO] [stdout] 66 |              .unwrap().prefix.len() == 1);
[INFO] [stdout]    |                        ^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `first_matching_frame`, `first_callee_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `prefix` on type `SearchResult`
[INFO] [stdout]   --> src/matcher/test.rs:77:24
[INFO] [stdout]    |
[INFO] [stdout] 77 |              .unwrap().prefix.len() == 0);
[INFO] [stdout]    |                        ^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `first_matching_frame`, `first_callee_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `len` found for struct `TraceArgs<'a>` in the current scope
[INFO] [stdout]  --> src/trace/test.rs:9:34
[INFO] [stdout]   |
[INFO] [stdout] 9 |         frame_counts.push(frames.len());
[INFO] [stdout]   |                                  ^^^ method not found in `TraceArgs<'_>`
[INFO] [stdout]   |
[INFO] [stdout]  ::: src/trace/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct TraceArgs<'a> {
[INFO] [stdout]   | ------------------------ method `len` not found for this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]   = note: the following traits define an item `len`, perhaps you need to implement one of them:
[INFO] [stdout]           candidate #1: `ExactSizeIterator`
[INFO] [stdout]           candidate #2: `aho_corasick::autiter::Automaton`
[INFO] [stdout]           candidate #3: `regex::internal::Input`
[INFO] [stdout] help: some of the expressions' fields have a method of the same name
[INFO] [stdout]   |
[INFO] [stdout] 9 |         frame_counts.push(frames.header.len());
[INFO] [stdout]   |                                  +++++++
[INFO] [stdout] 9 |         frame_counts.push(frames.process_name.len());
[INFO] [stdout]   |                                  +++++++++++++
[INFO] [stdout] 9 |         frame_counts.push(frames.stack.len());
[INFO] [stdout]   |                                  ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/trace/test.rs:8:16
[INFO] [stdout]    |
[INFO] [stdout]  8 |     each_trace(cursor, |frames| {
[INFO] [stdout]    |     ---------- ^^^^^^ expected `bool`, found `Cursor<&[u8]>`
[INFO] [stdout]    |     |
[INFO] [stdout]    |     arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type `bool`
[INFO] [stdout]             found struct `std::io::Cursor<&[u8]>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]   --> src/trace/mod.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn each_trace<F>(from_stdin: bool, callback: F) -> io::Result<()>
[INFO] [stdout]    |        ^^^^^^^^^^    ----------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]   --> src/trace/mod.rs:64:26
[INFO] [stdout]    |
[INFO] [stdout] 64 |                         .intersperse(" ")
[INFO] [stdout]    |                          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]    = help: call with fully qualified syntax `itertools::Itertools::intersperse(...)` to keep using the current method
[INFO] [stdout]    = note: `#[warn(unstable_name_collisions)]` on by default
[INFO] [stdout] help: add `#![feature(iter_intersperse)]` to the crate attributes to enable `std::iter::Iterator::intersperse`
[INFO] [stdout]   --> src/main.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 + #![feature(iter_intersperse)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `for_each_leaf` is never used
[INFO] [stdout]   --> src/tree/mod.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Tree {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn for_each_leaf<F>(&self, mut f: F)
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `for_each_leaf` is never used
[INFO] [stdout]    --> src/tree/mod.rs:197:8
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl TreeNode {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 197 |     fn for_each_leaf<F>(&self, f: &mut F)
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/matcher/mod.rs:56:25
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_matcher(s: &str) -> Result<Matcher, rusty_peg::Error> {
[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] 56 | pub fn parse_matcher(s: &str) -> Result<Matcher, rusty_peg::Error<'_>> {
[INFO] [stdout]    |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `perf-focus` (bin "perf-focus" test) due to 24 previous errors; 27 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "695a123da65a595105204f81ff74863b244bfb9bfd0a5dcfcf60f9c846204df8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "695a123da65a595105204f81ff74863b244bfb9bfd0a5dcfcf60f9c846204df8", kill_on_drop: false }`
[INFO] [stdout] 695a123da65a595105204f81ff74863b244bfb9bfd0a5dcfcf60f9c846204df8
