[INFO] cloning repository https://github.com/DraconicAsh/topple
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DraconicAsh/topple" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDraconicAsh%2Ftopple", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDraconicAsh%2Ftopple'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] baf588cfaa735d1d0db0dd75ea60c34c6c23971b
[INFO] checking DraconicAsh/topple against 011c518242557d21690f7936b5812318dc2fec47 for pr-159877
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDraconicAsh%2Ftopple" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/DraconicAsh/topple
[INFO] finished tweaking git repo https://github.com/DraconicAsh/topple
[INFO] tweaked toml for git repo https://github.com/DraconicAsh/topple written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/DraconicAsh/topple on toolchain 011c518242557d21690f7936b5812318dc2fec47
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+011c518242557d21690f7936b5812318dc2fec47" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/DraconicAsh/topple 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" "+011c518242557d21690f7936b5812318dc2fec47" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: only one of `license` or `license-file` is necessary
[INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression.
[INFO] [stderr] `license-file` should be used if the package uses a non-standard license.
[INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information.
[INFO] [stderr] warning: `topple` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking DraconicAsh/topple against 011c518242557d21690f7936b5812318dc2fec47 for pr-159877
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDraconicAsh%2Ftopple" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/DraconicAsh/topple
[INFO] finished tweaking git repo https://github.com/DraconicAsh/topple
[INFO] tweaked toml for git repo https://github.com/DraconicAsh/topple written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/DraconicAsh/topple on toolchain 011c518242557d21690f7936b5812318dc2fec47
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+011c518242557d21690f7936b5812318dc2fec47" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/DraconicAsh/topple 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" "+011c518242557d21690f7936b5812318dc2fec47" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: only one of `license` or `license-file` is necessary
[INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression.
[INFO] [stderr] `license-file` should be used if the package uses a non-standard license.
[INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information.
[INFO] [stderr] warning: `topple` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:1fa6594d87c8fa7b311925a7a77a16f539833322d9dfba4ce891f211db2f90b1" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2c61a3ea3b962bdeab73481d1aa67978c046c64366d309bcf91405bb24fe5e74
[INFO] running `Command { std: "docker" "start" "2c61a3ea3b962bdeab73481d1aa67978c046c64366d309bcf91405bb24fe5e74", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2c61a3ea3b962bdeab73481d1aa67978c046c64366d309bcf91405bb24fe5e74", 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" "2c61a3ea3b962bdeab73481d1aa67978c046c64366d309bcf91405bb24fe5e74" "/opt/rustwide/cargo-home/bin/cargo" "+011c518242557d21690f7936b5812318dc2fec47" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2c61a3ea3b962bdeab73481d1aa67978c046c64366d309bcf91405bb24fe5e74", 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" "2c61a3ea3b962bdeab73481d1aa67978c046c64366d309bcf91405bb24fe5e74" "/opt/rustwide/cargo-home/bin/cargo" "+011c518242557d21690f7936b5812318dc2fec47" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: only one of `license` or `license-file` is necessary
[INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression.
[INFO] [stderr] `license-file` should be used if the package uses a non-standard license.
[INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information.
[INFO] [stderr] warning: `topple` (manifest) generated 1 warning
[INFO] [stderr]     Checking topple v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Lines`
[INFO] [stdout]  --> src/lexer.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{BufRead, Lines};
[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: `AST`
[INFO] [stdout]  --> src/optimizer/mod.rs:2:49
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::{Ident, Node, NodeType, Val, AST};
[INFO] [stdout]   |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ssa::ssa_conversion`
[INFO] [stdout]  --> src/optimizer/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use ssa::ssa_conversion;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Lines`
[INFO] [stdout]  --> src/lexer.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{BufRead, Lines};
[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: `AST`
[INFO] [stdout]  --> src/optimizer/mod.rs:2:49
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::{Ident, Node, NodeType, Val, AST};
[INFO] [stdout]   |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ssa::ssa_conversion`
[INFO] [stdout]  --> src/optimizer/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use ssa::ssa_conversion;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:118:18
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn add(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:126:18
[INFO] [stdout]     |
[INFO] [stdout] 126 |     fn sub(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:134:18
[INFO] [stdout]     |
[INFO] [stdout] 134 |     fn mul(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:142:18
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn div(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 158 |     fn bitand(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:166:20
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn bitor(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:174:21
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn bitxor(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:182:18
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn shl(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:190:18
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn shl(self, rhs: u64) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:198:18
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn shr(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:206:18
[INFO] [stdout]     |
[INFO] [stdout] 206 |     fn shr(self, rhs: u64) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ToppleResult` is never used
[INFO] [stdout]  --> src/error.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type ToppleResult<T> = Result<T, ToppleError>;
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ToppleError` is never used
[INFO] [stdout]  --> src/error.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum ToppleError {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TokenStream` is never used
[INFO] [stdout]  --> src/lexer.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub type TokenStream = Vec<(Token, usize, usize)>;
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TokenStreamSlice` is never used
[INFO] [stdout]  --> src/lexer.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type TokenStreamSlice<'a> = &'a [(Token, usize, usize)];
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Token` is never used
[INFO] [stdout]   --> src/lexer.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum Token {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Keyword` is never used
[INFO] [stdout]   --> src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Keyword {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Num` is never used
[INFO] [stdout]   --> src/lexer.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum Num {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Op` is never used
[INFO] [stdout]   --> src/lexer.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub enum Op {
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex` is never used
[INFO] [stdout]   --> src/lexer.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn lex<T: BufRead>(buf: T) -> ToppleResult<TokenStream> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex_num` is never used
[INFO] [stdout]    --> src/lexer.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn lex_num(
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex_bits` is never used
[INFO] [stdout]    --> src/lexer.rs:212:4
[INFO] [stdout]     |
[INFO] [stdout] 212 | fn lex_bits(
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex_string` is never used
[INFO] [stdout]    --> src/lexer.rs:241:4
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn lex_string(
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex_ident` is never used
[INFO] [stdout]    --> src/lexer.rs:315:4
[INFO] [stdout]     |
[INFO] [stdout] 315 | fn lex_ident(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex_op` is never used
[INFO] [stdout]    --> src/lexer.rs:349:4
[INFO] [stdout]     |
[INFO] [stdout] 349 | fn lex_op(
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SlimAST` is never used
[INFO] [stdout]   --> src/optimizer/mod.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type SlimAST = Vec<SlimNode>;
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlimNode` is never constructed
[INFO] [stdout]   --> src/optimizer/mod.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct SlimNode {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_unary` and `new_binary` are never used
[INFO] [stdout]   --> src/optimizer/mod.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl SlimNode {
[INFO] [stdout]    | ------------- associated functions in this implementation
[INFO] [stdout] 20 |     pub fn new_unary(left: SlimVal, node_type: NodeType) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn new_binary(left: SlimVal, right: SlimVal, node_type: NodeType) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SlimVal` is never used
[INFO] [stdout]   --> src/optimizer/mod.rs:53:10
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub enum SlimVal {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ast_from_parser` is never used
[INFO] [stdout]   --> src/optimizer/mod.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn ast_from_parser(ast: crate::parser::AST) -> Vec<SlimNode> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Scope` is never used
[INFO] [stdout]  --> src/optimizer/ssa.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Scope = HashMap<String, usize>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ssa_conversion` is never used
[INFO] [stdout]  --> src/optimizer/ssa.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn ssa_conversion(ast: crate::parser::AST) -> ToppleResult<SlimAST> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_ast` is never used
[INFO] [stdout]   --> src/optimizer/ssa.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn convert_ast(scope: &mut Scope, ast: crate::parser::AST) -> ToppleResult<SlimAST> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_node` is never used
[INFO] [stdout]   --> src/optimizer/ssa.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn convert_node(scope: &mut Scope, node: Node) -> ToppleResult<SlimNode> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_ident` is never used
[INFO] [stdout]   --> src/optimizer/ssa.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn convert_ident(
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AST` is never used
[INFO] [stdout]  --> src/parser.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub type AST = Vec<Node>;
[INFO] [stdout]   |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]  --> src/parser.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Node {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/parser.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Node {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn new_unary(left: Val, node_type: NodeType, line: usize, chr: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn new_binary(left: Val, right: Val, node_type: NodeType, line: usize, chr: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn left(&self) -> &Val {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn right(&self) -> Option<&Val> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn node_type(&self) -> NodeType {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn pos(&self) -> (usize, usize) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub(crate) fn destructure(self) -> (Val, Option<Val>, NodeType, usize, usize) {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeType` is never used
[INFO] [stdout]   --> src/parser.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub enum NodeType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Val` is never used
[INFO] [stdout]    --> src/parser.rs:103:10
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub enum Val {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Ident` is never used
[INFO] [stdout]    --> src/parser.rs:113:10
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub enum Ident {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_tokens` is never used
[INFO] [stdout]    --> src/parser.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn parse_tokens(stream: TokenStream) -> ToppleResult<AST> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_tokens_raw` is never used
[INFO] [stdout]    --> src/parser.rs:143:4
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn parse_tokens_raw(stream: TokenStreamSlice) -> ToppleResult<AST> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_table` is never used
[INFO] [stdout]    --> src/parser.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn parse_table(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_for` is never used
[INFO] [stdout]    --> src/parser.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn parse_for(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_literal` is never used
[INFO] [stdout]    --> src/parser.rs:271:4
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn parse_literal(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_index` is never used
[INFO] [stdout]    --> src/parser.rs:376:4
[INFO] [stdout]     |
[INFO] [stdout] 376 | fn parse_index(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_keyword` is never used
[INFO] [stdout]    --> src/parser.rs:431:4
[INFO] [stdout]     |
[INFO] [stdout] 431 | fn parse_keyword(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_call` is never used
[INFO] [stdout]    --> src/parser.rs:460:4
[INFO] [stdout]     |
[INFO] [stdout] 460 | fn parse_call(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_not` is never used
[INFO] [stdout]    --> src/parser.rs:501:4
[INFO] [stdout]     |
[INFO] [stdout] 501 | fn parse_not(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_mult` is never used
[INFO] [stdout]    --> src/parser.rs:515:4
[INFO] [stdout]     |
[INFO] [stdout] 515 | fn parse_mult(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_div` is never used
[INFO] [stdout]    --> src/parser.rs:532:4
[INFO] [stdout]     |
[INFO] [stdout] 532 | fn parse_div(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_mod` is never used
[INFO] [stdout]    --> src/parser.rs:549:4
[INFO] [stdout]     |
[INFO] [stdout] 549 | fn parse_mod(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_add` is never used
[INFO] [stdout]    --> src/parser.rs:566:4
[INFO] [stdout]     |
[INFO] [stdout] 566 | fn parse_add(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sub` is never used
[INFO] [stdout]    --> src/parser.rs:583:4
[INFO] [stdout]     |
[INFO] [stdout] 583 | fn parse_sub(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_and` is never used
[INFO] [stdout]    --> src/parser.rs:600:4
[INFO] [stdout]     |
[INFO] [stdout] 600 | fn parse_and(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_or` is never used
[INFO] [stdout]    --> src/parser.rs:617:4
[INFO] [stdout]     |
[INFO] [stdout] 617 | fn parse_or(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_xor` is never used
[INFO] [stdout]    --> src/parser.rs:634:4
[INFO] [stdout]     |
[INFO] [stdout] 634 | fn parse_xor(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_shift_left` is never used
[INFO] [stdout]    --> src/parser.rs:651:4
[INFO] [stdout]     |
[INFO] [stdout] 651 | fn parse_shift_left(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_shift_right` is never used
[INFO] [stdout]    --> src/parser.rs:668:4
[INFO] [stdout]     |
[INFO] [stdout] 668 | fn parse_shift_right(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_pop` is never used
[INFO] [stdout]    --> src/parser.rs:685:4
[INFO] [stdout]     |
[INFO] [stdout] 685 | fn parse_pop(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_push` is never used
[INFO] [stdout]    --> src/parser.rs:700:4
[INFO] [stdout]     |
[INFO] [stdout] 700 | fn parse_push(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_gt` is never used
[INFO] [stdout]    --> src/parser.rs:717:4
[INFO] [stdout]     |
[INFO] [stdout] 717 | fn parse_gt(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_lt` is never used
[INFO] [stdout]    --> src/parser.rs:734:4
[INFO] [stdout]     |
[INFO] [stdout] 734 | fn parse_lt(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_gte` is never used
[INFO] [stdout]    --> src/parser.rs:751:4
[INFO] [stdout]     |
[INFO] [stdout] 751 | fn parse_gte(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_lte` is never used
[INFO] [stdout]    --> src/parser.rs:768:4
[INFO] [stdout]     |
[INFO] [stdout] 768 | fn parse_lte(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_eq` is never used
[INFO] [stdout]    --> src/parser.rs:785:4
[INFO] [stdout]     |
[INFO] [stdout] 785 | fn parse_eq(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_ne` is never used
[INFO] [stdout]    --> src/parser.rs:802:4
[INFO] [stdout]     |
[INFO] [stdout] 802 | fn parse_ne(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_assign` is never used
[INFO] [stdout]    --> src/parser.rs:819:4
[INFO] [stdout]     |
[INFO] [stdout] 819 | fn parse_assign(slice: TokenStreamSlice, idx: &mut usize) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_expr` is never used
[INFO] [stdout]    --> src/parser.rs:856:4
[INFO] [stdout]     |
[INFO] [stdout] 856 | fn parse_expr(expr: TokenStreamSlice) -> ToppleResult<Node> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_literals_direct` is never used
[INFO] [stdout]    --> src/parser.rs:868:4
[INFO] [stdout]     |
[INFO] [stdout] 868 | fn make_literals_direct(node: &mut Node) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `table_print` is never used
[INFO] [stdout]    --> src/parser.rs:909:4
[INFO] [stdout]     |
[INFO] [stdout] 909 | fn table_print(table: &Vec<Node>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `block_print` is never used
[INFO] [stdout]    --> src/parser.rs:922:15
[INFO] [stdout]     |
[INFO] [stdout] 922 | pub(crate) fn block_print(block: &AST, depth: usize) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ToppleType` is never used
[INFO] [stdout]  --> src/types.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum ToppleType {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ByteTable` is never constructed
[INFO] [stdout]   --> src/types.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ByteTable {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/types.rs:30:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl ByteTable {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  30 |     pub fn as_unsigned(&self) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub fn as_signed(&self) -> Option<i64> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn from_str(s: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn from_bit_str(s: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn try_from_type_vec(t: Vec<ToppleType>) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn trim(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:118:18
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn add(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:126:18
[INFO] [stdout]     |
[INFO] [stdout] 126 |     fn sub(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:134:18
[INFO] [stdout]     |
[INFO] [stdout] 134 |     fn mul(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:142:18
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn div(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 158 |     fn bitand(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:166:20
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn bitor(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:174:21
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn bitxor(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:182:18
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn shl(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:190:18
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn shl(self, rhs: u64) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:198:18
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn shr(self, rhs: Self) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> src/types.rs:206:18
[INFO] [stdout]     |
[INFO] [stdout] 206 |     fn shr(self, rhs: u64) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `HangingLetError` and `DefineKeyword` are never constructed
[INFO] [stdout]   --> src/error.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum ToppleError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     HangingLetError(usize, usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     DefineKeyword(Keyword, usize, usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToppleError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `left`, `right`, `node_type`, and `pos` are never used
[INFO] [stdout]   --> src/parser.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Node {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn left(&self) -> &Val {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn right(&self) -> Option<&Val> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn node_type(&self) -> NodeType {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn pos(&self) -> (usize, usize) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Block` is never constructed
[INFO] [stdout]   --> src/parser.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub enum NodeType {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 99 |     Block,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeType` 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: enum `ToppleType` is never used
[INFO] [stdout]  --> src/types.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum ToppleType {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `as_signed` and `try_from_type_vec` are never used
[INFO] [stdout]   --> src/types.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl ByteTable {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn as_signed(&self) -> Option<i64> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn try_from_type_vec(t: Vec<ToppleType>) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.27s
[INFO] running `Command { std: "docker" "inspect" "2c61a3ea3b962bdeab73481d1aa67978c046c64366d309bcf91405bb24fe5e74", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c61a3ea3b962bdeab73481d1aa67978c046c64366d309bcf91405bb24fe5e74", kill_on_drop: false }`
[INFO] [stdout] 2c61a3ea3b962bdeab73481d1aa67978c046c64366d309bcf91405bb24fe5e74
