[INFO] cloning repository https://github.com/PingGuoMiaoMiao/sysy-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/PingGuoMiaoMiao/sysy-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPingGuoMiaoMiao%2Fsysy-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPingGuoMiaoMiao%2Fsysy-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a03f8baf5a2ed0848970e42d6b3ead0068530c83
[INFO] checking PingGuoMiaoMiao/sysy-rust against try#0c70cfbec949d241375e31c5a42066be70c720fc for pr-149681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPingGuoMiaoMiao%2Fsysy-rust" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/PingGuoMiaoMiao/sysy-rust
[INFO] finished tweaking git repo https://github.com/PingGuoMiaoMiao/sysy-rust
[INFO] tweaked toml for git repo https://github.com/PingGuoMiaoMiao/sysy-rust written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/PingGuoMiaoMiao/sysy-rust on toolchain 0c70cfbec949d241375e31c5a42066be70c720fc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0c70cfbec949d241375e31c5a42066be70c720fc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/PingGuoMiaoMiao/sysy-rust 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" "+0c70cfbec949d241375e31c5a42066be70c720fc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pest_generator v2.8.1
[INFO] [stderr]   Downloaded pest_meta v2.8.1
[INFO] [stderr]   Downloaded pest_derive v2.8.1
[INFO] [stderr]   Downloaded pest v2.8.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0c70cfbec949d241375e31c5a42066be70c720fc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f99425b39efa22fe125bbefda47b56b96cd980d2441419bf4c786f2d4322b916
[INFO] running `Command { std: "docker" "start" "-a" "f99425b39efa22fe125bbefda47b56b96cd980d2441419bf4c786f2d4322b916", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f99425b39efa22fe125bbefda47b56b96cd980d2441419bf4c786f2d4322b916", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f99425b39efa22fe125bbefda47b56b96cd980d2441419bf4c786f2d4322b916", kill_on_drop: false }`
[INFO] [stdout] f99425b39efa22fe125bbefda47b56b96cd980d2441419bf4c786f2d4322b916
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0c70cfbec949d241375e31c5a42066be70c720fc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 700ef8ec663545ec2d3e9395241129f2f0e6f061ee95b8ed43cc0c47b016c8d3
[INFO] running `Command { std: "docker" "start" "-a" "700ef8ec663545ec2d3e9395241129f2f0e6f061ee95b8ed43cc0c47b016c8d3", kill_on_drop: false }`
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling pest v2.8.1
[INFO] [stderr]    Compiling pest_meta v2.8.1
[INFO] [stderr]    Compiling pest_generator v2.8.1
[INFO] [stderr]    Compiling pest_derive v2.8.1
[INFO] [stderr]     Checking compiler v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `pest::Parser`
[INFO] [stdout]  --> src/tokens.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use pest::Parser;
[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: `Pair` and `Pairs`
[INFO] [stdout]  --> src/tokens.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pest::iterators::{Pair, Pairs};
[INFO] [stdout]   |                       ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/tokens.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pest::Parser`
[INFO] [stdout]  --> src/tokens.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use pest::Parser;
[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: `Pair` and `Pairs`
[INFO] [stdout]  --> src/tokens.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use pest::iterators::{Pair, Pairs};
[INFO] [stdout]   |                       ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/tokens.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SysYLexer` is never constructed
[INFO] [stdout]  --> src/tokens.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SysYLexer;
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokenize` is never used
[INFO] [stdout]  --> src/lexer/mod.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn tokenize(input: &str, line_starts: &[usize]) -> Result<Vec<(Token, String, usize)>, String> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_whitespace` is never used
[INFO] [stdout]   --> src/lexer/mod.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn skip_whitespace(input: &str) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_comments` is never used
[INFO] [stdout]   --> src/lexer/mod.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn skip_comments(input: &str) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_match_token` is never used
[INFO] [stdout]   --> src/lexer/mod.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn try_match_token(input: &str) -> Option<(Token, String, usize)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_keyword` is never used
[INFO] [stdout]   --> src/lexer/mod.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn match_keyword(input: &str) -> Option<(Token, usize)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_identifier` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn match_identifier(input: &str) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_number` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn match_number(input: &str) -> Option<(i64, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_operator` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn match_operator(input: &str) -> Option<(Token, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_line_number` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:203:4
[INFO] [stdout]     |
[INFO] [stdout] 203 | fn get_line_number(line_starts: &[usize], pos: usize) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SysYLexer` is never constructed
[INFO] [stdout]  --> src/lexer/token.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct SysYLexer;
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Token` is never used
[INFO] [stdout]  --> src/lexer/token.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum Token {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/semantic.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct FunctionInfo {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] 33 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionInfo` 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: methods `array_elem_type` and `is_void` are never used
[INFO] [stdout]   --> src/type_checker.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Type {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn array_elem_type(&self) -> Option<&Type> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn is_void(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `local_vars` is never read
[INFO] [stdout]   --> src/ir/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct Function {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub local_vars: Vec<LocalVar>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Function` 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: methods `entry_block`, `entry_block_mut`, and `find_block` are never used
[INFO] [stdout]   --> src/ir/mod.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Function {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn entry_block(&self) -> Option<&BasicBlock> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn entry_block_mut(&mut self) -> Option<&mut BasicBlock> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn find_block(&self, label: &str) -> Option<&BasicBlock> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `ty`, and `alloca_id` are never read
[INFO] [stdout]   --> src/ir/mod.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct LocalVar {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 79 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 80 |     pub ty: Type,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 81 |     pub alloca_id: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LocalVar` 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: method `add_successor` is never used
[INFO] [stdout]    --> src/ir/mod.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl BasicBlock {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn add_successor(&mut self, succ: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Bool` and `Function` are never constructed
[INFO] [stdout]   --> src/ir/types.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Type {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  8 |     Bool,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     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: methods `is_void`, `is_int`, `is_ptr`, and `deref` are never used
[INFO] [stdout]   --> src/ir/types.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Type {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 21 |     pub fn is_void(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn is_int(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn is_ptr(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn deref(&self) -> Option<&Type> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cast` is never constructed
[INFO] [stdout]   --> src/ir/inst.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Instruction {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     Cast {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Instruction` 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: variant `Unreachable` is never constructed
[INFO] [stdout]   --> src/ir/inst.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub enum Terminator {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 56 |     Unreachable,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Terminator` 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: methods `is_const` and `as_const` are never used
[INFO] [stdout]   --> src/ir/value.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Value {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 14 |     pub fn is_const(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn as_const(&self) -> Option<&Constant> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SysYLexer` is never constructed
[INFO] [stdout]  --> src/tokens.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SysYLexer;
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokenize` is never used
[INFO] [stdout]  --> src/lexer/mod.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn tokenize(input: &str, line_starts: &[usize]) -> Result<Vec<(Token, String, usize)>, String> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_whitespace` is never used
[INFO] [stdout]   --> src/lexer/mod.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn skip_whitespace(input: &str) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_comments` is never used
[INFO] [stdout]   --> src/lexer/mod.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn skip_comments(input: &str) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_match_token` is never used
[INFO] [stdout]   --> src/lexer/mod.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn try_match_token(input: &str) -> Option<(Token, String, usize)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_keyword` is never used
[INFO] [stdout]   --> src/lexer/mod.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn match_keyword(input: &str) -> Option<(Token, usize)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_identifier` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn match_identifier(input: &str) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_number` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn match_number(input: &str) -> Option<(i64, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_operator` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn match_operator(input: &str) -> Option<(Token, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_line_number` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:203:4
[INFO] [stdout]     |
[INFO] [stdout] 203 | fn get_line_number(line_starts: &[usize], pos: usize) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SysYLexer` is never constructed
[INFO] [stdout]  --> src/lexer/token.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct SysYLexer;
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Token` is never used
[INFO] [stdout]  --> src/lexer/token.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum Token {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/semantic.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct FunctionInfo {
[INFO] [stdout]    |        ------------ field in this struct
[INFO] [stdout] 33 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionInfo` 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: methods `array_elem_type` and `is_void` are never used
[INFO] [stdout]   --> src/type_checker.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Type {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn array_elem_type(&self) -> Option<&Type> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn is_void(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `local_vars` is never read
[INFO] [stdout]   --> src/ir/mod.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct Function {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub local_vars: Vec<LocalVar>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Function` 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: methods `entry_block`, `entry_block_mut`, and `find_block` are never used
[INFO] [stdout]   --> src/ir/mod.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Function {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn entry_block(&self) -> Option<&BasicBlock> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn entry_block_mut(&mut self) -> Option<&mut BasicBlock> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn find_block(&self, label: &str) -> Option<&BasicBlock> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `ty`, and `alloca_id` are never read
[INFO] [stdout]   --> src/ir/mod.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct LocalVar {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 79 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 80 |     pub ty: Type,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 81 |     pub alloca_id: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LocalVar` 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: method `add_successor` is never used
[INFO] [stdout]    --> src/ir/mod.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl BasicBlock {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn add_successor(&mut self, succ: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Bool` and `Function` are never constructed
[INFO] [stdout]   --> src/ir/types.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Type {
[INFO] [stdout]    |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  8 |     Bool,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     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: methods `is_void`, `is_int`, `is_ptr`, and `deref` are never used
[INFO] [stdout]   --> src/ir/types.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Type {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 21 |     pub fn is_void(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn is_int(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn is_ptr(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn deref(&self) -> Option<&Type> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cast` is never constructed
[INFO] [stdout]   --> src/ir/inst.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum Instruction {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     Cast {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Instruction` 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: variant `Unreachable` is never constructed
[INFO] [stdout]   --> src/ir/inst.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub enum Terminator {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 56 |     Unreachable,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Terminator` 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: methods `is_const` and `as_const` are never used
[INFO] [stdout]   --> src/ir/value.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Value {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 14 |     pub fn is_const(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn as_const(&self) -> Option<&Constant> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.62s
[INFO] running `Command { std: "docker" "inspect" "700ef8ec663545ec2d3e9395241129f2f0e6f061ee95b8ed43cc0c47b016c8d3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "700ef8ec663545ec2d3e9395241129f2f0e6f061ee95b8ed43cc0c47b016c8d3", kill_on_drop: false }`
[INFO] [stdout] 700ef8ec663545ec2d3e9395241129f2f0e6f061ee95b8ed43cc0c47b016c8d3
