[INFO] fetching crate macha 0.2.0...
[INFO] checking macha-0.2.0 against 895980e0290783bb09b1ccf1b11f14eb09b10430 for pr-160186
[INFO] extracting crate macha 0.2.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate macha 0.2.0
[INFO] finished tweaking crates.io crate macha 0.2.0
[INFO] tweaked toml for crates.io crate macha 0.2.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate macha 0.2.0 on toolchain 895980e0290783bb09b1ccf1b11f14eb09b10430
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate macha 0.2.0 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" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f231484f773f94717eb4a22fcc3b5fdbb9f45f002437d23673fbf50980a55751
[INFO] running `Command { std: "docker" "start" "f231484f773f94717eb4a22fcc3b5fdbb9f45f002437d23673fbf50980a55751", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f231484f773f94717eb4a22fcc3b5fdbb9f45f002437d23673fbf50980a55751", 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" "f231484f773f94717eb4a22fcc3b5fdbb9f45f002437d23673fbf50980a55751" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f231484f773f94717eb4a22fcc3b5fdbb9f45f002437d23673fbf50980a55751", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f231484f773f94717eb4a22fcc3b5fdbb9f45f002437d23673fbf50980a55751" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]     Checking ux v0.1.6
[INFO] [stderr]     Checking sha1_smol v1.0.1
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]     Checking macha v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ops::BitAnd`
[INFO] [stdout]  --> src/stack.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Display, ops::BitAnd};
[INFO] [stdout]   |                         ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/parser.rs:574:9
[INFO] [stdout]     |
[INFO] [stdout] 574 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Token`, `Type`, and `loc::SrcLoc`
[INFO] [stdout]    --> src/parser.rs:577:9
[INFO] [stdout]     |
[INFO] [stdout] 577 |         loc::SrcLoc,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 578 |         token::{Token, Type},
[INFO] [stdout]     |                 ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::BitAnd`
[INFO] [stdout]  --> src/stack.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Display, ops::BitAnd};
[INFO] [stdout]   |                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lexer.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lexer.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout]  99 |                 '\n' | '\r' | ' ' | '\t' => {
[INFO] [stdout]     |                 ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 102 |                 '0'..='9' => {
[INFO] [stdout]     |                 --------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 111 |                 '"' => {
[INFO] [stdout]     |                 --- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 114 |                 c => {
[INFO] [stdout]     |                 - matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 142 |                 _ => {
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pc`
[INFO] [stdout]    --> src/vm.rs:183:32
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn op_alloc(stack: &mut Stack, pc: &mut usize, instr: &[u8; 8]) {
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_pc`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/ir.rs:188:22
[INFO] [stdout]     |
[INFO] [stdout] 188 |         Expr::String(s) => todo!(),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/ir.rs:189:26
[INFO] [stdout]     |
[INFO] [stdout] 189 |         Expr::FuncCall { name, args } => todo!(),
[INFO] [stdout]     |                          ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/ir.rs:189:32
[INFO] [stdout]     |
[INFO] [stdout] 189 |         Expr::FuncCall { name, args } => todo!(),
[INFO] [stdout]     |                                ^^^^ help: try ignoring the field: `args: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:319:23
[INFO] [stdout]     |
[INFO] [stdout] 319 |         Expr::LogicOr(expr, expr1) => todo!(),
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr1`
[INFO] [stdout]    --> src/ir.rs:319:29
[INFO] [stdout]     |
[INFO] [stdout] 319 |         Expr::LogicOr(expr, expr1) => todo!(),
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:320:24
[INFO] [stdout]     |
[INFO] [stdout] 320 |         Expr::LogicAnd(expr, expr1) => todo!(),
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr1`
[INFO] [stdout]    --> src/ir.rs:320:30
[INFO] [stdout]     |
[INFO] [stdout] 320 |         Expr::LogicAnd(expr, expr1) => todo!(),
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:321:20
[INFO] [stdout]     |
[INFO] [stdout] 321 |         Expr::Cond(expr, cond_op, expr1) => todo!(),
[INFO] [stdout]     |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cond_op`
[INFO] [stdout]    --> src/ir.rs:321:26
[INFO] [stdout]     |
[INFO] [stdout] 321 |         Expr::Cond(expr, cond_op, expr1) => todo!(),
[INFO] [stdout]     |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cond_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr1`
[INFO] [stdout]    --> src/ir.rs:321:35
[INFO] [stdout]     |
[INFO] [stdout] 321 |         Expr::Cond(expr, cond_op, expr1) => todo!(),
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:322:24
[INFO] [stdout]     |
[INFO] [stdout] 322 |         Expr::Negation(expr) => todo!(),
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:323:25
[INFO] [stdout]     |
[INFO] [stdout] 323 |         Expr::Inversion(expr) => todo!(),
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:329:27
[INFO] [stdout]     |
[INFO] [stdout] 329 |         Expr::GroupedExpr(expr) => todo!(),
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GenCtx` is more private than the item `gen_expr`
[INFO] [stdout]    --> src/ir.rs:164:1
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn gen_expr(expr: &Expr, ctx: &mut GenCtx, result_slot: Option<Slot>) -> (Slot, Type) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `gen_expr` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `GenCtx` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/ir.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct GenCtx {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `src` is never read
[INFO] [stdout]   --> src/lexer.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Lexer<'a> {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     src: &'a str,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_filename`, `test`, `expect`, `expected_error`, and `consume` are never used
[INFO] [stdout]   --> src/lexer.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<'a> Lexer<'a> {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn set_filename(&mut self, filename: String) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn test(&self, s: &str) -> bool {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     fn expect(&mut self, s: &str) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn expected_error(&self, s: &str, n: usize) -> Error {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     fn consume(&mut self, s: &str) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/stack.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         writeln!(f, "Stack {{");
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let _ = writeln!(f, "Stack {{");
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/stack.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |             writeln!(f, "    [{}]: i64 = {:?}, f64 = {:?}", i, val, f64::from_bits(*val));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 21 |             let _ = writeln!(f, "    [{}]: i64 = {:?}, f64 = {:?}", i, val, f64::from_bits(*val));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/stack.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |         writeln!(f, "}}");
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let _ = writeln!(f, "}}");
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/lexer.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/lexer.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout]  99 |                 '\n' | '\r' | ' ' | '\t' => {
[INFO] [stdout]     |                 ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 102 |                 '0'..='9' => {
[INFO] [stdout]     |                 --------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 111 |                 '"' => {
[INFO] [stdout]     |                 --- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 114 |                 c => {
[INFO] [stdout]     |                 - matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 142 |                 _ => {
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens`
[INFO] [stdout]    --> src/parser.rs:583:13
[INFO] [stdout]     |
[INFO] [stdout] 583 |         let tokens = lex(r#"1 + 2 * 3 / 5 * (-2 + 1)"#);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pc`
[INFO] [stdout]    --> src/vm.rs:183:32
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn op_alloc(stack: &mut Stack, pc: &mut usize, instr: &[u8; 8]) {
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/ir.rs:188:22
[INFO] [stdout]     |
[INFO] [stdout] 188 |         Expr::String(s) => todo!(),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/ir.rs:189:26
[INFO] [stdout]     |
[INFO] [stdout] 189 |         Expr::FuncCall { name, args } => todo!(),
[INFO] [stdout]     |                          ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args`
[INFO] [stdout]    --> src/ir.rs:189:32
[INFO] [stdout]     |
[INFO] [stdout] 189 |         Expr::FuncCall { name, args } => todo!(),
[INFO] [stdout]     |                                ^^^^ help: try ignoring the field: `args: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:319:23
[INFO] [stdout]     |
[INFO] [stdout] 319 |         Expr::LogicOr(expr, expr1) => todo!(),
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr1`
[INFO] [stdout]    --> src/ir.rs:319:29
[INFO] [stdout]     |
[INFO] [stdout] 319 |         Expr::LogicOr(expr, expr1) => todo!(),
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:320:24
[INFO] [stdout]     |
[INFO] [stdout] 320 |         Expr::LogicAnd(expr, expr1) => todo!(),
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr1`
[INFO] [stdout]    --> src/ir.rs:320:30
[INFO] [stdout]     |
[INFO] [stdout] 320 |         Expr::LogicAnd(expr, expr1) => todo!(),
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:321:20
[INFO] [stdout]     |
[INFO] [stdout] 321 |         Expr::Cond(expr, cond_op, expr1) => todo!(),
[INFO] [stdout]     |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cond_op`
[INFO] [stdout]    --> src/ir.rs:321:26
[INFO] [stdout]     |
[INFO] [stdout] 321 |         Expr::Cond(expr, cond_op, expr1) => todo!(),
[INFO] [stdout]     |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cond_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr1`
[INFO] [stdout]    --> src/ir.rs:321:35
[INFO] [stdout]     |
[INFO] [stdout] 321 |         Expr::Cond(expr, cond_op, expr1) => todo!(),
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:322:24
[INFO] [stdout]     |
[INFO] [stdout] 322 |         Expr::Negation(expr) => todo!(),
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:323:25
[INFO] [stdout]     |
[INFO] [stdout] 323 |         Expr::Inversion(expr) => todo!(),
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/ir.rs:329:27
[INFO] [stdout]     |
[INFO] [stdout] 329 |         Expr::GroupedExpr(expr) => todo!(),
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GenCtx` is more private than the item `gen_expr`
[INFO] [stdout]    --> src/ir.rs:164:1
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn gen_expr(expr: &Expr, ctx: &mut GenCtx, result_slot: Option<Slot>) -> (Slot, Type) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `gen_expr` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `GenCtx` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/ir.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct GenCtx {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `consume` is never used
[INFO] [stdout]   --> src/lexer.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<'a> Lexer<'a> {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     fn consume(&mut self, s: &str) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/stack.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         writeln!(f, "Stack {{");
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let _ = writeln!(f, "Stack {{");
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/stack.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |             writeln!(f, "    [{}]: i64 = {:?}, f64 = {:?}", i, val, f64::from_bits(*val));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 21 |             let _ = writeln!(f, "    [{}]: i64 = {:?}, f64 = {:?}", i, val, f64::from_bits(*val));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/stack.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |         writeln!(f, "}}");
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let _ = writeln!(f, "}}");
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.93s
[INFO] running `Command { std: "docker" "inspect" "f231484f773f94717eb4a22fcc3b5fdbb9f45f002437d23673fbf50980a55751", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f231484f773f94717eb4a22fcc3b5fdbb9f45f002437d23673fbf50980a55751", kill_on_drop: false }`
[INFO] [stdout] f231484f773f94717eb4a22fcc3b5fdbb9f45f002437d23673fbf50980a55751
