[INFO] cloning repository https://github.com/systemxlabs/riscv-simulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/systemxlabs/riscv-simulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsystemxlabs%2Friscv-simulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsystemxlabs%2Friscv-simulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b5e7722aa4b6ce37dda3f5467b75ee1256738574
[INFO] checking systemxlabs/riscv-simulator against master#b3bd7058c139e71bae0862ef8f8ac936208873e9 for pr-123752
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsystemxlabs%2Friscv-simulator" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/systemxlabs/riscv-simulator on toolchain b3bd7058c139e71bae0862ef8f8ac936208873e9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b3bd7058c139e71bae0862ef8f8ac936208873e9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/systemxlabs/riscv-simulator
[INFO] finished tweaking git repo https://github.com/systemxlabs/riscv-simulator
[INFO] tweaked toml for git repo https://github.com/systemxlabs/riscv-simulator written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/systemxlabs/riscv-simulator 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" "+b3bd7058c139e71bae0862ef8f8ac936208873e9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[ERROR] this task or one of its parent failed!
[ERROR] no output for 300 seconds
[ERROR] note: run with `RUST_BACKTRACE=1` to display a backtrace.
[INFO] checking systemxlabs/riscv-simulator against try#57fe1b734d9ff1c8a92bda60b85506b9648158d3 for pr-123752
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsystemxlabs%2Friscv-simulator" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/systemxlabs/riscv-simulator on toolchain 57fe1b734d9ff1c8a92bda60b85506b9648158d3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/systemxlabs/riscv-simulator
[INFO] finished tweaking git repo https://github.com/systemxlabs/riscv-simulator
[INFO] tweaked toml for git repo https://github.com/systemxlabs/riscv-simulator written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/systemxlabs/riscv-simulator 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" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 260011c4d6a6c1a270c11fc1fa3f6a9b9d15e257c1e49868f958dad9c0dcc06c
[INFO] running `Command { std: "docker" "start" "-a" "260011c4d6a6c1a270c11fc1fa3f6a9b9d15e257c1e49868f958dad9c0dcc06c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "260011c4d6a6c1a270c11fc1fa3f6a9b9d15e257c1e49868f958dad9c0dcc06c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "260011c4d6a6c1a270c11fc1fa3f6a9b9d15e257c1e49868f958dad9c0dcc06c", kill_on_drop: false }`
[INFO] [stdout] 260011c4d6a6c1a270c11fc1fa3f6a9b9d15e257c1e49868f958dad9c0dcc06c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3e1bcafe982d810f57402816e5d23e044b6fde36c400d964f6c175ad09456103
[INFO] running `Command { std: "docker" "start" "-a" "3e1bcafe982d810f57402816e5d23e044b6fde36c400d964f6c175ad09456103", kill_on_drop: false }`
[INFO] [stderr]     Checking riscv-simulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Byte`
[INFO] [stdout]  --> src/alu/alu.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::info::{Bit, Byte, Word, BIT_0, BIT_1, BYTE_BIT_SIZE, WORD_BYTE_SIZE};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NandGate`, `OrGate`
[INFO] [stdout]  --> src/circuit/latch.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::circuit::gate::{NandGate, NorGate, OrGate};
[INFO] [stdout]   |                            ^^^^^^^^           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bit`
[INFO] [stdout]  --> src/register.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::info::{Bit, Word};
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Byte`
[INFO] [stdout]  --> src/alu/alu.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::info::{Bit, Byte, Word, BIT_0, BIT_1, BYTE_BIT_SIZE, WORD_BYTE_SIZE};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BIT_0`
[INFO] [stdout]    --> src/alu/alu.rs:105:29
[INFO] [stdout]     |
[INFO] [stdout] 105 |     use crate::info::{Word, BIT_0};
[INFO] [stdout]     |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NandGate`, `OrGate`
[INFO] [stdout]  --> src/circuit/latch.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::circuit::gate::{NandGate, NorGate, OrGate};
[INFO] [stdout]   |                            ^^^^^^^^           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bit`
[INFO] [stdout]   --> src/mem/chip.rs:65:23
[INFO] [stdout]    |
[INFO] [stdout] 65 |     use crate::info::{Bit, Byte, Word, BIT_0, BIT_1};
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `BIT_0` is imported redundantly
[INFO] [stdout]   --> src/mem/dram.rs:67:23
[INFO] [stdout]    |
[INFO] [stdout] 64 |     use super::*;
[INFO] [stdout]    |         -------- the item `BIT_0` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 67 |     use crate::info::{BIT_0, BIT_1};
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `BIT_1` is imported redundantly
[INFO] [stdout]   --> src/mem/dram.rs:67:30
[INFO] [stdout]    |
[INFO] [stdout] 64 |     use super::*;
[INFO] [stdout]    |         -------- the item `BIT_1` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 67 |     use crate::info::{BIT_0, BIT_1};
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bit`
[INFO] [stdout]  --> src/register.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::info::{Bit, Word};
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/alu/shifter.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub fn exec(op: Operation, input: Word, shift: Word) -> Word {
[INFO] [stdout]   |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shift`
[INFO] [stdout]  --> src/alu/shifter.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub fn exec(op: Operation, input: Word, shift: Word) -> Word {
[INFO] [stdout]   |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_shift`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/alu/shifter.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn shift_left_logical(&self, input: Word, shift: Word) -> Word {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shift`
[INFO] [stdout]   --> src/alu/shifter.rs:16:47
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn shift_left_logical(&self, input: Word, shift: Word) -> Word {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_shift`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instruction`
[INFO] [stdout]   --> src/cu/cu.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn loop_exec(&self, instruction: Instruction) {
[INFO] [stdout]    |                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/alu/alu.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum Operation {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 11 |     ADD,
[INFO] [stdout] 12 |     SUB,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 13 |     OR,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 14 |     AND,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 15 |     XOR,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 16 |     // set less than (unsigned)
[INFO] [stdout] 17 |     SLT,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 18 |     SLTU,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 19 |     // shift left logical
[INFO] [stdout] 20 |     SLL,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 21 |     // shift right logical/arithmetic
[INFO] [stdout] 22 |     SRL,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 23 |     SRA,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `shift_left_logical` is never used
[INFO] [stdout]   --> src/alu/shifter.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 6  | impl Shifter {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn shift_left_logical(&self, input: Word, shift: Word) -> Word {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OneToTwoDecoder` is never constructed
[INFO] [stdout]  --> src/circuit/decoder.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct OneToTwoDecoder;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `exec` is never used
[INFO] [stdout]  --> src/circuit/decoder.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl OneToTwoDecoder {
[INFO] [stdout]   | -------------------- associated function in this implementation
[INFO] [stdout] 8 |     pub fn exec(input: Bit) -> (Bit, Bit) {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DFlipFlop` is never constructed
[INFO] [stdout]  --> src/circuit/flip_flop.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct DFlipFlop {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `exec` are never used
[INFO] [stdout]   --> src/circuit/flip_flop.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout] 6  | impl DFlipFlop {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 7  |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub fn exec(&mut self, input: Bit) -> Bit {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NandGate` is never constructed
[INFO] [stdout]   --> src/circuit/gate.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct NandGate;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `exec` is never used
[INFO] [stdout]   --> src/circuit/gate.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | impl NandGate {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 88 |     pub fn exec(input0: Bit, input1: Bit) -> Bit {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NorGate` is never constructed
[INFO] [stdout]   --> src/circuit/gate.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub struct NorGate;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `exec` is never used
[INFO] [stdout]   --> src/circuit/gate.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 95 | impl NorGate {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 96 |     pub fn exec(input0: Bit, input1: Bit) -> Bit {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SRLatch` is never constructed
[INFO] [stdout]  --> src/circuit/latch.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SRLatch {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `exec` are never used
[INFO] [stdout]   --> src/circuit/latch.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl SRLatch {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 12 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn exec(&mut self, set: Bit, reset: Bit) -> (Bit, Bit) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TwoToOneMultiplexer` is never constructed
[INFO] [stdout]  --> src/circuit/multiplexer.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct TwoToOneMultiplexer;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `exec` is never used
[INFO] [stdout]  --> src/circuit/multiplexer.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl TwoToOneMultiplexer {
[INFO] [stdout]   | ------------------------ associated function in this implementation
[INFO] [stdout] 7 |     pub fn exec(input: [Bit; 2], selector: Bit) -> Bit {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FourToOneMultiplexer` is never constructed
[INFO] [stdout]   --> src/circuit/multiplexer.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct FourToOneMultiplexer;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `exec` is never used
[INFO] [stdout]   --> src/circuit/multiplexer.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl FourToOneMultiplexer {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] 20 |     pub fn exec(input: [Bit; 4], selector: [Bit; 2]) -> Bit {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `alu`, `cu`, and `adder` are never read
[INFO] [stdout]   --> src/cpu.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Cpu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 19 |     alu: Alu,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 20 |     cu: Cu,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 21 |     pc: Word,
[INFO] [stdout] 22 |     adder: MultiAdder,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pc`, `adder`, and `ir` are never read
[INFO] [stdout]   --> src/cu/cu.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct Cu {
[INFO] [stdout]    |            -- fields in this struct
[INFO] [stdout] 7  |     /// Program counter
[INFO] [stdout] 8  |     pc: Word,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 9  |     adder: MultiAdder,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     /// Instruction register
[INFO] [stdout] 11 |     ir: Word,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `loop_exec` is never used
[INFO] [stdout]   --> src/cu/cu.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Cu {
[INFO] [stdout]    | ------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn loop_exec(&self, instruction: Instruction) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set1`, `set0`, and `reverse` are never used
[INFO] [stdout]   --> src/info/bit.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl Bit {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn set1(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn set0(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn reverse(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `ALL_ONE` and `from_str` are never used
[INFO] [stdout]   --> src/info/byte.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Byte {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 15 |     pub const ALL_ONE: Byte = Byte(BIT_1, BIT_1, BIT_1, BIT_1, BIT_1, BIT_1, BIT_1, BIT_1);
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn from_str(s: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_str`, `set_byte`, and `display_in_big_endian` are never used
[INFO] [stdout]   --> src/info/word.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Word {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn from_str(s: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn set_byte(&mut self, byte_index: usize, value: Byte) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn display_in_big_endian(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instruction` is never constructed
[INFO] [stdout]  --> src/instruction.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Instruction(Word);
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `opcode`, `rd`, `func3`, `rs1`, `rs2`, and `func7` are never read
[INFO] [stdout]   --> src/instruction.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     R {
[INFO] [stdout]    |     - fields in this variant
[INFO] [stdout] 82 |         opcode: [Bit; 7],
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 83 |         rd: [Bit; 5],
[INFO] [stdout]    |         ^^
[INFO] [stdout] 84 |         func3: [Bit; 3],
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 85 |         rs1: [Bit; 5],
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 86 |         rs2: [Bit; 5],
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 87 |         func7: [Bit; 7],
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `opcode`, `rd`, `func3`, `rs1`, and `imm0_11` are never read
[INFO] [stdout]   --> src/instruction.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     I {
[INFO] [stdout]    |     - fields in this variant
[INFO] [stdout] 91 |         opcode: [Bit; 7],
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 92 |         rd: [Bit; 5],
[INFO] [stdout]    |         ^^
[INFO] [stdout] 93 |         func3: [Bit; 3],
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 94 |         rs1: [Bit; 5],
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 95 |         imm0_11: [Bit; 12],
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `opcode`, `imm0_4`, `func3`, `rs1`, `rs2`, and `imm5_11` are never read
[INFO] [stdout]    --> src/instruction.rs:99:9
[INFO] [stdout]     |
[INFO] [stdout] 98  |     S {
[INFO] [stdout]     |     - fields in this variant
[INFO] [stdout] 99  |         opcode: [Bit; 7],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 100 |         imm0_4: [Bit; 5],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 101 |         func3: [Bit; 3],
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 102 |         rs1: [Bit; 5],
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 103 |         rs2: [Bit; 5],
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 104 |         imm5_11: [Bit; 7],
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/instruction.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |     B {
[INFO] [stdout]     |     - fields in this variant
[INFO] [stdout] 108 |         opcode: [Bit; 7],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 109 |         imm11: Bit,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 110 |         imm1_4: [Bit; 4],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 111 |         func3: [Bit; 3],
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 112 |         rs1: [Bit; 5],
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 113 |         rs2: [Bit; 5],
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 114 |         imm5_10: [Bit; 6],
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 115 |         imm12: Bit,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `opcode`, `rd`, and `imm12_31` are never read
[INFO] [stdout]    --> src/instruction.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     U {
[INFO] [stdout]     |     - fields in this variant
[INFO] [stdout] 119 |         opcode: [Bit; 7],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 120 |         rd: [Bit; 5],
[INFO] [stdout]     |         ^^
[INFO] [stdout] 121 |         imm12_31: [Bit; 20],
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `opcode`, `rd`, `imm12_19`, `imm11`, `imm1_10`, and `imm20` are never read
[INFO] [stdout]    --> src/instruction.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     J {
[INFO] [stdout]     |     - fields in this variant
[INFO] [stdout] 125 |         opcode: [Bit; 7],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 126 |         rd: [Bit; 5],
[INFO] [stdout]     |         ^^
[INFO] [stdout] 127 |         imm12_19: [Bit; 8],
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 128 |         imm11: Bit,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 129 |         imm1_10: [Bit; 10],
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 130 |         imm20: Bit,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Immediate` is never constructed
[INFO] [stdout]    --> src/instruction.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct Immediate(i32);
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from` is never used
[INFO] [stdout]    --> src/instruction.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | impl Immediate {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 136 |     pub fn from(v: i32) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShiftAmount` is never constructed
[INFO] [stdout]    --> src/instruction.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct ShiftAmount(u8);
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from` is never used
[INFO] [stdout]    --> src/instruction.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl ShiftAmount {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 143 |     /// shift amount represented by 5 bits and is unsigned.
[INFO] [stdout] 144 |     pub fn from(v: u8) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InstructionType` is never used
[INFO] [stdout]    --> src/instruction.rs:150:10
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub enum InstructionType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `exec_half_word` is never used
[INFO] [stdout]   --> src/mem/dram.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Dram {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn exec_half_word(&mut self, addr: Word, write_enable: Bit, data: [Byte; 2]) -> [Byte; 2] {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Register` is never constructed
[INFO] [stdout]  --> src/register.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Register(Word);
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/register.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub enum RegisterKind {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 7  |     /// hardwired zero
[INFO] [stdout] 8  |     Zero,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 9  |     /// return address
[INFO] [stdout] 10 |     RA,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 11 |     /// stack pointer
[INFO] [stdout] 12 |     SP,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 13 |     /// global pointer
[INFO] [stdout] 14 |     GP,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 15 |     /// thread pointer
[INFO] [stdout] 16 |     TP,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 17 |     /// temporary
[INFO] [stdout] 18 |     T0,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 19 |     T1,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 20 |     T2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 21 |     T3,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 22 |     T4,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 23 |     T5,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 24 |     T6,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 25 |     /// function argument
[INFO] [stdout] 26 |     A0, // return value
[INFO] [stdout]    |     ^^
[INFO] [stdout] 27 |     A1, // return value
[INFO] [stdout]    |     ^^
[INFO] [stdout] 28 |     A2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 29 |     A3,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 30 |     A4,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 31 |     A5,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 32 |     A6,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 33 |     A7,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 34 |     /// saved register
[INFO] [stdout] 35 |     S0, // frame pointer
[INFO] [stdout]    |     ^^
[INFO] [stdout] 36 |     S1,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 37 |     S2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 38 |     S3,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 39 |     S4,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 40 |     S5,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 41 |     S6,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 42 |     S7,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 43 |     S8,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 44 |     S9,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 45 |     S10,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 46 |     S11,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RegisterKind` 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: 45 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/alu/shifter.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub fn exec(op: Operation, input: Word, shift: Word) -> Word {
[INFO] [stdout]   |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shift`
[INFO] [stdout]  --> src/alu/shifter.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub fn exec(op: Operation, input: Word, shift: Word) -> Word {
[INFO] [stdout]   |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_shift`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/alu/shifter.rs:16:34
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn shift_left_logical(&self, input: Word, shift: Word) -> Word {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shift`
[INFO] [stdout]   --> src/alu/shifter.rs:16:47
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn shift_left_logical(&self, input: Word, shift: Word) -> Word {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_shift`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instruction`
[INFO] [stdout]   --> src/cu/cu.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn loop_exec(&self, instruction: Instruction) {
[INFO] [stdout]    |                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/alu/alu.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum Operation {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     OR,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 14 |     AND,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 15 |     XOR,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 16 |     // set less than (unsigned)
[INFO] [stdout] 17 |     SLT,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 18 |     SLTU,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 19 |     // shift left logical
[INFO] [stdout] 20 |     SLL,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 21 |     // shift right logical/arithmetic
[INFO] [stdout] 22 |     SRL,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 23 |     SRA,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `shift_left_logical` is never used
[INFO] [stdout]   --> src/alu/shifter.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 6  | impl Shifter {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn shift_left_logical(&self, input: Word, shift: Word) -> Word {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DFlipFlop` is never constructed
[INFO] [stdout]  --> src/circuit/flip_flop.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct DFlipFlop {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `exec` are never used
[INFO] [stdout]   --> src/circuit/flip_flop.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout] 6  | impl DFlipFlop {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 7  |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub fn exec(&mut self, input: Bit) -> Bit {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `alu`, `cu`, and `adder` are never read
[INFO] [stdout]   --> src/cpu.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Cpu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 19 |     alu: Alu,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 20 |     cu: Cu,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 21 |     pc: Word,
[INFO] [stdout] 22 |     adder: MultiAdder,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pc`, `adder`, and `ir` are never read
[INFO] [stdout]   --> src/cu/cu.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct Cu {
[INFO] [stdout]    |            -- fields in this struct
[INFO] [stdout] 7  |     /// Program counter
[INFO] [stdout] 8  |     pc: Word,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 9  |     adder: MultiAdder,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     /// Instruction register
[INFO] [stdout] 11 |     ir: Word,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `loop_exec` is never used
[INFO] [stdout]   --> src/cu/cu.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Cu {
[INFO] [stdout]    | ------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn loop_exec(&self, instruction: Instruction) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set1`, `set0`, and `reverse` are never used
[INFO] [stdout]   --> src/info/bit.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl Bit {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn set1(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn set0(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn reverse(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instruction` is never constructed
[INFO] [stdout]  --> src/instruction.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Instruction(Word);
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `opcode`, `rd`, `func3`, `rs1`, and `imm0_11` are never read
[INFO] [stdout]   --> src/instruction.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     I {
[INFO] [stdout]    |     - fields in this variant
[INFO] [stdout] 91 |         opcode: [Bit; 7],
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 92 |         rd: [Bit; 5],
[INFO] [stdout]    |         ^^
[INFO] [stdout] 93 |         func3: [Bit; 3],
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 94 |         rs1: [Bit; 5],
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 95 |         imm0_11: [Bit; 12],
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `opcode`, `imm0_4`, `func3`, `rs1`, `rs2`, and `imm5_11` are never read
[INFO] [stdout]    --> src/instruction.rs:99:9
[INFO] [stdout]     |
[INFO] [stdout] 98  |     S {
[INFO] [stdout]     |     - fields in this variant
[INFO] [stdout] 99  |         opcode: [Bit; 7],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 100 |         imm0_4: [Bit; 5],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 101 |         func3: [Bit; 3],
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 102 |         rs1: [Bit; 5],
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 103 |         rs2: [Bit; 5],
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 104 |         imm5_11: [Bit; 7],
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/instruction.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |     B {
[INFO] [stdout]     |     - fields in this variant
[INFO] [stdout] 108 |         opcode: [Bit; 7],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 109 |         imm11: Bit,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 110 |         imm1_4: [Bit; 4],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 111 |         func3: [Bit; 3],
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 112 |         rs1: [Bit; 5],
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 113 |         rs2: [Bit; 5],
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 114 |         imm5_10: [Bit; 6],
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 115 |         imm12: Bit,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `opcode`, `rd`, and `imm12_31` are never read
[INFO] [stdout]    --> src/instruction.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     U {
[INFO] [stdout]     |     - fields in this variant
[INFO] [stdout] 119 |         opcode: [Bit; 7],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 120 |         rd: [Bit; 5],
[INFO] [stdout]     |         ^^
[INFO] [stdout] 121 |         imm12_31: [Bit; 20],
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `opcode`, `rd`, `imm12_19`, `imm11`, `imm1_10`, and `imm20` are never read
[INFO] [stdout]    --> src/instruction.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     J {
[INFO] [stdout]     |     - fields in this variant
[INFO] [stdout] 125 |         opcode: [Bit; 7],
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 126 |         rd: [Bit; 5],
[INFO] [stdout]     |         ^^
[INFO] [stdout] 127 |         imm12_19: [Bit; 8],
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 128 |         imm11: Bit,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 129 |         imm1_10: [Bit; 10],
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 130 |         imm20: Bit,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Immediate` is never constructed
[INFO] [stdout]    --> src/instruction.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct Immediate(i32);
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from` is never used
[INFO] [stdout]    --> src/instruction.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | impl Immediate {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 136 |     pub fn from(v: i32) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShiftAmount` is never constructed
[INFO] [stdout]    --> src/instruction.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct ShiftAmount(u8);
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from` is never used
[INFO] [stdout]    --> src/instruction.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl ShiftAmount {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 143 |     /// shift amount represented by 5 bits and is unsigned.
[INFO] [stdout] 144 |     pub fn from(v: u8) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InstructionType` is never used
[INFO] [stdout]    --> src/instruction.rs:150:10
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub enum InstructionType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Register` is never constructed
[INFO] [stdout]  --> src/register.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Register(Word);
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/register.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub enum RegisterKind {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 7  |     /// hardwired zero
[INFO] [stdout] 8  |     Zero,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 9  |     /// return address
[INFO] [stdout] 10 |     RA,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 11 |     /// stack pointer
[INFO] [stdout] 12 |     SP,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 13 |     /// global pointer
[INFO] [stdout] 14 |     GP,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 15 |     /// thread pointer
[INFO] [stdout] 16 |     TP,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 17 |     /// temporary
[INFO] [stdout] 18 |     T0,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 19 |     T1,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 20 |     T2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 21 |     T3,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 22 |     T4,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 23 |     T5,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 24 |     T6,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 25 |     /// function argument
[INFO] [stdout] 26 |     A0, // return value
[INFO] [stdout]    |     ^^
[INFO] [stdout] 27 |     A1, // return value
[INFO] [stdout]    |     ^^
[INFO] [stdout] 28 |     A2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 29 |     A3,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 30 |     A4,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 31 |     A5,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 32 |     A6,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 33 |     A7,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 34 |     /// saved register
[INFO] [stdout] 35 |     S0, // frame pointer
[INFO] [stdout]    |     ^^
[INFO] [stdout] 36 |     S1,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 37 |     S2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 38 |     S3,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 39 |     S4,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 40 |     S5,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 41 |     S6,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 42 |     S7,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 43 |     S8,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 44 |     S9,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 45 |     S10,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 46 |     S11,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RegisterKind` 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: 33 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.30s
[INFO] running `Command { std: "docker" "inspect" "3e1bcafe982d810f57402816e5d23e044b6fde36c400d964f6c175ad09456103", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3e1bcafe982d810f57402816e5d23e044b6fde36c400d964f6c175ad09456103", kill_on_drop: false }`
[INFO] [stdout] 3e1bcafe982d810f57402816e5d23e044b6fde36c400d964f6c175ad09456103
