[INFO] cloning repository https://github.com/davawen/bikelang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/davawen/bikelang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavawen%2Fbikelang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavawen%2Fbikelang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e00b865e759d24cda9586b573c8b293f8451a13f
[INFO] checking davawen/bikelang against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6+rustflags=-Znext-solver=coherence for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavawen%2Fbikelang" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/davawen/bikelang
[INFO] finished tweaking git repo https://github.com/davawen/bikelang
[INFO] tweaked toml for git repo https://github.com/davawen/bikelang written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/davawen/bikelang 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/davawen/bikelang 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]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fmtools v0.1.2
[INFO] [stderr]   Downloaded clap_builder v4.5.27
[INFO] [stderr]   Downloaded once_cell v1.20.3
[INFO] [stderr]   Downloaded clap v4.5.28
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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] 878dff0c4a1e7f674cf475631aaa622b7bcc7e48ad092bb4bc6c9646befba005
[INFO] running `Command { std: "docker" "start" "878dff0c4a1e7f674cf475631aaa622b7bcc7e48ad092bb4bc6c9646befba005", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "878dff0c4a1e7f674cf475631aaa622b7bcc7e48ad092bb4bc6c9646befba005", 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" "878dff0c4a1e7f674cf475631aaa622b7bcc7e48ad092bb4bc6c9646befba005" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "878dff0c4a1e7f674cf475631aaa622b7bcc7e48ad092bb4bc6c9646befba005", 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 -Znext-solver=coherence" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "878dff0c4a1e7f674cf475631aaa622b7bcc7e48ad092bb4bc6c9646befba005" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]     Checking clap_builder v4.5.27
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking fmtools v0.1.2
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.28
[INFO] [stderr]    Compiling derive_more v0.99.19
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking clap v4.5.28
[INFO] [stderr]     Checking bikelang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_patterns, if_let_guard)]
[INFO] [stdout]   |            ^^^^^^^^^^^^ feature has been removed
[INFO] [stdout]   |
[INFO] [stdout]   = note: removed in 1.100.0
[INFO] [stdout]   = note: superseded by `deref_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:117:64
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let Node::FuncDef { name, return_type, parameter_list, box body } = definition.node
[INFO] [stdout]     |                                                                ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 117 -         let Node::FuncDef { name, return_type, parameter_list, box body } = definition.node
[INFO] [stdout] 117 +         let Node::FuncDef { name, return_type, parameter_list, body } = definition.node
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 117 -         let Node::FuncDef { name, return_type, parameter_list, box body } = definition.node
[INFO] [stdout] 117 +         let Node::FuncDef { name, return_type, parameter_list, body: deref!(body) } = definition.node
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |                     Intrisic::Asm(box x) => {
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 231 -                     Intrisic::Asm(box x) => {
[INFO] [stdout] 231 +                     Intrisic::Asm(x) => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 231 -                     Intrisic::Asm(box x) => {
[INFO] [stdout] 231 +                     Intrisic::Asm(deref!(x)) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:278:35
[INFO] [stdout]     |
[INFO] [stdout] 278 |                         Type::Ptr(box t) => Ok(t.addressable()),
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 278 -                         Type::Ptr(box t) => Ok(t.addressable()),
[INFO] [stdout] 278 +                         Type::Ptr(t) => Ok(t.addressable()),
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 278 -                         Type::Ptr(box t) => Ok(t.addressable()),
[INFO] [stdout] 278 +                         Type::Ptr(deref!(t)) => Ok(t.addressable()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:290:66
[INFO] [stdout]     |
[INFO] [stdout] 290 |             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 290 -             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 290 +             Node::Expr { op: BinaryOperation::Assignment, ty: _, lhs, box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 290 -             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 290 +             Node::Expr { op: BinaryOperation::Assignment, ty: _, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:290:75
[INFO] [stdout]     |
[INFO] [stdout] 290 |             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                           ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 290 -             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 290 +             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 290 -             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 290 +             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:307:34
[INFO] [stdout]     |
[INFO] [stdout] 307 |             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 307 -             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 307 +             Node::Expr { op, ty, lhs, box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 307 -             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 307 +             Node::Expr { op, ty, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:307:43
[INFO] [stdout]     |
[INFO] [stdout] 307 |             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 307 -             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 307 +             Node::Expr { op, ty, box lhs, rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 307 -             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 307 +             Node::Expr { op, ty, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:364:27
[INFO] [stdout]     |
[INFO] [stdout] 364 |             Node::Convert(box expr, typename, ty) => {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 364 -             Node::Convert(box expr, typename, ty) => {
[INFO] [stdout] 364 +             Node::Convert(expr, typename, ty) => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 364 -             Node::Convert(box expr, typename, ty) => {
[INFO] [stdout] 364 +             Node::Convert(deref!(expr), typename, ty) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:375:24
[INFO] [stdout]     |
[INFO] [stdout] 375 |             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout]     |                        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 375 -             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout] 375 +             Node::If { condition, box body, else_body, ty } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 375 -             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout] 375 +             Node::If { condition: deref!(condition), box body, else_body, ty } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:375:39
[INFO] [stdout]     |
[INFO] [stdout] 375 |             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 375 -             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout] 375 +             Node::If { box condition, body, else_body, ty } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 375 -             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout] 375 +             Node::If { box condition, body: deref!(body), else_body, ty } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:383:29
[INFO] [stdout]     |
[INFO] [stdout] 383 |                 if let Some(box else_body) = else_body {
[INFO] [stdout]     |                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 383 -                 if let Some(box else_body) = else_body {
[INFO] [stdout] 383 +                 if let Some(else_body) = else_body {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 383 -                 if let Some(box else_body) = else_body {
[INFO] [stdout] 383 +                 if let Some(deref!(else_body)) = else_body {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:392:26
[INFO] [stdout]     |
[INFO] [stdout] 392 |             Node::Loop { box body } => {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 392 -             Node::Loop { box body } => {
[INFO] [stdout] 392 +             Node::Loop { body } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 392 -             Node::Loop { box body } => {
[INFO] [stdout] 392 +             Node::Loop { body: deref!(body) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:397:27
[INFO] [stdout]     |
[INFO] [stdout] 397 |             Node::Return( box expr ) => {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 397 -             Node::Return( box expr ) => {
[INFO] [stdout] 397 +             Node::Return( expr ) => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 397 -             Node::Return( box expr ) => {
[INFO] [stdout] 397 +             Node::Return( deref!(expr) ) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]   --> src/ast/format.rs:22:27
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...   Node::Convert(box expr, typename, _) => ( format!("{PURPLE}CONVERT{WHITE} TO {CYAN}{typename:?}{WHITE}"), Some(vec![format!("{...
[INFO] [stdout]    |                     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]    |
[INFO] [stdout] 22 -             Node::Convert(box expr, typename, _) => ( format!("{PURPLE}CONVERT{WHITE} TO {CYAN}{typename:?}{WHITE}"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout] 22 +             Node::Convert(expr, typename, _) => ( format!("{PURPLE}CONVERT{WHITE} TO {CYAN}{typename:?}{WHITE}"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout]    |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]    |
[INFO] [stdout] 22 -             Node::Convert(box expr, typename, _) => ( format!("{PURPLE}CONVERT{WHITE} TO {CYAN}{typename:?}{WHITE}"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout] 22 +             Node::Convert(deref!(expr), typename, _) => ( format!("{PURPLE}CONVERT{WHITE} TO {CYAN}{typename:?}{WHITE}"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]   --> src/ast/format.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 |             Node::Return(box expr, ..) => ( format!("{PURPLE}RETURN"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout]    |                          ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]    |
[INFO] [stdout] 23 -             Node::Return(box expr, ..) => ( format!("{PURPLE}RETURN"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout] 23 +             Node::Return(expr, ..) => ( format!("{PURPLE}RETURN"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout]    |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]    |
[INFO] [stdout] 23 -             Node::Return(box expr, ..) => ( format!("{PURPLE}RETURN"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout] 23 +             Node::Return(deref!(expr), ..) => ( format!("{PURPLE}RETURN"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]   --> src/ir/generate.rs:91:70
[INFO] [stdout]    |
[INFO] [stdout] 91 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]    |                                                                      ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]    |
[INFO] [stdout] 91 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 91 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, lhs, box rhs } => {
[INFO] [stdout]    |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]    |
[INFO] [stdout] 91 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 91 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]   --> src/ir/generate.rs:91:79
[INFO] [stdout]    |
[INFO] [stdout] 91 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]    |                                                                               ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]    |
[INFO] [stdout] 91 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 91 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, rhs } => {
[INFO] [stdout]    |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]    |
[INFO] [stdout] 91 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 91 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:122:71
[INFO] [stdout]     |
[INFO] [stdout] 122 |             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 122 -             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 122 +             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, lhs, box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 122 -             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 122 +             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:122:80
[INFO] [stdout]     |
[INFO] [stdout] 122 |             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                                ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 122 -             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 122 +             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 122 -             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 122 +             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:135:51
[INFO] [stdout]     |
[INFO] [stdout] 135 |             ast::Node::UnaryExpr { op, ty, value: box inner } => {
[INFO] [stdout]     |                                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 135 -             ast::Node::UnaryExpr { op, ty, value: box inner } => {
[INFO] [stdout] 135 +             ast::Node::UnaryExpr { op, ty, value: inner } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 135 -             ast::Node::UnaryExpr { op, ty, value: box inner } => {
[INFO] [stdout] 135 +             ast::Node::UnaryExpr { op, ty, value: deref!(inner) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:169:70
[INFO] [stdout]     |
[INFO] [stdout] 169 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 169 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 169 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, lhs, box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 169 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 169 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:169:79
[INFO] [stdout]     |
[INFO] [stdout] 169 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 169 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 169 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 169 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 169 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:176:39
[INFO] [stdout]     |
[INFO] [stdout] 176 |             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 176 -             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 176 +             ast::Node::Expr { op, ty, lhs, box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 176 -             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 176 +             ast::Node::Expr { op, ty, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:176:48
[INFO] [stdout]     |
[INFO] [stdout] 176 |             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                                ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 176 -             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 176 +             ast::Node::Expr { op, ty, box lhs, rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 176 -             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 176 +             ast::Node::Expr { op, ty, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |             ast::Node::Convert(box expr, _, ty) => {
[INFO] [stdout]     |                                ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 208 -             ast::Node::Convert(box expr, _, ty) => {
[INFO] [stdout] 208 +             ast::Node::Convert(expr, _, ty) => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 208 -             ast::Node::Convert(box expr, _, ty) => {
[INFO] [stdout] 208 +             ast::Node::Convert(deref!(expr), _, ty) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:281:40
[INFO] [stdout]     |
[INFO] [stdout] 281 |                     ast::Intrisic::Asm(box str) => {
[INFO] [stdout]     |                                        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 281 -                     ast::Intrisic::Asm(box str) => {
[INFO] [stdout] 281 +                     ast::Intrisic::Asm(str) => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 281 -                     ast::Intrisic::Asm(box str) => {
[INFO] [stdout] 281 +                     ast::Intrisic::Asm(deref!(str)) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:289:43
[INFO] [stdout]     |
[INFO] [stdout] 289 | ...                   Type::Ptr(box Type::UInt8) => Intrisic::PrintString(self.fold_node(ir, app, scopes, node)),
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 289 -                                 Type::Ptr(box Type::UInt8) => Intrisic::PrintString(self.fold_node(ir, app, scopes, node)),
[INFO] [stdout] 289 +                                 Type::Ptr(Type::UInt8) => Intrisic::PrintString(self.fold_node(ir, app, scopes, node)),
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 289 -                                 Type::Ptr(box Type::UInt8) => Intrisic::PrintString(self.fold_node(ir, app, scopes, node)),
[INFO] [stdout] 289 +                                 Type::Ptr(deref!(Type::UInt8)) => Intrisic::PrintString(self.fold_node(ir, app, scopes, node)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:305:29
[INFO] [stdout]     |
[INFO] [stdout] 305 |             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout]     |                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 305 -             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout] 305 +             ast::Node::If { condition, box body, else_body, ty: _ } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 305 -             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout] 305 +             ast::Node::If { condition: deref!(condition), box body, else_body, ty: _ } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:305:44
[INFO] [stdout]     |
[INFO] [stdout] 305 |             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout]     |                                            ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 305 -             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout] 305 +             ast::Node::If { box condition, body, else_body, ty: _ } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 305 -             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout] 305 +             ast::Node::If { box condition, body: deref!(body), else_body, ty: _ } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:332:29
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 if let Some(box else_body) = else_body {
[INFO] [stdout]     |                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 332 -                 if let Some(box else_body) = else_body {
[INFO] [stdout] 332 +                 if let Some(else_body) = else_body {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 332 -                 if let Some(box else_body) = else_body {
[INFO] [stdout] 332 +                 if let Some(deref!(else_body)) = else_body {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:352:31
[INFO] [stdout]     |
[INFO] [stdout] 352 |             ast::Node::Loop { box body } => {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 352 -             ast::Node::Loop { box body } => {
[INFO] [stdout] 352 +             ast::Node::Loop { body } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 352 -             ast::Node::Loop { box body } => {
[INFO] [stdout] 352 +             ast::Node::Loop { body: deref!(body) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/typed.rs:105:27
[INFO] [stdout]     |
[INFO] [stdout] 105 |             TypeNode::Ptr(box inner) => Self::from_node(inner, types).map(Self::into_ptr)
[INFO] [stdout]     |                           ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 105 -             TypeNode::Ptr(box inner) => Self::from_node(inner, types).map(Self::into_ptr)
[INFO] [stdout] 105 +             TypeNode::Ptr(inner) => Self::from_node(inner, types).map(Self::into_ptr)
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 105 -             TypeNode::Ptr(box inner) => Self::from_node(inner, types).map(Self::into_ptr)
[INFO] [stdout] 105 +             TypeNode::Ptr(deref!(inner)) => Self::from_node(inner, types).map(Self::into_ptr)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0557]: feature has been removed
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_patterns, if_let_guard)]
[INFO] [stdout]   |            ^^^^^^^^^^^^ feature has been removed
[INFO] [stdout]   |
[INFO] [stdout]   = note: removed in 1.100.0
[INFO] [stdout]   = note: superseded by `deref_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:117:64
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let Node::FuncDef { name, return_type, parameter_list, box body } = definition.node
[INFO] [stdout]     |                                                                ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 117 -         let Node::FuncDef { name, return_type, parameter_list, box body } = definition.node
[INFO] [stdout] 117 +         let Node::FuncDef { name, return_type, parameter_list, body } = definition.node
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 117 -         let Node::FuncDef { name, return_type, parameter_list, box body } = definition.node
[INFO] [stdout] 117 +         let Node::FuncDef { name, return_type, parameter_list, body: deref!(body) } = definition.node
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |                     Intrisic::Asm(box x) => {
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 231 -                     Intrisic::Asm(box x) => {
[INFO] [stdout] 231 +                     Intrisic::Asm(x) => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 231 -                     Intrisic::Asm(box x) => {
[INFO] [stdout] 231 +                     Intrisic::Asm(deref!(x)) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:278:35
[INFO] [stdout]     |
[INFO] [stdout] 278 |                         Type::Ptr(box t) => Ok(t.addressable()),
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 278 -                         Type::Ptr(box t) => Ok(t.addressable()),
[INFO] [stdout] 278 +                         Type::Ptr(t) => Ok(t.addressable()),
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 278 -                         Type::Ptr(box t) => Ok(t.addressable()),
[INFO] [stdout] 278 +                         Type::Ptr(deref!(t)) => Ok(t.addressable()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:290:66
[INFO] [stdout]     |
[INFO] [stdout] 290 |             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 290 -             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 290 +             Node::Expr { op: BinaryOperation::Assignment, ty: _, lhs, box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 290 -             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 290 +             Node::Expr { op: BinaryOperation::Assignment, ty: _, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:290:75
[INFO] [stdout]     |
[INFO] [stdout] 290 |             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                           ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 290 -             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 290 +             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 290 -             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 290 +             Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:307:34
[INFO] [stdout]     |
[INFO] [stdout] 307 |             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 307 -             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 307 +             Node::Expr { op, ty, lhs, box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 307 -             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 307 +             Node::Expr { op, ty, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:307:43
[INFO] [stdout]     |
[INFO] [stdout] 307 |             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 307 -             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 307 +             Node::Expr { op, ty, box lhs, rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 307 -             Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 307 +             Node::Expr { op, ty, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:364:27
[INFO] [stdout]     |
[INFO] [stdout] 364 |             Node::Convert(box expr, typename, ty) => {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 364 -             Node::Convert(box expr, typename, ty) => {
[INFO] [stdout] 364 +             Node::Convert(expr, typename, ty) => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 364 -             Node::Convert(box expr, typename, ty) => {
[INFO] [stdout] 364 +             Node::Convert(deref!(expr), typename, ty) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:375:24
[INFO] [stdout]     |
[INFO] [stdout] 375 |             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout]     |                        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 375 -             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout] 375 +             Node::If { condition, box body, else_body, ty } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 375 -             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout] 375 +             Node::If { condition: deref!(condition), box body, else_body, ty } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:375:39
[INFO] [stdout]     |
[INFO] [stdout] 375 |             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 375 -             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout] 375 +             Node::If { box condition, body, else_body, ty } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 375 -             Node::If { box condition, box body, else_body, ty } => {
[INFO] [stdout] 375 +             Node::If { box condition, body: deref!(body), else_body, ty } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:383:29
[INFO] [stdout]     |
[INFO] [stdout] 383 |                 if let Some(box else_body) = else_body {
[INFO] [stdout]     |                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 383 -                 if let Some(box else_body) = else_body {
[INFO] [stdout] 383 +                 if let Some(else_body) = else_body {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 383 -                 if let Some(box else_body) = else_body {
[INFO] [stdout] 383 +                 if let Some(deref!(else_body)) = else_body {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:392:26
[INFO] [stdout]     |
[INFO] [stdout] 392 |             Node::Loop { box body } => {
[INFO] [stdout]     |                          ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 392 -             Node::Loop { box body } => {
[INFO] [stdout] 392 +             Node::Loop { body } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 392 -             Node::Loop { box body } => {
[INFO] [stdout] 392 +             Node::Loop { body: deref!(body) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ast/analysis.rs:397:27
[INFO] [stdout]     |
[INFO] [stdout] 397 |             Node::Return( box expr ) => {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 397 -             Node::Return( box expr ) => {
[INFO] [stdout] 397 +             Node::Return( expr ) => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 397 -             Node::Return( box expr ) => {
[INFO] [stdout] 397 +             Node::Return( deref!(expr) ) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]   --> src/ast/format.rs:22:27
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...   Node::Convert(box expr, typename, _) => ( format!("{PURPLE}CONVERT{WHITE} TO {CYAN}{typename:?}{WHITE}"), Some(vec![format!("{...
[INFO] [stdout]    |                     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]    |
[INFO] [stdout] 22 -             Node::Convert(box expr, typename, _) => ( format!("{PURPLE}CONVERT{WHITE} TO {CYAN}{typename:?}{WHITE}"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout] 22 +             Node::Convert(expr, typename, _) => ( format!("{PURPLE}CONVERT{WHITE} TO {CYAN}{typename:?}{WHITE}"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout]    |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]    |
[INFO] [stdout] 22 -             Node::Convert(box expr, typename, _) => ( format!("{PURPLE}CONVERT{WHITE} TO {CYAN}{typename:?}{WHITE}"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout] 22 +             Node::Convert(deref!(expr), typename, _) => ( format!("{PURPLE}CONVERT{WHITE} TO {CYAN}{typename:?}{WHITE}"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]   --> src/ast/format.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 |             Node::Return(box expr, ..) => ( format!("{PURPLE}RETURN"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout]    |                          ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]    |
[INFO] [stdout] 23 -             Node::Return(box expr, ..) => ( format!("{PURPLE}RETURN"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout] 23 +             Node::Return(expr, ..) => ( format!("{PURPLE}RETURN"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout]    |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]    |
[INFO] [stdout] 23 -             Node::Return(box expr, ..) => ( format!("{PURPLE}RETURN"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout] 23 +             Node::Return(deref!(expr), ..) => ( format!("{PURPLE}RETURN"), Some(vec![format!("{expr}")]) ),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]   --> src/ir/generate.rs:91:70
[INFO] [stdout]    |
[INFO] [stdout] 91 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]    |                                                                      ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]    |
[INFO] [stdout] 91 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 91 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, lhs, box rhs } => {
[INFO] [stdout]    |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]    |
[INFO] [stdout] 91 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 91 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]   --> src/ir/generate.rs:91:79
[INFO] [stdout]    |
[INFO] [stdout] 91 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]    |                                                                               ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]    |
[INFO] [stdout] 91 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 91 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, rhs } => {
[INFO] [stdout]    |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]    |
[INFO] [stdout] 91 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 91 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:122:71
[INFO] [stdout]     |
[INFO] [stdout] 122 |             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 122 -             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 122 +             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, lhs, box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 122 -             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 122 +             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:122:80
[INFO] [stdout]     |
[INFO] [stdout] 122 |             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                                ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 122 -             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 122 +             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 122 -             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, box rhs } => {
[INFO] [stdout] 122 +             ast::Node::Expr { op: BinaryOperation::Assignment, ty: _, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:135:51
[INFO] [stdout]     |
[INFO] [stdout] 135 |             ast::Node::UnaryExpr { op, ty, value: box inner } => {
[INFO] [stdout]     |                                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 135 -             ast::Node::UnaryExpr { op, ty, value: box inner } => {
[INFO] [stdout] 135 +             ast::Node::UnaryExpr { op, ty, value: inner } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 135 -             ast::Node::UnaryExpr { op, ty, value: box inner } => {
[INFO] [stdout] 135 +             ast::Node::UnaryExpr { op, ty, value: deref!(inner) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:169:70
[INFO] [stdout]     |
[INFO] [stdout] 169 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 169 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 169 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, lhs, box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 169 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 169 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:169:79
[INFO] [stdout]     |
[INFO] [stdout] 169 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 169 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 169 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 169 -             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout] 169 +             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:176:39
[INFO] [stdout]     |
[INFO] [stdout] 176 |             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 176 -             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 176 +             ast::Node::Expr { op, ty, lhs, box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 176 -             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 176 +             ast::Node::Expr { op, ty, lhs: deref!(lhs), box rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:176:48
[INFO] [stdout]     |
[INFO] [stdout] 176 |             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                                ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 176 -             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 176 +             ast::Node::Expr { op, ty, box lhs, rhs } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 176 -             ast::Node::Expr { op, ty, box lhs, box rhs } => {
[INFO] [stdout] 176 +             ast::Node::Expr { op, ty, box lhs, rhs: deref!(rhs) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |             ast::Node::Convert(box expr, _, ty) => {
[INFO] [stdout]     |                                ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 208 -             ast::Node::Convert(box expr, _, ty) => {
[INFO] [stdout] 208 +             ast::Node::Convert(expr, _, ty) => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 208 -             ast::Node::Convert(box expr, _, ty) => {
[INFO] [stdout] 208 +             ast::Node::Convert(deref!(expr), _, ty) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:281:40
[INFO] [stdout]     |
[INFO] [stdout] 281 |                     ast::Intrisic::Asm(box str) => {
[INFO] [stdout]     |                                        ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 281 -                     ast::Intrisic::Asm(box str) => {
[INFO] [stdout] 281 +                     ast::Intrisic::Asm(str) => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 281 -                     ast::Intrisic::Asm(box str) => {
[INFO] [stdout] 281 +                     ast::Intrisic::Asm(deref!(str)) => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:289:43
[INFO] [stdout]     |
[INFO] [stdout] 289 | ...                   Type::Ptr(box Type::UInt8) => Intrisic::PrintString(self.fold_node(ir, app, scopes, node)),
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 289 -                                 Type::Ptr(box Type::UInt8) => Intrisic::PrintString(self.fold_node(ir, app, scopes, node)),
[INFO] [stdout] 289 +                                 Type::Ptr(Type::UInt8) => Intrisic::PrintString(self.fold_node(ir, app, scopes, node)),
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 289 -                                 Type::Ptr(box Type::UInt8) => Intrisic::PrintString(self.fold_node(ir, app, scopes, node)),
[INFO] [stdout] 289 +                                 Type::Ptr(deref!(Type::UInt8)) => Intrisic::PrintString(self.fold_node(ir, app, scopes, node)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:305:29
[INFO] [stdout]     |
[INFO] [stdout] 305 |             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout]     |                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 305 -             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout] 305 +             ast::Node::If { condition, box body, else_body, ty: _ } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 305 -             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout] 305 +             ast::Node::If { condition: deref!(condition), box body, else_body, ty: _ } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:305:44
[INFO] [stdout]     |
[INFO] [stdout] 305 |             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout]     |                                            ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 305 -             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout] 305 +             ast::Node::If { box condition, body, else_body, ty: _ } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 305 -             ast::Node::If { box condition, box body, else_body, ty: _ } => {
[INFO] [stdout] 305 +             ast::Node::If { box condition, body: deref!(body), else_body, ty: _ } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:332:29
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 if let Some(box else_body) = else_body {
[INFO] [stdout]     |                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 332 -                 if let Some(box else_body) = else_body {
[INFO] [stdout] 332 +                 if let Some(else_body) = else_body {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 332 -                 if let Some(box else_body) = else_body {
[INFO] [stdout] 332 +                 if let Some(deref!(else_body)) = else_body {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/ir/generate.rs:352:31
[INFO] [stdout]     |
[INFO] [stdout] 352 |             ast::Node::Loop { box body } => {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 352 -             ast::Node::Loop { box body } => {
[INFO] [stdout] 352 +             ast::Node::Loop { body } => {
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 352 -             ast::Node::Loop { box body } => {
[INFO] [stdout] 352 +             ast::Node::Loop { body: deref!(body) } => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `box` patterns have been removed (feature `box_patterns`)
[INFO] [stdout]    --> src/typed.rs:105:27
[INFO] [stdout]     |
[INFO] [stdout] 105 |             TypeNode::Ptr(box inner) => Self::from_node(inner, types).map(Self::into_ptr)
[INFO] [stdout]     |                           ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: enable feature `deref_patterns` instead and...
[INFO] [stdout] help: ...if possible just remove keyword `box`...
[INFO] [stdout]     |
[INFO] [stdout] 105 -             TypeNode::Ptr(box inner) => Self::from_node(inner, types).map(Self::into_ptr)
[INFO] [stdout] 105 +             TypeNode::Ptr(inner) => Self::from_node(inner, types).map(Self::into_ptr)
[INFO] [stdout]     |
[INFO] [stdout] help: ...otherwise replace it with an invocation of macro `deref`
[INFO] [stdout]     |
[INFO] [stdout] 105 -             TypeNode::Ptr(box inner) => Self::from_node(inner, types).map(Self::into_ptr)
[INFO] [stdout] 105 +             TypeNode::Ptr(deref!(inner)) => Self::from_node(inner, types).map(Self::into_ptr)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `if_let_guard` has been stable since 1.95.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_patterns, if_let_guard)]
[INFO] [stdout]   |                          ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `if_let_guard` has been stable since 1.95.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(box_patterns, if_let_guard)]
[INFO] [stdout]   |                          ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]   --> src/ir/generate.rs:91:66
[INFO] [stdout]    |
[INFO] [stdout] 91 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]    |                                                                  ^^ help: try ignoring the field: `ty: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/ir/generate.rs:169:66
[INFO] [stdout]     |
[INFO] [stdout] 169 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                  ^^ help: try ignoring the field: `ty: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `field`
[INFO] [stdout]    --> src/ir/generate.rs:170:21
[INFO] [stdout]     |
[INFO] [stdout] 170 |                 let field = get_field(&lhs, &rhs);
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_field`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]    --> src/ir/asm.rs:178:28
[INFO] [stdout]     |
[INFO] [stdout] 178 |     fn generate_asm(&self, func: &Function) -> String {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `bikelang` (bin "bikelang") due to 33 previous errors; 5 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]   --> src/ir/generate.rs:91:66
[INFO] [stdout]    |
[INFO] [stdout] 91 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]    |                                                                  ^^ help: try ignoring the field: `ty: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/ir/generate.rs:169:66
[INFO] [stdout]     |
[INFO] [stdout] 169 |             ast::Node::Expr { op: BinaryOperation::MemberAccess, ty, box lhs, box rhs } => {
[INFO] [stdout]     |                                                                  ^^ help: try ignoring the field: `ty: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `field`
[INFO] [stdout]    --> src/ir/generate.rs:170:21
[INFO] [stdout]     |
[INFO] [stdout] 170 |                 let field = get_field(&lhs, &rhs);
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_field`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]    --> src/ir/asm.rs:178:28
[INFO] [stdout]     |
[INFO] [stdout] 178 |     fn generate_asm(&self, func: &Function) -> String {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0557`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `bikelang` (bin "bikelang" test) due to 33 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "878dff0c4a1e7f674cf475631aaa622b7bcc7e48ad092bb4bc6c9646befba005", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "878dff0c4a1e7f674cf475631aaa622b7bcc7e48ad092bb4bc6c9646befba005", kill_on_drop: false }`
[INFO] [stdout] 878dff0c4a1e7f674cf475631aaa622b7bcc7e48ad092bb4bc6c9646befba005
