[INFO] fetching crate bf 0.4.8...
[INFO] testing bf-0.4.8 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate bf 0.4.8 into /workspace/builds/worker-4-tc1/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-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate bf 0.4.8 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded thread-id v2.0.0
[INFO] [stderr]   Downloaded llvm-sys v38.3.0
[INFO] [stderr]   Downloaded semver v0.4.1
[INFO] [stderr]   Downloaded memchr v0.1.11
[INFO] [stderr]   Downloaded thread_local v0.2.7
[INFO] [stderr]   Downloaded semver-parser v0.6.2
[INFO] [stderr]   Downloaded memmap v0.6.2
[INFO] [stderr]   Downloaded owning_ref v0.3.3
[INFO] [stderr]   Downloaded bitflags v0.7.0
[INFO] [stderr]   Downloaded gcc v0.3.55
[INFO] [stderr]   Downloaded utf8-ranges v0.1.3
[INFO] [stderr]   Downloaded regex v0.1.80
[INFO] [stderr]   Downloaded regex-syntax v0.3.9
[INFO] [stderr]   Downloaded aho-corasick v0.5.3
[INFO] [stderr]   Downloaded dynasm v0.2.3
[INFO] [stderr]   Downloaded dynasmrt v0.2.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f59aa56e7c73b7d59de8fd6af24f725824f262d70d40573f57e12c7fe5d2542c
[INFO] running `Command { std: "docker" "start" "-a" "f59aa56e7c73b7d59de8fd6af24f725824f262d70d40573f57e12c7fe5d2542c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f59aa56e7c73b7d59de8fd6af24f725824f262d70d40573f57e12c7fe5d2542c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f59aa56e7c73b7d59de8fd6af24f725824f262d70d40573f57e12c7fe5d2542c", kill_on_drop: false }`
[INFO] [stdout] f59aa56e7c73b7d59de8fd6af24f725824f262d70d40573f57e12c7fe5d2542c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 445c41249ecad0da2f1610bd1b524a86c918cc9cc3ffdc08122e2546c4a3b147
[INFO] running `Command { std: "docker" "start" "-a" "445c41249ecad0da2f1610bd1b524a86c918cc9cc3ffdc08122e2546c4a3b147", 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.11s
[INFO] running `Command { std: "docker" "inspect" "445c41249ecad0da2f1610bd1b524a86c918cc9cc3ffdc08122e2546c4a3b147", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "445c41249ecad0da2f1610bd1b524a86c918cc9cc3ffdc08122e2546c4a3b147", kill_on_drop: false }`
[INFO] [stdout] 445c41249ecad0da2f1610bd1b524a86c918cc9cc3ffdc08122e2546c4a3b147
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4e401ead2a657a975e00b1f30452c9724ba6d30871645853277db6f100cc57ff
[INFO] running `Command { std: "docker" "start" "-a" "4e401ead2a657a975e00b1f30452c9724ba6d30871645853277db6f100cc57ff", 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.79s
[INFO] running `Command { std: "docker" "inspect" "4e401ead2a657a975e00b1f30452c9724ba6d30871645853277db6f100cc57ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4e401ead2a657a975e00b1f30452c9724ba6d30871645853277db6f100cc57ff", kill_on_drop: false }`
[INFO] [stdout] 4e401ead2a657a975e00b1f30452c9724ba6d30871645853277db6f100cc57ff
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] cdfc9f253eb87e4b07eb1c654724feafce152b029f485d0272bccd267340bac7
[INFO] running `Command { std: "docker" "start" "-a" "cdfc9f253eb87e4b07eb1c654724feafce152b029f485d0272bccd267340bac7", 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.05s
[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_increment_loop ... ok
[INFO] [stdout] test ast::interpreter::tests::assert_output_0 ... 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::parser::tests::left_bracket_without_right_is_error ... ok
[INFO] [stdout] test ast::parser::tests::non_empty_loop_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::right_bracket_without_left_is_error ... ok
[INFO] [stdout] test ast::parser::tests::single_byte_instructions_parse ... ok
[INFO] [stdout] test ast::parser::tests::trailing_comment_is_ignored ... ok
[INFO] [stdout] test ast::interpreter::tests::assert_no_output ... ok
[INFO] [stdout] test peephole::interpreter::tests::hello_world ... ok
[INFO] [stdout] test rle::compiler::tests::three_rights_compile ... 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 state::tests::down_goes_to_255 ... ok
[INFO] [stdout] test state::tests::load_reads ... 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::store_writes ... ok
[INFO] [stdout] test state::tests::up_goes_to_1 ... ok
[INFO] [stdout] test bytecode::interpreter::tests::factoring ... ok
[INFO] [stdout] test rle::interpreter::tests::hello_world ... ok
[INFO] [stdout] test peephole::interpreter::tests::factoring ... ok
[INFO] [stdout] test ast::parser::tests::empty_program_parses ... ok
[INFO] [stdout] test rle::interpreter::tests::factoring ... ok
[INFO] [stdout] test state::tests::right_moves_right ... ok
[INFO] [stdout] test bytecode::interpreter::tests::hello_world ... ok
[INFO] [stdout] test rle::compiler::tests::loop_compiles ... ok
[INFO] [stdout] test state::tests::longer_sequence_of_actions ... 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.07s
[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] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests bf
[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" "cdfc9f253eb87e4b07eb1c654724feafce152b029f485d0272bccd267340bac7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cdfc9f253eb87e4b07eb1c654724feafce152b029f485d0272bccd267340bac7", kill_on_drop: false }`
[INFO] [stdout] cdfc9f253eb87e4b07eb1c654724feafce152b029f485d0272bccd267340bac7
