[INFO] cloning repository https://github.com/Zakki0925224/nand2tetris-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Zakki0925224/nand2tetris-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZakki0925224%2Fnand2tetris-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZakki0925224%2Fnand2tetris-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a21f4b40690ff18b647eac0d17410ce7ec413278 [INFO] checking Zakki0925224/nand2tetris-rs/a21f4b40690ff18b647eac0d17410ce7ec413278 against nightly-2024-10-25 for legacyreceiver_rename [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZakki0925224%2Fnand2tetris-rs" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Zakki0925224/nand2tetris-rs on toolchain nightly-2024-10-25 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-10-25" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] removed /workspace/builds/worker-0-tc2/source/rust-toolchain [INFO] started tweaking git repo https://github.com/Zakki0925224/nand2tetris-rs [INFO] finished tweaking git repo https://github.com/Zakki0925224/nand2tetris-rs [INFO] tweaked toml for git repo https://github.com/Zakki0925224/nand2tetris-rs written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/Zakki0925224/nand2tetris-rs 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" "+nightly-2024-10-25" "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-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-25" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f92e86fc4ad1a4dea569537b5e2d5e2816cf8cc1637677fb8a24424342234aef [INFO] running `Command { std: "docker" "start" "-a" "f92e86fc4ad1a4dea569537b5e2d5e2816cf8cc1637677fb8a24424342234aef", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f92e86fc4ad1a4dea569537b5e2d5e2816cf8cc1637677fb8a24424342234aef", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f92e86fc4ad1a4dea569537b5e2d5e2816cf8cc1637677fb8a24424342234aef", kill_on_drop: false }` [INFO] [stdout] f92e86fc4ad1a4dea569537b5e2d5e2816cf8cc1637677fb8a24424342234aef [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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-25" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 92c13fa6f1dd61757f5f9b190c843176ba954b1bad3ca3baa3d71f43fc7484cc [INFO] running `Command { std: "docker" "start" "-a" "92c13fa6f1dd61757f5f9b190c843176ba954b1bad3ca3baa3d71f43fc7484cc", kill_on_drop: false }` [INFO] [stderr] Checking nand2tetris-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `calcs::*` and `consts::*` [INFO] [stdout] --> src/main.rs:3:23 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::hardware::{calcs::*, consts::*}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `BoolArray16` is never used [INFO] [stdout] --> src/hardware/mod.rs:1:10 [INFO] [stdout] | [INFO] [stdout] 1 | pub type BoolArray16 = [bool; 16]; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `half_adder` is never used [INFO] [stdout] --> src/hardware/calcs.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn half_adder(a: bool, b: bool) -> (bool, bool) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `full_addr` is never used [INFO] [stdout] --> src/hardware/calcs.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn full_addr(a: bool, b: bool, c: bool) -> (bool, bool) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add16` is never used [INFO] [stdout] --> src/hardware/calcs.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn add16(a: BoolArray16, b: BoolArray16) -> BoolArray16 [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inc16` is never used [INFO] [stdout] --> src/hardware/calcs.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn inc16(a: BoolArray16) -> BoolArray16 [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alu` is never used [INFO] [stdout] --> src/hardware/calcs.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn alu( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/hardware/circuits.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Dff(bool); [INFO] [stdout] | --- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] = note: `Dff` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `dff` and `get` are never used [INFO] [stdout] --> src/hardware/circuits.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Dff [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 10 | pub fn dff(&mut self, value: bool) -> bool [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn get(&self) -> bool { return self.0; } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/hardware/circuits.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Bit(Dff); [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] = note: `Bit` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `bit` and `get` are never used [INFO] [stdout] --> src/hardware/circuits.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl Bit [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn bit(&mut self, value: bool, load: bool) -> bool [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn get(&self) -> bool { return self.0.get(); } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Register` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Register(pub [Bit; 16]); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Register` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `register` are never used [INFO] [stdout] --> src/hardware/circuits.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Register [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 44 | { [INFO] [stdout] 45 | pub fn new() -> Self { return Self([Bit::default(); 16]) } [INFO] [stdout] | ^^^ [INFO] [stdout] 46 | [INFO] [stdout] 47 | pub fn register(&mut self, value: BoolArray16, load: bool) -> BoolArray16 [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram8` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 72 | pub struct Ram8([Register; 8]); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram8` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `ram` are never used [INFO] [stdout] --> src/hardware/circuits.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl Ram8 [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 75 | { [INFO] [stdout] 76 | pub fn new() -> Self { return Self([Register::new(); 8]); } [INFO] [stdout] | ^^^ [INFO] [stdout] 77 | [INFO] [stdout] 78 | pub fn ram(&mut self, value: [bool; 16], addr: [bool; 3], load: bool) -> [bool; 16] [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram64` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 97 | pub struct Ram64([Ram8; 8]); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram64` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `ram` are never used [INFO] [stdout] --> src/hardware/circuits.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 99 | impl Ram64 [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 100 | { [INFO] [stdout] 101 | pub fn new() -> Self { return Self([Ram8::new(); 8]); } [INFO] [stdout] | ^^^ [INFO] [stdout] 102 | [INFO] [stdout] 103 | pub fn ram(&mut self, value: [bool; 16], addr: [bool; 6], load: bool) -> [bool; 16] [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram512` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 125 | pub struct Ram512([Ram64; 8]); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram512` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `ram` are never used [INFO] [stdout] --> src/hardware/circuits.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 127 | impl Ram512 [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 128 | { [INFO] [stdout] 129 | pub fn new() -> Self { return Self([Ram64::new(); 8]); } [INFO] [stdout] | ^^^ [INFO] [stdout] 130 | [INFO] [stdout] 131 | pub fn ram(&mut self, value: [bool; 16], addr: [bool; 9], load: bool) -> [bool; 16] [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram4k` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 153 | pub struct Ram4k([Ram512; 8]); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram4k` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `ram` are never used [INFO] [stdout] --> src/hardware/circuits.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl Ram4k [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 156 | { [INFO] [stdout] 157 | pub fn new() -> Self { return Self([Ram512::new(); 8]); } [INFO] [stdout] | ^^^ [INFO] [stdout] 158 | [INFO] [stdout] 159 | pub fn ram(&mut self, value: [bool; 16], addr: [bool; 12], load: bool) -> [bool; 16] [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram16k` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:182:12 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Ram16k([Ram4k; 4]); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram16k` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `ram` are never used [INFO] [stdout] --> src/hardware/circuits.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 184 | impl Ram16k [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 185 | { [INFO] [stdout] 186 | pub fn new() -> Self { return Self([Ram4k::new(); 4]); } [INFO] [stdout] | ^^^ [INFO] [stdout] 187 | [INFO] [stdout] 188 | pub fn ram(&mut self, value: [bool; 16], addr: [bool; 14], load: bool) -> [bool; 16] [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Counter` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:208:12 [INFO] [stdout] | [INFO] [stdout] 208 | pub struct Counter(Register); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `count` are never used [INFO] [stdout] --> src/hardware/circuits.rs:212:12 [INFO] [stdout] | [INFO] [stdout] 210 | impl Counter [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 211 | { [INFO] [stdout] 212 | pub fn new() -> Self { return Self(Register::new()); } [INFO] [stdout] | ^^^ [INFO] [stdout] 213 | [INFO] [stdout] 214 | pub fn count(&mut self, value: [bool; 16], inc: bool, load: bool, reset: bool) -> [bool; 16] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ZERO16` is never used [INFO] [stdout] --> src/hardware/consts.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const ZERO16: BoolArray16 = [false; 16]; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX16` is never used [INFO] [stdout] --> src/hardware/consts.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const MAX16: BoolArray16 = [true; 16]; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ONE16` is never used [INFO] [stdout] --> src/hardware/consts.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const ONE16: BoolArray16 = [ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `and` is never used [INFO] [stdout] --> src/hardware/gates.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn and(a: bool, b: bool) -> bool { return not(nand(a, b)); } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `or` is never used [INFO] [stdout] --> src/hardware/gates.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn or(a: bool, b: bool) -> bool { return nand(not(a), not(b)); } [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `xor` is never used [INFO] [stdout] --> src/hardware/gates.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn xor(a: bool, b: bool) -> bool [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mux` is never used [INFO] [stdout] --> src/hardware/gates.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn mux(a: bool, b: bool, sel: bool) -> bool { return or(and(b, sel), and(a, not(sel))); } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dmux` is never used [INFO] [stdout] --> src/hardware/gates.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn dmux(a: bool, sel: bool) -> (bool, bool) [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `not16` is never used [INFO] [stdout] --> src/hardware/gates.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn not16(a: BoolArray16) -> BoolArray16 [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `and16` is never used [INFO] [stdout] --> src/hardware/gates.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn and16(a: BoolArray16, b: BoolArray16) -> BoolArray16 [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `or16` is never used [INFO] [stdout] --> src/hardware/gates.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn or16(a: BoolArray16, b: BoolArray16) -> BoolArray16 [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mux16` is never used [INFO] [stdout] --> src/hardware/gates.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn mux16(a: BoolArray16, b: BoolArray16, sel: bool) -> BoolArray16 [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `or8way` is never used [INFO] [stdout] --> src/hardware/gates.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn or8way(a: BoolArray16) -> bool [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mux4way16` is never used [INFO] [stdout] --> src/hardware/gates.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn mux4way16( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mux8way16` is never used [INFO] [stdout] --> src/hardware/gates.rs:125:8 [INFO] [stdout] | [INFO] [stdout] 125 | pub fn mux8way16( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dmux4way` is never used [INFO] [stdout] --> src/hardware/gates.rs:175:8 [INFO] [stdout] | [INFO] [stdout] 175 | pub fn dmux4way(a: bool, sel: [bool; 2]) -> [bool; 4] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dmux8way` is never used [INFO] [stdout] --> src/hardware/gates.rs:202:8 [INFO] [stdout] | [INFO] [stdout] 202 | pub fn dmux8way(a: bool, sel: [bool; 3]) -> [bool; 8] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | let mut x = ZERO16; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | let mut y = MAX16; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `inc16` is never used [INFO] [stdout] --> src/hardware/calcs.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn inc16(a: BoolArray16) -> BoolArray16 [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/hardware/circuits.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Dff(bool); [INFO] [stdout] | --- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] = note: `Dff` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `dff` and `get` are never used [INFO] [stdout] --> src/hardware/circuits.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Dff [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 10 | pub fn dff(&mut self, value: bool) -> bool [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn get(&self) -> bool { return self.0; } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/hardware/circuits.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Bit(Dff); [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] = note: `Bit` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `bit` and `get` are never used [INFO] [stdout] --> src/hardware/circuits.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl Bit [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn bit(&mut self, value: bool, load: bool) -> bool [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn get(&self) -> bool { return self.0.get(); } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Register` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Register(pub [Bit; 16]); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Register` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `register` are never used [INFO] [stdout] --> src/hardware/circuits.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Register [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 44 | { [INFO] [stdout] 45 | pub fn new() -> Self { return Self([Bit::default(); 16]) } [INFO] [stdout] | ^^^ [INFO] [stdout] 46 | [INFO] [stdout] 47 | pub fn register(&mut self, value: BoolArray16, load: bool) -> BoolArray16 [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram8` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 72 | pub struct Ram8([Register; 8]); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram8` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `ram` are never used [INFO] [stdout] --> src/hardware/circuits.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl Ram8 [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 75 | { [INFO] [stdout] 76 | pub fn new() -> Self { return Self([Register::new(); 8]); } [INFO] [stdout] | ^^^ [INFO] [stdout] 77 | [INFO] [stdout] 78 | pub fn ram(&mut self, value: [bool; 16], addr: [bool; 3], load: bool) -> [bool; 16] [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram64` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 97 | pub struct Ram64([Ram8; 8]); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram64` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `ram` are never used [INFO] [stdout] --> src/hardware/circuits.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 99 | impl Ram64 [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 100 | { [INFO] [stdout] 101 | pub fn new() -> Self { return Self([Ram8::new(); 8]); } [INFO] [stdout] | ^^^ [INFO] [stdout] 102 | [INFO] [stdout] 103 | pub fn ram(&mut self, value: [bool; 16], addr: [bool; 6], load: bool) -> [bool; 16] [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram512` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 125 | pub struct Ram512([Ram64; 8]); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram512` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `ram` are never used [INFO] [stdout] --> src/hardware/circuits.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 127 | impl Ram512 [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 128 | { [INFO] [stdout] 129 | pub fn new() -> Self { return Self([Ram64::new(); 8]); } [INFO] [stdout] | ^^^ [INFO] [stdout] 130 | [INFO] [stdout] 131 | pub fn ram(&mut self, value: [bool; 16], addr: [bool; 9], load: bool) -> [bool; 16] [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram4k` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 153 | pub struct Ram4k([Ram512; 8]); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram4k` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `ram` are never used [INFO] [stdout] --> src/hardware/circuits.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl Ram4k [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 156 | { [INFO] [stdout] 157 | pub fn new() -> Self { return Self([Ram512::new(); 8]); } [INFO] [stdout] | ^^^ [INFO] [stdout] 158 | [INFO] [stdout] 159 | pub fn ram(&mut self, value: [bool; 16], addr: [bool; 12], load: bool) -> [bool; 16] [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram16k` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:182:12 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Ram16k([Ram4k; 4]); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram16k` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `ram` are never used [INFO] [stdout] --> src/hardware/circuits.rs:186:12 [INFO] [stdout] | [INFO] [stdout] 184 | impl Ram16k [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 185 | { [INFO] [stdout] 186 | pub fn new() -> Self { return Self([Ram4k::new(); 4]); } [INFO] [stdout] | ^^^ [INFO] [stdout] 187 | [INFO] [stdout] 188 | pub fn ram(&mut self, value: [bool; 16], addr: [bool; 14], load: bool) -> [bool; 16] [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Counter` is never constructed [INFO] [stdout] --> src/hardware/circuits.rs:208:12 [INFO] [stdout] | [INFO] [stdout] 208 | pub struct Counter(Register); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `count` are never used [INFO] [stdout] --> src/hardware/circuits.rs:212:12 [INFO] [stdout] | [INFO] [stdout] 210 | impl Counter [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 211 | { [INFO] [stdout] 212 | pub fn new() -> Self { return Self(Register::new()); } [INFO] [stdout] | ^^^ [INFO] [stdout] 213 | [INFO] [stdout] 214 | pub fn count(&mut self, value: [bool; 16], inc: bool, load: bool, reset: bool) -> [bool; 16] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `or16` is never used [INFO] [stdout] --> src/hardware/gates.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn or16(a: BoolArray16, b: BoolArray16) -> BoolArray16 [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mux16` is never used [INFO] [stdout] --> src/hardware/gates.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn mux16(a: BoolArray16, b: BoolArray16, sel: bool) -> BoolArray16 [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `or8way` is never used [INFO] [stdout] --> src/hardware/gates.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn or8way(a: BoolArray16) -> bool [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mux8way16` is never used [INFO] [stdout] --> src/hardware/gates.rs:125:8 [INFO] [stdout] | [INFO] [stdout] 125 | pub fn mux8way16( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dmux4way` is never used [INFO] [stdout] --> src/hardware/gates.rs:175:8 [INFO] [stdout] | [INFO] [stdout] 175 | pub fn dmux4way(a: bool, sel: [bool; 2]) -> [bool; 4] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dmux8way` is never used [INFO] [stdout] --> src/hardware/gates.rs:202:8 [INFO] [stdout] | [INFO] [stdout] 202 | pub fn dmux8way(a: bool, sel: [bool; 3]) -> [bool; 8] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.12s [INFO] running `Command { std: "docker" "inspect" "92c13fa6f1dd61757f5f9b190c843176ba954b1bad3ca3baa3d71f43fc7484cc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "92c13fa6f1dd61757f5f9b190c843176ba954b1bad3ca3baa3d71f43fc7484cc", kill_on_drop: false }` [INFO] [stdout] 92c13fa6f1dd61757f5f9b190c843176ba954b1bad3ca3baa3d71f43fc7484cc