[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] testing systemxlabs/riscv-simulator against try#b83b707f97d809763b7861afa7638871f3339a33 for pr-145838-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsystemxlabs%2Friscv-simulator" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/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-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/systemxlabs/riscv-simulator on toolchain b83b707f97d809763b7861afa7638871f3339a33 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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" "+b83b707f97d809763b7861afa7638871f3339a33" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1654bebe33c32cee3f5ea4e4c9e30120a01cf7ecbbe878fb56c6453ad860bfee [INFO] running `Command { std: "docker" "start" "-a" "1654bebe33c32cee3f5ea4e4c9e30120a01cf7ecbbe878fb56c6453ad860bfee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1654bebe33c32cee3f5ea4e4c9e30120a01cf7ecbbe878fb56c6453ad860bfee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1654bebe33c32cee3f5ea4e4c9e30120a01cf7ecbbe878fb56c6453ad860bfee", kill_on_drop: false }` [INFO] [stdout] 1654bebe33c32cee3f5ea4e4c9e30120a01cf7ecbbe878fb56c6453ad860bfee [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5aa3c3a56a2503187fb4d0efddccfa52bb69fdc4f40fad2eff17c92e1443b283 [INFO] running `Command { std: "docker" "start" "-a" "5aa3c3a56a2503187fb4d0efddccfa52bb69fdc4f40fad2eff17c92e1443b283", kill_on_drop: false }` [INFO] [stderr] Compiling 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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NandGate` and `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 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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: enum `RegisterKind` is never used [INFO] [stdout] --> src/register.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum RegisterKind { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.55s [INFO] running `Command { std: "docker" "inspect" "5aa3c3a56a2503187fb4d0efddccfa52bb69fdc4f40fad2eff17c92e1443b283", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5aa3c3a56a2503187fb4d0efddccfa52bb69fdc4f40fad2eff17c92e1443b283", kill_on_drop: false }` [INFO] [stdout] 5aa3c3a56a2503187fb4d0efddccfa52bb69fdc4f40fad2eff17c92e1443b283 [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 048105d12577298606283ce93654a0ee27c288c30415d2954dcd0c15b14d9873 [INFO] running `Command { std: "docker" "start" "-a" "048105d12577298606283ce93654a0ee27c288c30415d2954dcd0c15b14d9873", kill_on_drop: false }` [INFO] [stderr] Compiling 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)]` (part of `#[warn(unused)]`) 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` and `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: 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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: enum `RegisterKind` is never used [INFO] [stdout] --> src/register.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum RegisterKind { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.22s [INFO] running `Command { std: "docker" "inspect" "048105d12577298606283ce93654a0ee27c288c30415d2954dcd0c15b14d9873", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "048105d12577298606283ce93654a0ee27c288c30415d2954dcd0c15b14d9873", kill_on_drop: false }` [INFO] [stdout] 048105d12577298606283ce93654a0ee27c288c30415d2954dcd0c15b14d9873 [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] a7cfd26761b5971188637013a9a4f837037bfc4dd70d9fdd683aa0543a61b1bb [INFO] running `Command { std: "docker" "start" "-a" "a7cfd26761b5971188637013a9a4f837037bfc4dd70d9fdd683aa0543a61b1bb", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `Byte` [INFO] [stderr] --> src/alu/alu.rs:7:24 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::info::{Bit, Byte, Word, BIT_0, BIT_1, BYTE_BIT_SIZE, WORD_BYTE_SIZE}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `BIT_0` [INFO] [stderr] --> src/alu/alu.rs:105:29 [INFO] [stderr] | [INFO] [stderr] 105 | use crate::info::{Word, BIT_0}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `NandGate` and `OrGate` [INFO] [stderr] --> src/circuit/latch.rs:1:28 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::circuit::gate::{NandGate, NorGate, OrGate}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Bit` [INFO] [stderr] --> src/mem/chip.rs:65:23 [INFO] [stderr] | [INFO] [stderr] 65 | use crate::info::{Bit, Byte, Word, BIT_0, BIT_1}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Bit` [INFO] [stderr] --> src/register.rs:1:19 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::info::{Bit, Word}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input` [INFO] [stderr] --> src/alu/shifter.rs:7:32 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn exec(op: Operation, input: Word, shift: Word) -> Word { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `shift` [INFO] [stderr] --> src/alu/shifter.rs:7:45 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn exec(op: Operation, input: Word, shift: Word) -> Word { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_shift` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input` [INFO] [stderr] --> src/alu/shifter.rs:16:34 [INFO] [stderr] | [INFO] [stderr] 16 | fn shift_left_logical(&self, input: Word, shift: Word) -> Word { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `shift` [INFO] [stderr] --> src/alu/shifter.rs:16:47 [INFO] [stderr] | [INFO] [stderr] 16 | fn shift_left_logical(&self, input: Word, shift: Word) -> Word { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_shift` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `instruction` [INFO] [stderr] --> src/cu/cu.rs:22:29 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn loop_exec(&self, instruction: Instruction) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stderr] [INFO] [stderr] warning: multiple variants are never constructed [INFO] [stderr] --> src/alu/alu.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub enum Operation { [INFO] [stderr] | --------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 13 | OR, [INFO] [stderr] | ^^ [INFO] [stderr] 14 | AND, [INFO] [stderr] | ^^^ [INFO] [stderr] 15 | XOR, [INFO] [stderr] | ^^^ [INFO] [stderr] 16 | // set less than (unsigned) [INFO] [stderr] 17 | SLT, [INFO] [stderr] | ^^^ [INFO] [stderr] 18 | SLTU, [INFO] [stderr] | ^^^^ [INFO] [stderr] 19 | // shift left logical [INFO] [stderr] 20 | SLL, [INFO] [stderr] | ^^^ [INFO] [stderr] 21 | // shift right logical/arithmetic [INFO] [stderr] 22 | SRL, [INFO] [stderr] | ^^^ [INFO] [stderr] 23 | SRA, [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Operation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: method `shift_left_logical` is never used [INFO] [stderr] --> src/alu/shifter.rs:16:8 [INFO] [stderr] | [INFO] [stderr] 6 | impl Shifter { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 16 | fn shift_left_logical(&self, input: Word, shift: Word) -> Word { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DFlipFlop` is never constructed [INFO] [stderr] --> src/circuit/flip_flop.rs:3:12 [INFO] [stderr] | [INFO] [stderr] 3 | pub struct DFlipFlop { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `exec` are never used [INFO] [stderr] --> src/circuit/flip_flop.rs:7:12 [INFO] [stderr] | [INFO] [stderr] 6 | impl DFlipFlop { [INFO] [stderr] | -------------- associated items in this implementation [INFO] [stderr] 7 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 11 | pub fn exec(&mut self, input: Bit) -> Bit { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `alu`, `cu`, and `adder` are never read [INFO] [stderr] --> src/cpu.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 18 | pub struct Cpu { [INFO] [stderr] | --- fields in this struct [INFO] [stderr] 19 | alu: Alu, [INFO] [stderr] | ^^^ [INFO] [stderr] 20 | cu: Cu, [INFO] [stderr] | ^^ [INFO] [stderr] 21 | pc: Word, [INFO] [stderr] 22 | adder: MultiAdder, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `pc`, `adder`, and `ir` are never read [INFO] [stderr] --> src/cu/cu.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 6 | pub struct Cu { [INFO] [stderr] | -- fields in this struct [INFO] [stderr] 7 | /// Program counter [INFO] [stderr] 8 | pc: Word, [INFO] [stderr] | ^^ [INFO] [stderr] 9 | adder: MultiAdder, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 10 | /// Instruction register [INFO] [stderr] 11 | ir: Word, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: method `loop_exec` is never used [INFO] [stderr] --> src/cu/cu.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 14 | impl Cu { [INFO] [stderr] | ------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 22 | pub fn loop_exec(&self, instruction: Instruction) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `set1`, `set0`, and `reverse` are never used [INFO] [stderr] --> src/info/bit.rs:29:12 [INFO] [stderr] | [INFO] [stderr] 8 | impl Bit { [INFO] [stderr] | -------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 29 | pub fn set1(&mut self) { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 33 | pub fn set0(&mut self) { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 37 | pub fn reverse(&mut self) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Instruction` is never constructed [INFO] [stderr] --> src/instruction.rs:4:12 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct Instruction(Word); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `opcode`, `rd`, `func3`, `rs1`, and `imm0_11` are never read [INFO] [stderr] --> src/instruction.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 90 | I { [INFO] [stderr] | - fields in this variant [INFO] [stderr] 91 | opcode: [Bit; 7], [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 92 | rd: [Bit; 5], [INFO] [stderr] | ^^ [INFO] [stderr] 93 | func3: [Bit; 3], [INFO] [stderr] | ^^^^^ [INFO] [stderr] 94 | rs1: [Bit; 5], [INFO] [stderr] | ^^^ [INFO] [stderr] 95 | imm0_11: [Bit; 12], [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `opcode`, `imm0_4`, `func3`, `rs1`, `rs2`, and `imm5_11` are never read [INFO] [stderr] --> src/instruction.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 98 | S { [INFO] [stderr] | - fields in this variant [INFO] [stderr] 99 | opcode: [Bit; 7], [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 100 | imm0_4: [Bit; 5], [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 101 | func3: [Bit; 3], [INFO] [stderr] | ^^^^^ [INFO] [stderr] 102 | rs1: [Bit; 5], [INFO] [stderr] | ^^^ [INFO] [stderr] 103 | rs2: [Bit; 5], [INFO] [stderr] | ^^^ [INFO] [stderr] 104 | imm5_11: [Bit; 7], [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple fields are never read [INFO] [stderr] --> src/instruction.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 107 | B { [INFO] [stderr] | - fields in this variant [INFO] [stderr] 108 | opcode: [Bit; 7], [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 109 | imm11: Bit, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 110 | imm1_4: [Bit; 4], [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 111 | func3: [Bit; 3], [INFO] [stderr] | ^^^^^ [INFO] [stderr] 112 | rs1: [Bit; 5], [INFO] [stderr] | ^^^ [INFO] [stderr] 113 | rs2: [Bit; 5], [INFO] [stderr] | ^^^ [INFO] [stderr] 114 | imm5_10: [Bit; 6], [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 115 | imm12: Bit, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `opcode`, `rd`, and `imm12_31` are never read [INFO] [stderr] --> src/instruction.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 118 | U { [INFO] [stderr] | - fields in this variant [INFO] [stderr] 119 | opcode: [Bit; 7], [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 120 | rd: [Bit; 5], [INFO] [stderr] | ^^ [INFO] [stderr] 121 | imm12_31: [Bit; 20], [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `opcode`, `rd`, `imm12_19`, `imm11`, `imm1_10`, and `imm20` are never read [INFO] [stderr] --> src/instruction.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 124 | J { [INFO] [stderr] | - fields in this variant [INFO] [stderr] 125 | opcode: [Bit; 7], [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 126 | rd: [Bit; 5], [INFO] [stderr] | ^^ [INFO] [stderr] 127 | imm12_19: [Bit; 8], [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 128 | imm11: Bit, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 129 | imm1_10: [Bit; 10], [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 130 | imm20: Bit, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Immediate` is never constructed [INFO] [stderr] --> src/instruction.rs:134:12 [INFO] [stderr] | [INFO] [stderr] 134 | pub struct Immediate(i32); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `from` is never used [INFO] [stderr] --> src/instruction.rs:136:12 [INFO] [stderr] | [INFO] [stderr] 135 | impl Immediate { [INFO] [stderr] | -------------- associated function in this implementation [INFO] [stderr] 136 | pub fn from(v: i32) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ShiftAmount` is never constructed [INFO] [stderr] --> src/instruction.rs:141:12 [INFO] [stderr] | [INFO] [stderr] 141 | pub struct ShiftAmount(u8); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `from` is never used [INFO] [stderr] --> src/instruction.rs:144:12 [INFO] [stderr] | [INFO] [stderr] 142 | impl ShiftAmount { [INFO] [stderr] | ---------------- associated function in this implementation [INFO] [stderr] 143 | /// shift amount represented by 5 bits and is unsigned. [INFO] [stderr] 144 | pub fn from(v: u8) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `InstructionType` is never used [INFO] [stderr] --> src/instruction.rs:150:10 [INFO] [stderr] | [INFO] [stderr] 150 | pub enum InstructionType { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Register` is never constructed [INFO] [stderr] --> src/register.rs:3:12 [INFO] [stderr] | [INFO] [stderr] 3 | pub struct Register(Word); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `RegisterKind` is never used [INFO] [stderr] --> src/register.rs:6:10 [INFO] [stderr] | [INFO] [stderr] 6 | pub enum RegisterKind { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `riscv-simulator` (bin "riscv-simulator" test) generated 31 warnings (run `cargo fix --bin "riscv-simulator" --tests` to apply 5 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/riscv_simulator-3c9b93801dd03238) [INFO] [stdout] [INFO] [stdout] running 25 tests [INFO] [stdout] test alu::alu::tests::sub ... ok [INFO] [stdout] test alu::half_adder::tests::half_adder ... ok [INFO] [stdout] test alu::multi_adder::tests::multi_adder ... ok [INFO] [stdout] test circuit::decoder::tests::one_to_two_decoder ... ok [INFO] [stdout] test alu::full_adder::tests::full_adder ... ok [INFO] [stdout] test circuit::decoder::tests::three_to_eight_decoder ... ok [INFO] [stdout] test circuit::gate::tests::nand ... ok [INFO] [stdout] test circuit::gate::tests::nor ... ok [INFO] [stdout] test circuit::multiplexer::tests::two_to_one_multiplexer ... ok [INFO] [stdout] test circuit::gate::tests::xor ... ok [INFO] [stdout] test circuit::multiplexer::tests::eight_to_one_multiplexer ... ok [INFO] [stdout] test info::byte::tests::get_set_bit ... ok [INFO] [stdout] test circuit::decoder::tests::two_to_four_decoder ... ok [INFO] [stdout] test circuit::latch::tests::sr_latch ... ok [INFO] [stdout] test info::word::tests::get_set_bit ... ok [INFO] [stdout] test circuit::multiplexer::tests::four_to_one_multiplexer ... ok [INFO] [stdout] test instruction::tests::test_decode ... ok [INFO] [stdout] test mem::array::tests::dram_array ... ok [INFO] [stdout] test mem::bank::tests::dram_bank ... ok [INFO] [stdout] test alu::alu::tests::add ... ok [INFO] [stdout] test mem::chip::tests::dram_chip ... ok [INFO] [stdout] test mem::dram::tests::dram_half_word ... ok [INFO] [stdout] test mem::dram::tests::dram_byte ... ok [INFO] [stdout] test program::test::test_load_program ... ok [INFO] [stdout] test mem::dram::tests::dram_word ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "a7cfd26761b5971188637013a9a4f837037bfc4dd70d9fdd683aa0543a61b1bb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a7cfd26761b5971188637013a9a4f837037bfc4dd70d9fdd683aa0543a61b1bb", kill_on_drop: false }` [INFO] [stdout] a7cfd26761b5971188637013a9a4f837037bfc4dd70d9fdd683aa0543a61b1bb