[INFO] cloning repository https://github.com/janglada/compiling-asm-from-scratch
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/janglada/compiling-asm-from-scratch" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjanglada%2Fcompiling-asm-from-scratch", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjanglada%2Fcompiling-asm-from-scratch'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fd34f222a9f67e9140401e537e260acab7c1bf9a
[INFO] checking janglada/compiling-asm-from-scratch against 895980e0290783bb09b1ccf1b11f14eb09b10430 for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjanglada%2Fcompiling-asm-from-scratch" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/janglada/compiling-asm-from-scratch
[INFO] finished tweaking git repo https://github.com/janglada/compiling-asm-from-scratch
[INFO] tweaked toml for git repo https://github.com/janglada/compiling-asm-from-scratch written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/janglada/compiling-asm-from-scratch 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 git repo https://github.com/janglada/compiling-asm-from-scratch 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-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 494362a4cf4d329a17496524f93663cd914633c68b0183b896e571c2736f6841
[INFO] running `Command { std: "docker" "start" "494362a4cf4d329a17496524f93663cd914633c68b0183b896e571c2736f6841", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "494362a4cf4d329a17496524f93663cd914633c68b0183b896e571c2736f6841", 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" "494362a4cf4d329a17496524f93663cd914633c68b0183b896e571c2736f6841" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "494362a4cf4d329a17496524f93663cd914633c68b0183b896e571c2736f6841", 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" "494362a4cf4d329a17496524f93663cd914633c68b0183b896e571c2736f6841" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.5
[INFO] [stderr]    Compiling libc v0.2.164
[INFO] [stderr]    Compiling peg-runtime v0.8.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.89
[INFO] [stderr]    Compiling peg-macros v0.8.4
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking peg v0.8.4
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking ArmCompile v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/ast.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Write;
[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 variable: `node`
[INFO] [stdout]    --> src/arm_code_generator.rs:461:35
[INFO] [stdout]     |
[INFO] [stdout] 461 |     fn visit_undefined(&mut self, node: &AST, writer: &mut dyn Write) -> std::io::Result<()> {
[INFO] [stdout]     |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]    --> src/arm_code_generator.rs:465:30
[INFO] [stdout]     |
[INFO] [stdout] 465 |     fn visit_null(&mut self, node: &AST, writer: &mut dyn Write) -> std::io::Result<()> {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArmCodeGenerator` is never constructed
[INFO] [stdout]  --> src/arm_code_generator.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct ArmCodeGenerator {
[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 `visit_infix_operands`, `emit_fn_prologue`, `emit_fn_epilogue`, and `new_label` are never used
[INFO] [stdout]   --> src/arm_code_generator.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ArmCodeGenerator {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] 23 |     fn visit_infix_operands(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn emit_fn_prologue(&mut self, writer: &mut dyn Write) -> std::io::Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn emit_fn_epilogue(&mut self, writer: &mut dyn Write) -> std::io::Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn new_label(&mut self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodeGenError` is never constructed
[INFO] [stdout]  --> src/error.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CodeGenError {}
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CompileError` is never used
[INFO] [stdout]  --> src/error.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum CompileError {
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]    --> src/parser.rs:218:8
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub fn parse(input: &str) -> Result<AST, CompileError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Visitor` is never used
[INFO] [stdout]  --> src/visitor.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub trait Visitor<T, W> {
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AstVisitor` is never used
[INFO] [stdout]   --> src/visitor.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait AstVisitor {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/arm_code_generator.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         left.visit(self, writer);
[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] 29 |         let _ = left.visit(self, writer);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/arm_code_generator.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         writeln!(writer, "\tpush {{r0, ip}}");
[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] 30 |         let _ = writeln!(writer, "\tpush {{r0, ip}}");
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/arm_code_generator.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         right.visit(self, writer);
[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] 31 |         let _ = right.visit(self, writer);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/arm_code_generator.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         writeln!(writer, "\tpop {{r1, ip}}");
[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] 32 |         let _ = writeln!(writer, "\tpop {{r1, ip}}");
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         writeln!(writer, "\tpush {{r0, ip}}");
[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] 121 |         let _ = writeln!(writer, "\tpush {{r0, ip}}");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         writeln!(writer, "\tpop {{r1, ip}}");
[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] 123 |         let _ = writeln!(writer, "\tpop {{r1, ip}}");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |         writeln!(writer, "\tldr r2, [r1]");
[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] 124 |         let _ = writeln!(writer, "\tldr r2, [r1]");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |         writeln!(writer, "\tcmp r0, r2");
[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] 125 |         let _ = writeln!(writer, "\tcmp r0, r2");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         writeln!(writer, "\tmovhs r0, #0");
[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] 126 |         let _ = writeln!(writer, "\tmovhs r0, #0");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |         writeln!(writer, "\taddlo r1, r1, #4");
[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] 127 |         let _ = writeln!(writer, "\taddlo r1, r1, #4");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |         writeln!(writer, "\tlsllo r0, r0, #2");
[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] 128 |         let _ = writeln!(writer, "\tlsllo r0, r0, #2");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |         writeln!(writer, "\tldr r0, ={}", 4 * (len + 1));
[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] 137 |         let _ = writeln!(writer, "\tldr r0, ={}", 4 * (len + 1));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |         writeln!(writer, "\tbl malloc");
[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] 138 |         let _ = writeln!(writer, "\tbl malloc");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 |         writeln!(writer, "\tpush {{r4, ip}}");
[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] 139 |         let _ = writeln!(writer, "\tpush {{r4, ip}}");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |         writeln!(writer, "\tmov r4, r0");
[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] 140 |         let _ = writeln!(writer, "\tmov r4, r0");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |         writeln!(writer, "\tldr r0, ={}", len);
[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] 141 |         let _ = writeln!(writer, "\tldr r0, ={}", len);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         writeln!(writer, "\tstr r0, [r4]");
[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] 142 |         let _ = writeln!(writer, "\tstr r0, [r4]");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |             writeln!(writer, "\tstr r0, [r4, #{}]", 4 * (i + 1));
[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] 145 |             let _ = writeln!(writer, "\tstr r0, [r4, #{}]", 4 * (i + 1));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |         writeln!(writer, "\tmov r0, r4");
[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] 148 |         let _ = writeln!(writer, "\tmov r0, r4");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:332:17
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 arg.visit(self, writer);
[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] 332 |                 let _ = arg.visit(self, writer);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |         self.emit_fn_epilogue(writer);
[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] 418 |         let _ = self.emit_fn_epilogue(writer);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |         writeln!(writer, "\tpush {{r0, ip}}");
[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] 427 |         let _ = writeln!(writer, "\tpush {{r0, ip}}");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/ast.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Write;
[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 variable: `node`
[INFO] [stdout]    --> src/arm_code_generator.rs:461:35
[INFO] [stdout]     |
[INFO] [stdout] 461 |     fn visit_undefined(&mut self, node: &AST, writer: &mut dyn Write) -> std::io::Result<()> {
[INFO] [stdout]     |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]    --> src/arm_code_generator.rs:465:30
[INFO] [stdout]     |
[INFO] [stdout] 465 |     fn visit_null(&mut self, node: &AST, writer: &mut dyn Write) -> std::io::Result<()> {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/arm_code_generator.rs:501:13
[INFO] [stdout]     |
[INFO] [stdout] 501 |         let s: String = rand::thread_rng()
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ast`
[INFO] [stdout]     --> src/parser.rs:1060:13
[INFO] [stdout]      |
[INFO] [stdout] 1060 |         let ast = lang_parser::parser(
[INFO] [stdout]      |             ^^^ help: if this is intentional, prefix it with an underscore: `_ast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stderr` is never read
[INFO] [stdout]    --> src/arm_code_generator.rs:497:13
[INFO] [stdout]     |
[INFO] [stdout] 495 |     struct Output {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 496 |         pub stdout: Vec<u8>,
[INFO] [stdout] 497 |         pub stderr: Vec<u8>,
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodeGenError` is never constructed
[INFO] [stdout]  --> src/error.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CodeGenError {}
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/error.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |     ParseError(ParseError<LineCol>),
[INFO] [stdout]   |     ---------- ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `CompileError` 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] 7 -     ParseError(ParseError<LineCol>),
[INFO] [stdout] 7 +     ParseError(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/error.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 |     CodeGenError(String),
[INFO] [stdout]   |     ------------ ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `CompileError` 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] 9 -     CodeGenError(String),
[INFO] [stdout] 9 +     CodeGenError(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/error.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 |     RuntimeError(String, Option<i32>),
[INFO] [stdout]    |     ------------ ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CompileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 11 -     RuntimeError(String, Option<i32>),
[INFO] [stdout] 11 +     RuntimeError((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `IOError` and `SyntaxError` are never constructed
[INFO] [stdout]   --> src/error.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum CompileError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout]  7 |     ParseError(ParseError<LineCol>),
[INFO] [stdout]  8 |     IOError(std::io::Error),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]  9 |     CodeGenError(String),
[INFO] [stdout] 10 |     SyntaxError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CompileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `equal` is never used
[INFO] [stdout]   --> src/visitor.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait AstVisitor {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] 36 |     fn visit<T, W>(&self, v: &mut dyn Visitor<T, W>, w: W) -> std::io::Result<T>;
[INFO] [stdout] 37 |     fn equal(&self, node: &AST) -> bool;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/arm_code_generator.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         left.visit(self, writer);
[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] 29 |         let _ = left.visit(self, writer);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/arm_code_generator.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         writeln!(writer, "\tpush {{r0, ip}}");
[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] 30 |         let _ = writeln!(writer, "\tpush {{r0, ip}}");
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/arm_code_generator.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         right.visit(self, writer);
[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] 31 |         let _ = right.visit(self, writer);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/arm_code_generator.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         writeln!(writer, "\tpop {{r1, ip}}");
[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] 32 |         let _ = writeln!(writer, "\tpop {{r1, ip}}");
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |         writeln!(writer, "\tpush {{r0, ip}}");
[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] 121 |         let _ = writeln!(writer, "\tpush {{r0, ip}}");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         writeln!(writer, "\tpop {{r1, ip}}");
[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] 123 |         let _ = writeln!(writer, "\tpop {{r1, ip}}");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |         writeln!(writer, "\tldr r2, [r1]");
[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] 124 |         let _ = writeln!(writer, "\tldr r2, [r1]");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |         writeln!(writer, "\tcmp r0, r2");
[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] 125 |         let _ = writeln!(writer, "\tcmp r0, r2");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         writeln!(writer, "\tmovhs r0, #0");
[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] 126 |         let _ = writeln!(writer, "\tmovhs r0, #0");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |         writeln!(writer, "\taddlo r1, r1, #4");
[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] 127 |         let _ = writeln!(writer, "\taddlo r1, r1, #4");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |         writeln!(writer, "\tlsllo r0, r0, #2");
[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] 128 |         let _ = writeln!(writer, "\tlsllo r0, r0, #2");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |         writeln!(writer, "\tldr r0, ={}", 4 * (len + 1));
[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] 137 |         let _ = writeln!(writer, "\tldr r0, ={}", 4 * (len + 1));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |         writeln!(writer, "\tbl malloc");
[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] 138 |         let _ = writeln!(writer, "\tbl malloc");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 139 |         writeln!(writer, "\tpush {{r4, ip}}");
[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] 139 |         let _ = writeln!(writer, "\tpush {{r4, ip}}");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |         writeln!(writer, "\tmov r4, r0");
[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] 140 |         let _ = writeln!(writer, "\tmov r4, r0");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |         writeln!(writer, "\tldr r0, ={}", len);
[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] 141 |         let _ = writeln!(writer, "\tldr r0, ={}", len);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |         writeln!(writer, "\tstr r0, [r4]");
[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] 142 |         let _ = writeln!(writer, "\tstr r0, [r4]");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |             writeln!(writer, "\tstr r0, [r4, #{}]", 4 * (i + 1));
[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] 145 |             let _ = writeln!(writer, "\tstr r0, [r4, #{}]", 4 * (i + 1));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |         writeln!(writer, "\tmov r0, r4");
[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] 148 |         let _ = writeln!(writer, "\tmov r0, r4");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:332:17
[INFO] [stdout]     |
[INFO] [stdout] 332 |                 arg.visit(self, writer);
[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] 332 |                 let _ = arg.visit(self, writer);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |         self.emit_fn_epilogue(writer);
[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] 418 |         let _ = self.emit_fn_epilogue(writer);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |         writeln!(writer, "\tpush {{r0, ip}}");
[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] 427 |         let _ = writeln!(writer, "\tpush {{r0, ip}}");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/arm_code_generator.rs:663:9
[INFO] [stdout]     |
[INFO] [stdout] 663 | /         compile_and_run(
[INFO] [stdout] 664 | |             r#"function main() {
[INFO] [stdout] 665 | |                 assert(!1);
[INFO] [stdout] 666 | |             }"#,
[INFO] [stdout] 667 | |         );
[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] 663 |         let _ = compile_and_run(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `md5`
[INFO] [stderr]  --> Cargo.toml:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | md5 = "0.7.0"
[INFO] [stderr]   | ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `md5`
[INFO] [stderr] warning: `ArmCompile` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.96s
[INFO] running `Command { std: "docker" "inspect" "494362a4cf4d329a17496524f93663cd914633c68b0183b896e571c2736f6841", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "494362a4cf4d329a17496524f93663cd914633c68b0183b896e571c2736f6841", kill_on_drop: false }`
[INFO] [stdout] 494362a4cf4d329a17496524f93663cd914633c68b0183b896e571c2736f6841
