[INFO] fetching crate perf-focus 1.1.0...
[INFO] checking perf-focus-1.1.0 against try#31561a63598a0f21fc74c024747ef1310fdd2eb2 for pr-133536
[INFO] extracting crate perf-focus 1.1.0 into /workspace/builds/worker-5-tc2/source
[INFO] validating manifest of crates.io crate perf-focus 1.1.0 on toolchain 31561a63598a0f21fc74c024747ef1310fdd2eb2
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+31561a63598a0f21fc74c024747ef1310fdd2eb2" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate perf-focus 1.1.0
[INFO] finished tweaking crates.io crate perf-focus 1.1.0
[INFO] tweaked toml for crates.io crate perf-focus 1.1.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+31561a63598a0f21fc74c024747ef1310fdd2eb2" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 17 packages to latest compatible versions
[INFO] [stderr]       Adding itertools v0.7.11 (available: v0.13.0)
[INFO] [stderr]       Adding petgraph v0.4.13 (available: v0.6.5)
[INFO] [stderr]       Adding regex v0.1.80 (available: v1.11.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+31561a63598a0f21fc74c024747ef1310fdd2eb2" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+31561a63598a0f21fc74c024747ef1310fdd2eb2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 72967dd4238ecc704e4c885de80a259cae983e5d4b45005a61004c1e810c24eb
[INFO] running `Command { std: "docker" "start" "-a" "72967dd4238ecc704e4c885de80a259cae983e5d4b45005a61004c1e810c24eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "72967dd4238ecc704e4c885de80a259cae983e5d4b45005a61004c1e810c24eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "72967dd4238ecc704e4c885de80a259cae983e5d4b45005a61004c1e810c24eb", kill_on_drop: false }`
[INFO] [stdout] 72967dd4238ecc704e4c885de80a259cae983e5d4b45005a61004c1e810c24eb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+31561a63598a0f21fc74c024747ef1310fdd2eb2" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dec40b1f2587d6c088bf2ed38f616932ea5bb372b14f43f8592c42b21a957408
[INFO] running `Command { std: "docker" "start" "-a" "dec40b1f2587d6c088bf2ed38f616932ea5bb372b14f43f8592c42b21a957408", 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 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.3.5
[INFO] [stderr]     Checking fixedbitset v0.1.9
[INFO] [stderr]     Checking either v1.13.0
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]     Checking itertools v0.7.11
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking petgraph v0.4.13
[INFO] [stderr]     Checking regex v0.1.80
[INFO] [stderr]     Checking rusty-peg v0.4.0
[INFO] [stderr]     Checking perf-focus v1.1.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] 53 | |     }
[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] 53 | |     }
[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] 53 | |     }
[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] 53 | |     }
[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/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/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] 53 | |     }
[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/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] 53 | |     }
[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] 53 | |     }
[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] 53 | |     }
[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] 53 | |     }
[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: 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] 53 | |     }
[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] 53 | |     }
[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] 53 | |     }
[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] 53 | |     }
[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] 53 | |     }
[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] 53 | |     }
[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] 53 | |     }
[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/nightly/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/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/nightly/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/nightly/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/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/nightly/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/nightly/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/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/nightly/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/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/nightly/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/nightly/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/nightly/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: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/nightly/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: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/nightly/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/nightly/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: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/nightly/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: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/nightly/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: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/nightly/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: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/nightly/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: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/nightly/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/nightly/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/nightly/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/nightly/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/nightly/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/nightly/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/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/nightly/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/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/nightly/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] 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] 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[E0599]: no method named `len` found for struct `TraceArgs` 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] 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" "dec40b1f2587d6c088bf2ed38f616932ea5bb372b14f43f8592c42b21a957408", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dec40b1f2587d6c088bf2ed38f616932ea5bb372b14f43f8592c42b21a957408", kill_on_drop: false }`
[INFO] [stdout] dec40b1f2587d6c088bf2ed38f616932ea5bb372b14f43f8592c42b21a957408
