[INFO] cloning repository https://github.com/tiffany352/tifflang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tiffany352/tifflang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftiffany352%2Ftifflang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftiffany352%2Ftifflang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 61df2ad44a8e3c930f1913562be669d5f30cfe90
[INFO] checking tiffany352/tifflang against try#3f7e3b175fda7edbf81081bcd9b91b73f2f7993f for pr-156157-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftiffany352%2Ftifflang" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tiffany352/tifflang
[INFO] finished tweaking git repo https://github.com/tiffany352/tifflang
[INFO] tweaked toml for git repo https://github.com/tiffany352/tifflang written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tiffany352/tifflang on toolchain 3f7e3b175fda7edbf81081bcd9b91b73f2f7993f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3f7e3b175fda7edbf81081bcd9b91b73f2f7993f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tiffany352/tifflang 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" "+3f7e3b175fda7edbf81081bcd9b91b73f2f7993f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3f7e3b175fda7edbf81081bcd9b91b73f2f7993f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e81c94c1a92feab80830e97c2406ec43a9b97b98828daa0447a551d3048df674
[INFO] running `Command { std: "docker" "start" "-a" "e81c94c1a92feab80830e97c2406ec43a9b97b98828daa0447a551d3048df674", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e81c94c1a92feab80830e97c2406ec43a9b97b98828daa0447a551d3048df674", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e81c94c1a92feab80830e97c2406ec43a9b97b98828daa0447a551d3048df674", kill_on_drop: false }`
[INFO] [stdout] e81c94c1a92feab80830e97c2406ec43a9b97b98828daa0447a551d3048df674
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3f7e3b175fda7edbf81081bcd9b91b73f2f7993f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c2c3727efe09d330fa9fd9fd35481a0ade1a83659f05eefbdc892d669b7b2f01
[INFO] running `Command { std: "docker" "start" "-a" "c2c3727efe09d330fa9fd9fd35481a0ade1a83659f05eefbdc892d669b7b2f01", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling version_check v0.1.4
[INFO] [stderr]     Checking libc v0.2.43
[INFO] [stderr]     Checking ucd-util v0.1.1
[INFO] [stderr]    Compiling regex v1.0.5
[INFO] [stderr]     Checking utf8-ranges v1.0.1
[INFO] [stderr]     Checking web-assembler v0.1.0
[INFO] [stderr]     Checking regex-syntax v0.6.2
[INFO] [stderr]     Checking memchr v2.0.2
[INFO] [stderr]     Checking aho-corasick v0.6.8
[INFO] [stderr]    Compiling lazy_static v1.1.0
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]     Checking tifflang v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/parser.rs:7:39
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type TokenIterator = Peekable<Box<Iterator<Item=Span<Token>>>>;
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type TokenIterator = Peekable<Box<dyn Iterator<Item=Span<Token>>>>;
[INFO] [stdout]   |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/parser.rs:7:39
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type TokenIterator = Peekable<Box<Iterator<Item=Span<Token>>>>;
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type TokenIterator = Peekable<Box<dyn Iterator<Item=Span<Token>>>>;
[INFO] [stdout]   |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let iter: Box<Iterator<Item=Span<Token>>> = Box::new(tokens.into_iter());
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let iter: Box<dyn Iterator<Item=Span<Token>>> = Box::new(tokens.into_iter());
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let iter: Box<Iterator<Item=Span<Token>>> = Box::new(tokens.into_iter());
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let iter: Box<dyn Iterator<Item=Span<Token>>> = Box::new(tokens.into_iter());
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `token` and `expected` are never read
[INFO] [stdout]  --> src/ast.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     UnexpectedToken {
[INFO] [stdout]   |     --------------- fields in this variant
[INFO] [stdout] 8 |         token: Span<Token>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 9 |         expected: &'static str,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |     ConstNumber(f64),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     ConstNumber(f64),
[INFO] [stdout] 25 +     ConstNumber(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 |     ConstString(String),
[INFO] [stdout]    |     ----------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 26 -     ConstString(String),
[INFO] [stdout] 26 +     ConstString(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:52:10
[INFO] [stdout]    |
[INFO] [stdout] 52 |     Item(Item),
[INFO] [stdout]    |     ---- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Statement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 52 -     Item(Item),
[INFO] [stdout] 52 +     Item(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:63:11
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Error(ParseError),
[INFO] [stdout]    |     ----- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Item` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 63 -     Error(ParseError),
[INFO] [stdout] 63 +     Error(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Function` is never constructed
[INFO] [stdout]   --> src/typecheck.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum Type {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 46 |     Function {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Type` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/compiler.rs:42:38
[INFO] [stdout]    |
[INFO] [stdout] 42 |         Expr::Error(ref e) => panic!(format!("{:?}", e)),
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 42 -         Expr::Error(ref e) => panic!(format!("{:?}", e)),
[INFO] [stdout] 42 +         Expr::Error(ref e) => panic!("{:?}", e),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/compiler.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 |         Statement::Error(ref e) => panic!(format!("{:?}", e)),
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 56 -         Statement::Error(ref e) => panic!(format!("{:?}", e)),
[INFO] [stdout] 56 +         Statement::Error(ref e) => panic!("{:?}", e),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `token` and `expected` are never read
[INFO] [stdout]  --> src/ast.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     UnexpectedToken {
[INFO] [stdout]   |     --------------- fields in this variant
[INFO] [stdout] 8 |         token: Span<Token>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 9 |         expected: &'static str,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |     ConstNumber(f64),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     ConstNumber(f64),
[INFO] [stdout] 25 +     ConstNumber(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 |     ConstString(String),
[INFO] [stdout]    |     ----------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 26 -     ConstString(String),
[INFO] [stdout] 26 +     ConstString(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:52:10
[INFO] [stdout]    |
[INFO] [stdout] 52 |     Item(Item),
[INFO] [stdout]    |     ---- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Statement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 52 -     Item(Item),
[INFO] [stdout] 52 +     Item(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:63:11
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Error(ParseError),
[INFO] [stdout]    |     ----- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Item` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 63 -     Error(ParseError),
[INFO] [stdout] 63 +     Error(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Function` is never constructed
[INFO] [stdout]   --> src/typecheck.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum Type {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 46 |     Function {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Type` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/compiler.rs:42:38
[INFO] [stdout]    |
[INFO] [stdout] 42 |         Expr::Error(ref e) => panic!(format!("{:?}", e)),
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 42 -         Expr::Error(ref e) => panic!(format!("{:?}", e)),
[INFO] [stdout] 42 +         Expr::Error(ref e) => panic!("{:?}", e),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/compiler.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 |         Statement::Error(ref e) => panic!(format!("{:?}", e)),
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 56 -         Statement::Error(ref e) => panic!(format!("{:?}", e)),
[INFO] [stdout] 56 +         Statement::Error(ref e) => panic!("{:?}", e),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.47s
[INFO] running `Command { std: "docker" "inspect" "c2c3727efe09d330fa9fd9fd35481a0ade1a83659f05eefbdc892d669b7b2f01", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c2c3727efe09d330fa9fd9fd35481a0ade1a83659f05eefbdc892d669b7b2f01", kill_on_drop: false }`
[INFO] [stdout] c2c3727efe09d330fa9fd9fd35481a0ade1a83659f05eefbdc892d669b7b2f01
