[INFO] fetching crate bf 0.4.8...
[INFO] testing bf-0.4.8 against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7
[INFO] extracting crate bf 0.4.8 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate bf 0.4.8
[INFO] finished tweaking crates.io crate bf 0.4.8
[INFO] tweaked toml for crates.io crate bf 0.4.8 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate bf 0.4.8 on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 36 packages to latest compatible versions
[INFO] [stderr]       Adding clap v2.34.0 (available: v4.5.51)
[INFO] [stderr]       Adding dynasm v0.2.3 (available: v4.0.1)
[INFO] [stderr]       Adding dynasmrt v0.2.3 (available: v4.0.1)
[INFO] [stderr]       Adding llvm-sys v38.3.0 (available: v211.0.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "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-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 53fa7c5b346b8db4b49da476c2c202da29ff77f381c84ad6b9df7fb8b4f6641e
[INFO] running `Command { std: "docker" "start" "-a" "53fa7c5b346b8db4b49da476c2c202da29ff77f381c84ad6b9df7fb8b4f6641e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "53fa7c5b346b8db4b49da476c2c202da29ff77f381c84ad6b9df7fb8b4f6641e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53fa7c5b346b8db4b49da476c2c202da29ff77f381c84ad6b9df7fb8b4f6641e", kill_on_drop: false }`
[INFO] [stdout] 53fa7c5b346b8db4b49da476c2c202da29ff77f381c84ad6b9df7fb8b4f6641e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8c1ffea0219c1fba095a90e00dd99a0786cafc5f4050c5707ae730284fffccde
[INFO] running `Command { std: "docker" "start" "-a" "8c1ffea0219c1fba095a90e00dd99a0786cafc5f4050c5707ae730284fffccde", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling bf v0.4.8 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rts.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 |     input:  &'a mut Read,
[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)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     input:  &'a mut dyn Read,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rts.rs:30:21
[INFO] [stdout]    |
[INFO] [stdout] 30 |     output: &'a mut Write,
[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] 30 |     output: &'a mut dyn Write,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/ast/parser.rs:25:50
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse_instruction<'a>(mut input: &'a [u8]) -> Parser<Option<Statement>> {
[INFO] [stdout]    |                                      --          ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      the lifetime is named 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: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse_instruction<'a>(mut input: &'a [u8]) -> Parser<'a, Option<Statement>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast/parser.rs:68:34
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn parse_instructions(mut input: &[u8]) -> Parser<Box<Program>> {
[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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn parse_instructions(mut input: &[u8]) -> Parser<'_, Box<Program>> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.39s
[INFO] running `Command { std: "docker" "inspect" "8c1ffea0219c1fba095a90e00dd99a0786cafc5f4050c5707ae730284fffccde", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8c1ffea0219c1fba095a90e00dd99a0786cafc5f4050c5707ae730284fffccde", kill_on_drop: false }`
[INFO] [stdout] 8c1ffea0219c1fba095a90e00dd99a0786cafc5f4050c5707ae730284fffccde
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 316313c416be4afa2b2f792146f0666c3737f2aa3708fd7676e3b567cda43d68
[INFO] running `Command { std: "docker" "start" "-a" "316313c416be4afa2b2f792146f0666c3737f2aa3708fd7676e3b567cda43d68", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rts.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 |     input:  &'a mut Read,
[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)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     input:  &'a mut dyn Read,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rts.rs:30:21
[INFO] [stdout]    |
[INFO] [stdout] 30 |     output: &'a mut Write,
[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] 30 |     output: &'a mut dyn Write,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/ast/parser.rs:25:50
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse_instruction<'a>(mut input: &'a [u8]) -> Parser<Option<Statement>> {
[INFO] [stdout]    |                                      --          ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      the lifetime is named 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: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse_instruction<'a>(mut input: &'a [u8]) -> Parser<'a, Option<Statement>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast/parser.rs:68:34
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn parse_instructions(mut input: &[u8]) -> Parser<Box<Program>> {
[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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn parse_instructions(mut input: &[u8]) -> Parser<'_, Box<Program>> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling bf v0.4.8 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rts.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 |     input:  &'a mut Read,
[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)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     input:  &'a mut dyn Read,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rts.rs:30:21
[INFO] [stdout]    |
[INFO] [stdout] 30 |     output: &'a mut Write,
[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] 30 |     output: &'a mut dyn Write,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/ast/parser.rs:25:50
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse_instruction<'a>(mut input: &'a [u8]) -> Parser<Option<Statement>> {
[INFO] [stdout]    |                                      --          ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      the lifetime is named 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: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse_instruction<'a>(mut input: &'a [u8]) -> Parser<'a, Option<Statement>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast/parser.rs:68:34
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn parse_instructions(mut input: &[u8]) -> Parser<Box<Program>> {
[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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn parse_instructions(mut input: &[u8]) -> Parser<'_, Box<Program>> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.89s
[INFO] running `Command { std: "docker" "inspect" "316313c416be4afa2b2f792146f0666c3737f2aa3708fd7676e3b567cda43d68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "316313c416be4afa2b2f792146f0666c3737f2aa3708fd7676e3b567cda43d68", kill_on_drop: false }`
[INFO] [stdout] 316313c416be4afa2b2f792146f0666c3737f2aa3708fd7676e3b567cda43d68
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 16dfd275c072f532bd79f138f56e6d5564fef7a72e1e64ce0582d990fdb23ae8
[INFO] running `Command { std: "docker" "start" "-a" "16dfd275c072f532bd79f138f56e6d5564fef7a72e1e64ce0582d990fdb23ae8", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/rts.rs:28:21
[INFO] [stderr]    |
[INFO] [stderr] 28 |     input:  &'a mut Read,
[INFO] [stderr]    |                     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 28 |     input:  &'a mut dyn Read,
[INFO] [stderr]    |                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/rts.rs:30:21
[INFO] [stderr]    |
[INFO] [stderr] 30 |     output: &'a mut Write,
[INFO] [stderr]    |                     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 30 |     output: &'a mut dyn Write,
[INFO] [stderr]    |                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]   --> src/ast/parser.rs:25:50
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn parse_instruction<'a>(mut input: &'a [u8]) -> Parser<Option<Statement>> {
[INFO] [stderr]    |                                      --          ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                                      |
[INFO] [stderr]    |                                      the lifetime is named here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn parse_instruction<'a>(mut input: &'a [u8]) -> Parser<'a, Option<Statement>> {
[INFO] [stderr]    |                                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/ast/parser.rs:68:34
[INFO] [stderr]    |
[INFO] [stderr] 68 | fn parse_instructions(mut input: &[u8]) -> Parser<Box<Program>> {
[INFO] [stderr]    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                                  |
[INFO] [stderr]    |                                  the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 68 | fn parse_instructions(mut input: &[u8]) -> Parser<'_, Box<Program>> {
[INFO] [stderr]    |                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: `bf` (lib) generated 4 warnings (run `cargo fix --lib -p bf` to apply 4 suggestions)
[INFO] [stderr] warning: `bf` (lib test) generated 4 warnings (4 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bf-3ca35ce553e8f90f)
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test ast::interpreter::tests::assert_increment_input ... ok
[INFO] [stdout] test ast::interpreter::tests::assert_no_output ... ok
[INFO] [stdout] test ast::interpreter::tests::assert_output_1 ... ok
[INFO] [stdout] test ast::interpreter::tests::hello_world ... ok
[INFO] [stdout] test ast::parser::tests::all_comment_program_parses ... ok
[INFO] [stdout] test ast::parser::tests::empty_loop_parses ... ok
[INFO] [stdout] test ast::parser::tests::comment_is_ignored ... ok
[INFO] [stdout] test ast::interpreter::tests::assert_increment_loop ... ok
[INFO] [stdout] test ast::parser::tests::empty_program_parses ... ok
[INFO] [stdout] test ast::parser::tests::multiple_instructions_parse ... ok
[INFO] [stdout] test ast::parser::tests::nested_loops_parse ... ok
[INFO] [stdout] test ast::parser::tests::non_empty_loop_parses ... ok
[INFO] [stdout] test ast::interpreter::tests::assert_output_0 ... ok
[INFO] [stdout] test ast::parser::tests::trailing_comment_is_ignored ... ok
[INFO] [stdout] test ast::parser::tests::left_bracket_without_right_is_error ... ok
[INFO] [stdout] test ast::parser::tests::single_byte_instructions_parse ... ok
[INFO] [stdout] test bytecode::interpreter::tests::hello_world ... ok
[INFO] [stdout] test rle::compiler::tests::loop_compiles ... ok
[INFO] [stdout] test rle::compiler::tests::right_compiles ... ok
[INFO] [stdout] test rle::compiler::tests::two_rights_two_ups_compile ... ok
[INFO] [stdout] test rle::compiler::tests::three_rights_compile ... ok
[INFO] [stdout] test rle::interpreter::tests::hello_world ... ok
[INFO] [stdout] test state::tests::down_goes_to_255 ... ok
[INFO] [stdout] test peephole::interpreter::tests::hello_world ... ok
[INFO] [stdout] test state::tests::load_reads ... ok
[INFO] [stdout] test state::tests::longer_sequence_of_actions ... ok
[INFO] [stdout] test state::tests::right_moves_right ... ok
[INFO] [stdout] test ast::parser::tests::right_bracket_without_left_is_error ... ok
[INFO] [stdout] test state::tests::right_then_left_restores ... ok
[INFO] [stdout] test state::tests::right_to_right_edge_is_okay ... ok
[INFO] [stdout] test state::tests::up_goes_to_1 ... ok
[INFO] [stdout] test rle::interpreter::tests::factoring ... ok
[INFO] [stdout] test state::tests::store_writes ... ok
[INFO] [stdout] test peephole::interpreter::tests::factoring ... ok
[INFO] [stdout] test bytecode::interpreter::tests::factoring ... ok
[INFO] [stdout] test state::tests::move_left_is_error - should panic ... ok
[INFO] [stdout] test state::tests::right_past_edge_is_error - should panic ... ok
[INFO] [stdout] test ast::interpreter::tests::factoring ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/bfi.rs (/opt/rustwide/target/debug/deps/bfi-a8b4841a645287de)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests bf
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "16dfd275c072f532bd79f138f56e6d5564fef7a72e1e64ce0582d990fdb23ae8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "16dfd275c072f532bd79f138f56e6d5564fef7a72e1e64ce0582d990fdb23ae8", kill_on_drop: false }`
[INFO] [stdout] 16dfd275c072f532bd79f138f56e6d5564fef7a72e1e64ce0582d990fdb23ae8
