[INFO] fetching crate y-lang 0.1.3...
[INFO] testing y-lang-0.1.3 against beta-2025-09-21 for beta-1.91-3
[INFO] extracting crate y-lang 0.1.3 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate y-lang 0.1.3
[INFO] finished tweaking crates.io crate y-lang 0.1.3
[INFO] tweaked toml for crates.io crate y-lang 0.1.3 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate y-lang 0.1.3 on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate y-lang 0.1.3 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 92947784693d7952da2d58bf6e28fbcb27200b30f88f21d2d0a3f07442e13464
[INFO] running `Command { std: "docker" "start" "-a" "92947784693d7952da2d58bf6e28fbcb27200b30f88f21d2d0a3f07442e13464", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "92947784693d7952da2d58bf6e28fbcb27200b30f88f21d2d0a3f07442e13464", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "92947784693d7952da2d58bf6e28fbcb27200b30f88f21d2d0a3f07442e13464", kill_on_drop: false }`
[INFO] [stdout] 92947784693d7952da2d58bf6e28fbcb27200b30f88f21d2d0a3f07442e13464
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4fa11931f358b08caf4a7a949e393c3c95c5d6a03635a487a670de0403d7067f
[INFO] running `Command { std: "docker" "start" "-a" "4fa11931f358b08caf4a7a949e393c3c95c5d6a03635a487a670de0403d7067f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.53
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling unicode-ident v1.0.6
[INFO] [stderr]    Compiling libc v0.2.140
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]    Compiling io-lifetimes v1.0.4
[INFO] [stderr]    Compiling thiserror v1.0.38
[INFO] [stderr]    Compiling rustix v0.37.4
[INFO] [stderr]    Compiling linux-raw-sys v0.3.0
[INFO] [stderr]    Compiling ucd-trie v0.1.5
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]    Compiling clap_lex v0.4.0
[INFO] [stderr]    Compiling unescape v0.1.0
[INFO] [stderr]    Compiling syn v2.0.8
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling colored v2.0.0
[INFO] [stderr]    Compiling simple_logger v4.1.0
[INFO] [stderr]    Compiling is-terminal v0.4.6
[INFO] [stderr]    Compiling anstream v0.3.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.38
[INFO] [stderr]    Compiling clap_builder v4.2.5
[INFO] [stderr]    Compiling pest v2.6.0
[INFO] [stderr]    Compiling clap_derive v4.2.0
[INFO] [stderr]    Compiling pest_meta v2.6.0
[INFO] [stderr]    Compiling clap v4.2.5
[INFO] [stderr]    Compiling pest_generator v2.6.0
[INFO] [stderr]    Compiling pest_derive v2.6.0
[INFO] [stderr]    Compiling y-lang v0.1.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self::parser::*`
[INFO] [stdout]   --> src/ast/mod.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub use self::parser::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast/binary_op.rs:17:29
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct UndefinedOpError(String);
[INFO] [stdout]    |            ---------------- ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `UndefinedOpError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast/prefix_op.rs:12:35
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct UndefinedPrefixOpError(String);
[INFO] [stdout]    |            ---------------------- ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `UndefinedPrefixOpError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/typechecker/variabletype.rs:28:31
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct VariableParseError(String);
[INFO] [stdout]    |            ------------------ ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast/parser.rs:10:56
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn parse_program(file: impl ToString, program: &str) -> ParseResult<Pairs<Rule>> {
[INFO] [stdout]    |                                                        ^^^^                 ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                        |
[INFO] [stdout]    |                                                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn parse_program(file: impl ToString, program: &str) -> ParseResult<Pairs<'_, Rule>> {
[INFO] [stdout]    |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary allocation, use `&` instead
[INFO] [stdout]    --> src/typechecker/variabletype.rs:131:40
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 if *other_item_type == Box::new(Char) {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_allocation)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary allocation, use `&` instead
[INFO] [stdout]    --> src/typechecker/variabletype.rs:140:34
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 if *item_type == Box::new(Char) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.07s
[INFO] running `Command { std: "docker" "inspect" "4fa11931f358b08caf4a7a949e393c3c95c5d6a03635a487a670de0403d7067f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4fa11931f358b08caf4a7a949e393c3c95c5d6a03635a487a670de0403d7067f", kill_on_drop: false }`
[INFO] [stdout] 4fa11931f358b08caf4a7a949e393c3c95c5d6a03635a487a670de0403d7067f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2cd53bd8cba04d557398107e67df4c61dd8d4ad5e5ac093094cc7a4ad6877ad3
[INFO] running `Command { std: "docker" "start" "-a" "2cd53bd8cba04d557398107e67df4c61dd8d4ad5e5ac093094cc7a4ad6877ad3", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `self::parser::*`
[INFO] [stdout]   --> src/ast/mod.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub use self::parser::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast/binary_op.rs:17:29
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct UndefinedOpError(String);
[INFO] [stdout]    |            ---------------- ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `UndefinedOpError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast/prefix_op.rs:12:35
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct UndefinedPrefixOpError(String);
[INFO] [stdout]    |            ---------------------- ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `UndefinedPrefixOpError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/typechecker/variabletype.rs:28:31
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct VariableParseError(String);
[INFO] [stdout]    |            ------------------ ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast/parser.rs:10:56
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn parse_program(file: impl ToString, program: &str) -> ParseResult<Pairs<Rule>> {
[INFO] [stdout]    |                                                        ^^^^                 ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                        |
[INFO] [stdout]    |                                                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn parse_program(file: impl ToString, program: &str) -> ParseResult<Pairs<'_, Rule>> {
[INFO] [stdout]    |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary allocation, use `&` instead
[INFO] [stdout]    --> src/typechecker/variabletype.rs:131:40
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 if *other_item_type == Box::new(Char) {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_allocation)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary allocation, use `&` instead
[INFO] [stdout]    --> src/typechecker/variabletype.rs:140:34
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 if *item_type == Box::new(Char) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling y-lang v0.1.3 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/inline_asm.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/print.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/syscalls.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `y-lang` (test "inline_asm") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/hello.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `y-lang` (test "print") due to 1 previous error
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/mutable.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/arrays.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/printi.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/scope.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/loop.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/expressions.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/unknown.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::check_failing_type_checking;
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `y-lang` (test "arrays") due to 1 previous error
[INFO] [stderr] error: could not compile `y-lang` (test "syscalls") due to 1 previous error
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `y-lang` (test "scope") due to 1 previous error
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `y-lang` (test "mutable") due to 1 previous error
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/import.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/assignment.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `y-lang` (test "expressions") due to 1 previous error
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/boolean.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `y-lang` (test "printi") due to 1 previous error
[INFO] [stderr] error: could not compile `y-lang` (test "unknown") due to 1 previous error
[INFO] [stderr] error: could not compile `y-lang` (test "loop") due to 1 previous error
[INFO] [stderr] error: could not compile `y-lang` (test "hello") due to 1 previous error
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `y-lang` (test "import") due to 1 previous error
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `y-lang` (test "assignment") due to 1 previous error
[INFO] [stderr] error: could not compile `y-lang` (test "boolean") due to 1 previous error
[INFO] [stdout] warning: unused import: `self::parser::*`
[INFO] [stdout]   --> src/ast/mod.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub use self::parser::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `test_utils`
[INFO] [stdout]  --> tests/functions.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use test_utils::{check_compilation, Expected};
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `test_utils`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `test_utils`, use `cargo add test_utils` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `y-lang` (test "functions") due to 1 previous error
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast/binary_op.rs:17:29
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct UndefinedOpError(String);
[INFO] [stdout]    |            ---------------- ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `UndefinedOpError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast/prefix_op.rs:12:35
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct UndefinedPrefixOpError(String);
[INFO] [stdout]    |            ---------------------- ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `UndefinedPrefixOpError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/typechecker/variabletype.rs:28:31
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct VariableParseError(String);
[INFO] [stdout]    |            ------------------ ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ast/parser.rs:10:56
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn parse_program(file: impl ToString, program: &str) -> ParseResult<Pairs<Rule>> {
[INFO] [stdout]    |                                                        ^^^^                 ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                        |
[INFO] [stdout]    |                                                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn parse_program(file: impl ToString, program: &str) -> ParseResult<Pairs<'_, Rule>> {
[INFO] [stdout]    |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary allocation, use `&` instead
[INFO] [stdout]    --> src/typechecker/variabletype.rs:131:40
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 if *other_item_type == Box::new(Char) {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_allocation)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary allocation, use `&` instead
[INFO] [stdout]    --> src/typechecker/variabletype.rs:140:34
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 if *item_type == Box::new(Char) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "2cd53bd8cba04d557398107e67df4c61dd8d4ad5e5ac093094cc7a4ad6877ad3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2cd53bd8cba04d557398107e67df4c61dd8d4ad5e5ac093094cc7a4ad6877ad3", kill_on_drop: false }`
[INFO] [stdout] 2cd53bd8cba04d557398107e67df4c61dd8d4ad5e5ac093094cc7a4ad6877ad3
