[INFO] cloning repository https://github.com/elsplash/GrindStone
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/elsplash/GrindStone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Felsplash%2FGrindStone", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Felsplash%2FGrindStone'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ae1601dccaa02f38e90adb16a34d26e4c912c5ea
[INFO] checking elsplash/GrindStone against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Felsplash%2FGrindStone" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/elsplash/GrindStone
[INFO] finished tweaking git repo https://github.com/elsplash/GrindStone
[INFO] tweaked toml for git repo https://github.com/elsplash/GrindStone written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/elsplash/GrindStone on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/elsplash/GrindStone 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 853463630fcc8e72c43861a0db9da914ef9999395e32f3defa3d5cbb854e6777
[INFO] running `Command { std: "docker" "start" "853463630fcc8e72c43861a0db9da914ef9999395e32f3defa3d5cbb854e6777", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "853463630fcc8e72c43861a0db9da914ef9999395e32f3defa3d5cbb854e6777", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "853463630fcc8e72c43861a0db9da914ef9999395e32f3defa3d5cbb854e6777" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "853463630fcc8e72c43861a0db9da914ef9999395e32f3defa3d5cbb854e6777", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "853463630fcc8e72c43861a0db9da914ef9999395e32f3defa3d5cbb854e6777" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking GrindStone v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0277]: `&ASTBlock<'_>` doesn't implement `Debug`
[INFO] [stdout]   --> src/main.rs:47:33
[INFO] [stdout]    |
[INFO] [stdout] 47 |             println!("{:#?}\n", node);
[INFO] [stdout]    |                       -----     ^^^^ `&ASTBlock<'_>` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       required by this formatting parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Debug` is not implemented for `&ASTBlock<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `&ASTBlock<'_>` doesn't implement `Debug`
[INFO] [stdout]   --> src/main.rs:47:33
[INFO] [stdout]    |
[INFO] [stdout] 47 |             println!("{:#?}\n", node);
[INFO] [stdout]    |                       -----     ^^^^ `&ASTBlock<'_>` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       required by this formatting parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Debug` is not implemented for `&ASTBlock<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/internals/parse_ast.rs:485:13
[INFO] [stdout]     |
[INFO] [stdout] 485 |             _ => todo!(),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/internals/parse_ast.rs:485:13
[INFO] [stdout]     |
[INFO] [stdout] 399 |             ASTReport::InternalError(code) => (
[INFO] [stdout]     |             ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 406 |             ASTReport::MissingXInY{x, y} => {
[INFO] [stdout]     |             ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 467 |             ASTReport::MissingXInYAfterZ{x, y, z} => {
[INFO] [stdout]     |             ------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 476 |             ASTReport::ImplicitPrintCastInXBecauseY{x, y} => {
[INFO] [stdout]     |             --------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 485 |             _ => todo!(),
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `spans` as mutable, as it is not declared as mutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:412:29
[INFO] [stdout]     |
[INFO] [stdout] 412 | ...                   spans.insert(2, StrSpan{
[INFO] [stdout]     |                       ^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 410 |                         let mut spans = y.fetch_all_strspan();
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `spans` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:412:29
[INFO] [stdout]     |
[INFO] [stdout] 411 |                           if let Some(first) = spans.first() {
[INFO] [stdout]     |                                                ----- immutable borrow occurs here
[INFO] [stdout] 412 | /                             spans.insert(2, StrSpan{
[INFO] [stdout] 413 | |                                 line: first.line,
[INFO] [stdout] 414 | |                                 str: "[X_POSITION]".to_string(),
[INFO] [stdout] 415 | |                                 clmn: 0
[INFO] [stdout] 416 | |                             });
[INFO] [stdout]     | |______________________________^ mutable borrow occurs here
[INFO] [stdout] 417 |                               let _help_code = first.clone();
[INFO] [stdout]     |                                                ----- immutable borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `_help_code.str` as mutable, as `_help_code` is not declared as mutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:419:33
[INFO] [stdout]     |
[INFO] [stdout] 419 | ...                   _help_code.str += span.str.as_str();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 417 |                             let mut _help_code = first.clone();
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `spans` as mutable, as it is not declared as mutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:430:29
[INFO] [stdout]     |
[INFO] [stdout] 430 | ...                   spans.insert(2, StrSpan{
[INFO] [stdout]     |                       ^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 428 |                         let mut spans = y.fetch_all_strspan();
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `spans` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:430:29
[INFO] [stdout]     |
[INFO] [stdout] 429 |                           if let Some(first) = spans.first() {
[INFO] [stdout]     |                                                ----- immutable borrow occurs here
[INFO] [stdout] 430 | /                             spans.insert(2, StrSpan{
[INFO] [stdout] 431 | |                                 line: first.line,
[INFO] [stdout] 432 | |                                 str: "[Y_POSITION]".to_string(),
[INFO] [stdout] 433 | |                                 clmn: 0
[INFO] [stdout] 434 | |                             });
[INFO] [stdout]     | |______________________________^ mutable borrow occurs here
[INFO] [stdout] 435 |                               let _help_code = first.clone();
[INFO] [stdout]     |                                                ----- immutable borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `_help_code.str` as mutable, as `_help_code` is not declared as mutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:437:33
[INFO] [stdout]     |
[INFO] [stdout] 437 | ...                   _help_code.str += span.str.as_str();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 435 |                             let mut _help_code = first.clone();
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0381]: used binding `help_code` is possibly-uninitialized
[INFO] [stdout]    --> src/internals/parse_ast.rs:463:21
[INFO] [stdout]     |
[INFO] [stdout] 407 |                 let help_code: Option<&str>;
[INFO] [stdout]     |                     --------- binding declared here but left uninitialized
[INFO] [stdout] ...
[INFO] [stdout] 445 |                     ARMissing::ClrKey => {
[INFO] [stdout]     |                     ----------------- if this pattern is matched, `help_code` is not initialized
[INFO] [stdout] ...
[INFO] [stdout] 450 |                     ARMissing::ClrVal => {},
[INFO] [stdout]     |                     ----------------- if this pattern is matched, `help_code` is not initialized
[INFO] [stdout] 451 |
[INFO] [stdout] 452 |                     _ => todo!(),
[INFO] [stdout]     |                     - if this pattern is matched, `help_code` is not initialized
[INFO] [stdout] ...
[INFO] [stdout] 463 |                     help_code,
[INFO] [stdout]     |                     ^^^^^^^^^ `help_code` used here but it is possibly-uninitialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:402:17
[INFO] [stdout]     |
[INFO] [stdout] 398 |           let (err_msg, line, hint, help) = match self {
[INFO] [stdout]     |  ___________________________________________-
[INFO] [stdout] 399 | |             ASTReport::InternalError(code) => (
[INFO] [stdout] 400 | |                 "Internal Error, this is not your fault.",
[INFO] [stdout] 401 | |                 ";)",
[INFO] [stdout] 402 | |                 format!("You may report this to ESplash, ERRCODE: {}", *code).as_str(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout] 403 | |                 None::<&str>,
[INFO] [stdout] 404 | |             ),
[INFO] [stdout]     | |             - temporary value is freed at the end of this statement
[INFO] [stdout] ...   |
[INFO] [stdout] 485 | |             _ => todo!(),
[INFO] [stdout] 486 | |         };
[INFO] [stdout]     | |_________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:421:46
[INFO] [stdout]     |
[INFO] [stdout] 421 |                             help_code = Some(format!("{_help_code}").as_str());
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^          - temporary value is freed at the end of this statement
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              creates a temporary value which is freed while still in use
[INFO] [stdout] ...
[INFO] [stdout] 463 |                     help_code,
[INFO] [stdout]     |                     --------- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:439:46
[INFO] [stdout]     |
[INFO] [stdout] 439 |                             help_code = Some(format!("{_help_code}").as_str());
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^          - temporary value is freed at the end of this statement
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              creates a temporary value which is freed while still in use
[INFO] [stdout] ...
[INFO] [stdout] 463 |                     help_code,
[INFO] [stdout]     |                     --------- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:456:42
[INFO] [stdout]     |
[INFO] [stdout] 456 |                     Some(span) => line = format!("{}", span).as_str(),
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^        - temporary value is freed at the end of this statement
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          creates a temporary value which is freed while still in use
[INFO] [stdout] ...
[INFO] [stdout] 461 |                     line,
[INFO] [stdout]     |                     ---- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:462:21
[INFO] [stdout]     |
[INFO] [stdout] 398 |           let (err_msg, line, hint, help) = match self {
[INFO] [stdout]     |  ___________________________________________-
[INFO] [stdout] 399 | |             ASTReport::InternalError(code) => (
[INFO] [stdout] 400 | |                 "Internal Error, this is not your fault.",
[INFO] [stdout] 401 | |                 ";)",
[INFO] [stdout] ...   |
[INFO] [stdout] 462 | |                     format!("You can put a {x} here.").as_str(),
[INFO] [stdout]     | |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout] 463 | |                     help_code,
[INFO] [stdout] 464 | |                 )
[INFO] [stdout]     | |                 - temporary value is freed at the end of this statement
[INFO] [stdout] ...   |
[INFO] [stdout] 485 | |             _ => todo!(),
[INFO] [stdout] 486 | |         };
[INFO] [stdout]     | |_________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:460:21
[INFO] [stdout]     |
[INFO] [stdout] 398 |           let (err_msg, line, hint, help) = match self {
[INFO] [stdout]     |  ___________________________________________-
[INFO] [stdout] 399 | |             ASTReport::InternalError(code) => (
[INFO] [stdout] 400 | |                 "Internal Error, this is not your fault.",
[INFO] [stdout] 401 | |                 ";)",
[INFO] [stdout] ...   |
[INFO] [stdout] 460 | |                     format!("Missing {x} in this statement").as_str(),
[INFO] [stdout]     | |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout] ...   |
[INFO] [stdout] 464 | |                 )
[INFO] [stdout]     | |                 - temporary value is freed at the end of this statement
[INFO] [stdout] ...   |
[INFO] [stdout] 485 | |             _ => todo!(),
[INFO] [stdout] 486 | |         };
[INFO] [stdout]     | |_________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spans`
[INFO] [stdout]    --> src/internals/parse_ast.rs:446:29
[INFO] [stdout]     |
[INFO] [stdout] 446 |                         let spans = y.fetch_all_strspan();
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_spans`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/internals/parse_ast.rs:467:42
[INFO] [stdout]     |
[INFO] [stdout] 467 |             ASTReport::MissingXInYAfterZ{x, y, z} => {
[INFO] [stdout]     |                                          ^ help: try ignoring the field: `x: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/internals/parse_ast.rs:467:45
[INFO] [stdout]     |
[INFO] [stdout] 467 |             ASTReport::MissingXInYAfterZ{x, y, z} => {
[INFO] [stdout]     |                                             ^ help: try ignoring the field: `y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/internals/parse_ast.rs:467:48
[INFO] [stdout]     |
[INFO] [stdout] 467 |             ASTReport::MissingXInYAfterZ{x, y, z} => {
[INFO] [stdout]     |                                                ^ help: try ignoring the field: `z: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/internals/parse_ast.rs:476:53
[INFO] [stdout]     |
[INFO] [stdout] 476 |             ASTReport::ImplicitPrintCastInXBecauseY{x, y} => {
[INFO] [stdout]     |                                                     ^ help: try ignoring the field: `x: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/internals/parse_ast.rs:476:56
[INFO] [stdout]     |
[INFO] [stdout] 476 |             ASTReport::ImplicitPrintCastInXBecauseY{x, y} => {
[INFO] [stdout]     |                                                        ^ help: try ignoring the field: `y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cnode`
[INFO] [stdout]    --> src/internals/parse_ast.rs:862:30
[INFO] [stdout]     |
[INFO] [stdout] 862 |     fn parse_brew(&mut self, cnode: CSTNode<'linespan>) -> Option<ASTBlock<'linespan>> {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_cnode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0381, E0502, E0596, E0716.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `GrindStone` (bin "GrindStone") due to 14 previous errors; 8 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/internals/parse_ast.rs:485:13
[INFO] [stdout]     |
[INFO] [stdout] 485 |             _ => todo!(),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/internals/parse_ast.rs:485:13
[INFO] [stdout]     |
[INFO] [stdout] 399 |             ASTReport::InternalError(code) => (
[INFO] [stdout]     |             ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 406 |             ASTReport::MissingXInY{x, y} => {
[INFO] [stdout]     |             ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 467 |             ASTReport::MissingXInYAfterZ{x, y, z} => {
[INFO] [stdout]     |             ------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 476 |             ASTReport::ImplicitPrintCastInXBecauseY{x, y} => {
[INFO] [stdout]     |             --------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 485 |             _ => todo!(),
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `spans` as mutable, as it is not declared as mutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:412:29
[INFO] [stdout]     |
[INFO] [stdout] 412 | ...                   spans.insert(2, StrSpan{
[INFO] [stdout]     |                       ^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 410 |                         let mut spans = y.fetch_all_strspan();
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `spans` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:412:29
[INFO] [stdout]     |
[INFO] [stdout] 411 |                           if let Some(first) = spans.first() {
[INFO] [stdout]     |                                                ----- immutable borrow occurs here
[INFO] [stdout] 412 | /                             spans.insert(2, StrSpan{
[INFO] [stdout] 413 | |                                 line: first.line,
[INFO] [stdout] 414 | |                                 str: "[X_POSITION]".to_string(),
[INFO] [stdout] 415 | |                                 clmn: 0
[INFO] [stdout] 416 | |                             });
[INFO] [stdout]     | |______________________________^ mutable borrow occurs here
[INFO] [stdout] 417 |                               let _help_code = first.clone();
[INFO] [stdout]     |                                                ----- immutable borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `_help_code.str` as mutable, as `_help_code` is not declared as mutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:419:33
[INFO] [stdout]     |
[INFO] [stdout] 419 | ...                   _help_code.str += span.str.as_str();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 417 |                             let mut _help_code = first.clone();
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `spans` as mutable, as it is not declared as mutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:430:29
[INFO] [stdout]     |
[INFO] [stdout] 430 | ...                   spans.insert(2, StrSpan{
[INFO] [stdout]     |                       ^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 428 |                         let mut spans = y.fetch_all_strspan();
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `spans` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:430:29
[INFO] [stdout]     |
[INFO] [stdout] 429 |                           if let Some(first) = spans.first() {
[INFO] [stdout]     |                                                ----- immutable borrow occurs here
[INFO] [stdout] 430 | /                             spans.insert(2, StrSpan{
[INFO] [stdout] 431 | |                                 line: first.line,
[INFO] [stdout] 432 | |                                 str: "[Y_POSITION]".to_string(),
[INFO] [stdout] 433 | |                                 clmn: 0
[INFO] [stdout] 434 | |                             });
[INFO] [stdout]     | |______________________________^ mutable borrow occurs here
[INFO] [stdout] 435 |                               let _help_code = first.clone();
[INFO] [stdout]     |                                                ----- immutable borrow later used here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `_help_code.str` as mutable, as `_help_code` is not declared as mutable
[INFO] [stdout]    --> src/internals/parse_ast.rs:437:33
[INFO] [stdout]     |
[INFO] [stdout] 437 | ...                   _help_code.str += span.str.as_str();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 435 |                             let mut _help_code = first.clone();
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0381]: used binding `help_code` is possibly-uninitialized
[INFO] [stdout]    --> src/internals/parse_ast.rs:463:21
[INFO] [stdout]     |
[INFO] [stdout] 407 |                 let help_code: Option<&str>;
[INFO] [stdout]     |                     --------- binding declared here but left uninitialized
[INFO] [stdout] ...
[INFO] [stdout] 445 |                     ARMissing::ClrKey => {
[INFO] [stdout]     |                     ----------------- if this pattern is matched, `help_code` is not initialized
[INFO] [stdout] ...
[INFO] [stdout] 450 |                     ARMissing::ClrVal => {},
[INFO] [stdout]     |                     ----------------- if this pattern is matched, `help_code` is not initialized
[INFO] [stdout] 451 |
[INFO] [stdout] 452 |                     _ => todo!(),
[INFO] [stdout]     |                     - if this pattern is matched, `help_code` is not initialized
[INFO] [stdout] ...
[INFO] [stdout] 463 |                     help_code,
[INFO] [stdout]     |                     ^^^^^^^^^ `help_code` used here but it is possibly-uninitialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:402:17
[INFO] [stdout]     |
[INFO] [stdout] 398 |           let (err_msg, line, hint, help) = match self {
[INFO] [stdout]     |  ___________________________________________-
[INFO] [stdout] 399 | |             ASTReport::InternalError(code) => (
[INFO] [stdout] 400 | |                 "Internal Error, this is not your fault.",
[INFO] [stdout] 401 | |                 ";)",
[INFO] [stdout] 402 | |                 format!("You may report this to ESplash, ERRCODE: {}", *code).as_str(),
[INFO] [stdout]     | |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout] 403 | |                 None::<&str>,
[INFO] [stdout] 404 | |             ),
[INFO] [stdout]     | |             - temporary value is freed at the end of this statement
[INFO] [stdout] ...   |
[INFO] [stdout] 485 | |             _ => todo!(),
[INFO] [stdout] 486 | |         };
[INFO] [stdout]     | |_________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:421:46
[INFO] [stdout]     |
[INFO] [stdout] 421 |                             help_code = Some(format!("{_help_code}").as_str());
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^          - temporary value is freed at the end of this statement
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              creates a temporary value which is freed while still in use
[INFO] [stdout] ...
[INFO] [stdout] 463 |                     help_code,
[INFO] [stdout]     |                     --------- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:439:46
[INFO] [stdout]     |
[INFO] [stdout] 439 |                             help_code = Some(format!("{_help_code}").as_str());
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^          - temporary value is freed at the end of this statement
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              creates a temporary value which is freed while still in use
[INFO] [stdout] ...
[INFO] [stdout] 463 |                     help_code,
[INFO] [stdout]     |                     --------- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:456:42
[INFO] [stdout]     |
[INFO] [stdout] 456 |                     Some(span) => line = format!("{}", span).as_str(),
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^        - temporary value is freed at the end of this statement
[INFO] [stdout]     |                                          |
[INFO] [stdout]     |                                          creates a temporary value which is freed while still in use
[INFO] [stdout] ...
[INFO] [stdout] 461 |                     line,
[INFO] [stdout]     |                     ---- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:462:21
[INFO] [stdout]     |
[INFO] [stdout] 398 |           let (err_msg, line, hint, help) = match self {
[INFO] [stdout]     |  ___________________________________________-
[INFO] [stdout] 399 | |             ASTReport::InternalError(code) => (
[INFO] [stdout] 400 | |                 "Internal Error, this is not your fault.",
[INFO] [stdout] 401 | |                 ";)",
[INFO] [stdout] ...   |
[INFO] [stdout] 462 | |                     format!("You can put a {x} here.").as_str(),
[INFO] [stdout]     | |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout] 463 | |                     help_code,
[INFO] [stdout] 464 | |                 )
[INFO] [stdout]     | |                 - temporary value is freed at the end of this statement
[INFO] [stdout] ...   |
[INFO] [stdout] 485 | |             _ => todo!(),
[INFO] [stdout] 486 | |         };
[INFO] [stdout]     | |_________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/internals/parse_ast.rs:460:21
[INFO] [stdout]     |
[INFO] [stdout] 398 |           let (err_msg, line, hint, help) = match self {
[INFO] [stdout]     |  ___________________________________________-
[INFO] [stdout] 399 | |             ASTReport::InternalError(code) => (
[INFO] [stdout] 400 | |                 "Internal Error, this is not your fault.",
[INFO] [stdout] 401 | |                 ";)",
[INFO] [stdout] ...   |
[INFO] [stdout] 460 | |                     format!("Missing {x} in this statement").as_str(),
[INFO] [stdout]     | |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout] ...   |
[INFO] [stdout] 464 | |                 )
[INFO] [stdout]     | |                 - temporary value is freed at the end of this statement
[INFO] [stdout] ...   |
[INFO] [stdout] 485 | |             _ => todo!(),
[INFO] [stdout] 486 | |         };
[INFO] [stdout]     | |_________- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spans`
[INFO] [stdout]    --> src/internals/parse_ast.rs:446:29
[INFO] [stdout]     |
[INFO] [stdout] 446 |                         let spans = y.fetch_all_strspan();
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_spans`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/internals/parse_ast.rs:467:42
[INFO] [stdout]     |
[INFO] [stdout] 467 |             ASTReport::MissingXInYAfterZ{x, y, z} => {
[INFO] [stdout]     |                                          ^ help: try ignoring the field: `x: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/internals/parse_ast.rs:467:45
[INFO] [stdout]     |
[INFO] [stdout] 467 |             ASTReport::MissingXInYAfterZ{x, y, z} => {
[INFO] [stdout]     |                                             ^ help: try ignoring the field: `y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/internals/parse_ast.rs:467:48
[INFO] [stdout]     |
[INFO] [stdout] 467 |             ASTReport::MissingXInYAfterZ{x, y, z} => {
[INFO] [stdout]     |                                                ^ help: try ignoring the field: `z: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/internals/parse_ast.rs:476:53
[INFO] [stdout]     |
[INFO] [stdout] 476 |             ASTReport::ImplicitPrintCastInXBecauseY{x, y} => {
[INFO] [stdout]     |                                                     ^ help: try ignoring the field: `x: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/internals/parse_ast.rs:476:56
[INFO] [stdout]     |
[INFO] [stdout] 476 |             ASTReport::ImplicitPrintCastInXBecauseY{x, y} => {
[INFO] [stdout]     |                                                        ^ help: try ignoring the field: `y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cnode`
[INFO] [stdout]    --> src/internals/parse_ast.rs:862:30
[INFO] [stdout]     |
[INFO] [stdout] 862 |     fn parse_brew(&mut self, cnode: CSTNode<'linespan>) -> Option<ASTBlock<'linespan>> {
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_cnode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0381, E0502, E0596, E0716.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `GrindStone` (bin "GrindStone" test) due to 14 previous errors; 8 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "853463630fcc8e72c43861a0db9da914ef9999395e32f3defa3d5cbb854e6777", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "853463630fcc8e72c43861a0db9da914ef9999395e32f3defa3d5cbb854e6777", kill_on_drop: false }`
[INFO] [stdout] 853463630fcc8e72c43861a0db9da914ef9999395e32f3defa3d5cbb854e6777
