[INFO] updating cached repository djanderson/riscv-5stage-simulator [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/djanderson/riscv-5stage-simulator [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/djanderson/riscv-5stage-simulator" "work/ex/clippy-test-run/sources/stable/gh/djanderson/riscv-5stage-simulator"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/djanderson/riscv-5stage-simulator'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/djanderson/riscv-5stage-simulator" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/djanderson/riscv-5stage-simulator"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/djanderson/riscv-5stage-simulator'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 6ed8d090cf5d52394ef9b00da3e4108bb8c0029e [INFO] sha for GitHub repo djanderson/riscv-5stage-simulator: 6ed8d090cf5d52394ef9b00da3e4108bb8c0029e [INFO] validating manifest of djanderson/riscv-5stage-simulator on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of djanderson/riscv-5stage-simulator on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing djanderson/riscv-5stage-simulator [INFO] finished frobbing djanderson/riscv-5stage-simulator [INFO] frobbed toml for djanderson/riscv-5stage-simulator written to work/ex/clippy-test-run/sources/stable/gh/djanderson/riscv-5stage-simulator/Cargo.toml [INFO] started frobbing djanderson/riscv-5stage-simulator [INFO] finished frobbing djanderson/riscv-5stage-simulator [INFO] frobbed toml for djanderson/riscv-5stage-simulator written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/djanderson/riscv-5stage-simulator/Cargo.toml [INFO] crate djanderson/riscv-5stage-simulator has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting djanderson/riscv-5stage-simulator against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/djanderson/riscv-5stage-simulator:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] da51699e3c89fd99bf22c420f8b7d5022aaa7eebce1582f6bc9a319bd5cf6969 [INFO] running `"docker" "start" "-a" "da51699e3c89fd99bf22c420f8b7d5022aaa7eebce1582f6bc9a319bd5cf6969"` [INFO] [stderr] Checking riscv-5stage-simulator v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/consts.rs:16:30 [INFO] [stderr] | [INFO] [stderr] 16 | pub const FUNCT7_MASK: u32 = 0xfe000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xfe00_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/consts.rs:19:27 [INFO] [stderr] | [INFO] [stderr] 19 | pub const RS2_MASK: u32 = 0x1f00000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0x01f0_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/consts.rs:22:29 [INFO] [stderr] | [INFO] [stderr] 22 | pub const BIT30_MASK: u32 = 0x40000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x4000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:154:26 [INFO] [stderr] | [INFO] [stderr] 154 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:154:26 [INFO] [stderr] | [INFO] [stderr] 154 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:174:26 [INFO] [stderr] | [INFO] [stderr] 174 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:174:26 [INFO] [stderr] | [INFO] [stderr] 174 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:183:35 [INFO] [stderr] | [INFO] [stderr] 183 | fields.imm = Some((insn & 0xfff00000) >> 20); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xfff0_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:193:26 [INFO] [stderr] | [INFO] [stderr] 193 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:193:26 [INFO] [stderr] | [INFO] [stderr] 193 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:198:28 [INFO] [stderr] | [INFO] [stderr] 198 | let imm_high = (insn & 0xfe000000) >> 20; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xfe00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:210:26 [INFO] [stderr] | [INFO] [stderr] 210 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:210:26 [INFO] [stderr] | [INFO] [stderr] 210 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:217:30 [INFO] [stderr] | [INFO] [stderr] 217 | let imm_bit_12 = (insn & 0x80000000) >> 19; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:219:28 [INFO] [stderr] | [INFO] [stderr] 219 | let imm_high = (insn & 0x7e000000) >> 20; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x7e00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:231:26 [INFO] [stderr] | [INFO] [stderr] 231 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:231:26 [INFO] [stderr] | [INFO] [stderr] 231 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:234:30 [INFO] [stderr] | [INFO] [stderr] 234 | fields.imm = Some(insn & 0xfffff000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_f000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:243:26 [INFO] [stderr] | [INFO] [stderr] 243 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:243:26 [INFO] [stderr] | [INFO] [stderr] 243 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:246:30 [INFO] [stderr] | [INFO] [stderr] 246 | let imm_bit_20 = (insn & 0x80000000) >> 11; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:248:27 [INFO] [stderr] | [INFO] [stderr] 248 | let imm_low = (insn & 0x7fe00000) >> 20; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x7fe0_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:250:30 [INFO] [stderr] | [INFO] [stderr] 250 | let imm_bit_11 = (insn & 0x100000) >> 9; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | 0b01_101_11 => Opcode::Lui, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b011_0111` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | 0b00_101_11 => Opcode::AuiPc, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b001_0111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | 0b11_011_11 => Opcode::Jal, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b110_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | 0b11_001_11 => Opcode::Jalr, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b110_0111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | 0b11_000_11 => Opcode::Branch, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b110_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | 0b00_000_11 => Opcode::Load, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b000_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | 0b01_000_11 => Opcode::Store, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b010_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | 0b01_100_11 => Opcode::Op, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b011_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | 0b00_100_11 => Opcode::OpImm, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b001_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | 0b01_111_11 => Opcode::Halt, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b011_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/memory/data.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / return match size { [INFO] [stderr] 36 | | 1 => word & 0xff, // isolate least significant byte [INFO] [stderr] 37 | | 2 => word & 0xffff, // isolate least significant halfword [INFO] [stderr] 38 | | 4 => word, [INFO] [stderr] 39 | | _ => panic!("Can only read 1, 2, or 4 bytes at a time"), [INFO] [stderr] 40 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 35 | match size { [INFO] [stderr] 36 | 1 => word & 0xff, // isolate least significant byte [INFO] [stderr] 37 | 2 => word & 0xffff, // isolate least significant halfword [INFO] [stderr] 38 | 4 => word, [INFO] [stderr] 39 | _ => panic!("Can only read 1, 2, or 4 bytes at a time"), [INFO] [stderr] 40 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/memory/data.rs:62:18 [INFO] [stderr] | [INFO] [stderr] 62 | 4 => 0xffffffff, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/consts.rs:16:30 [INFO] [stderr] | [INFO] [stderr] 16 | pub const FUNCT7_MASK: u32 = 0xfe000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xfe00_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/consts.rs:19:27 [INFO] [stderr] | [INFO] [stderr] 19 | pub const RS2_MASK: u32 = 0x1f00000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0x01f0_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/consts.rs:22:29 [INFO] [stderr] | [INFO] [stderr] 22 | pub const BIT30_MASK: u32 = 0x40000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x4000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/immediates.rs:31:37 [INFO] [stderr] | [INFO] [stderr] 31 | let insn = Instruction::new(0xfea5dee3); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xfea5_dee3` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/immediates.rs:39:37 [INFO] [stderr] | [INFO] [stderr] 39 | let insn = Instruction::new(0x00e6e863); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00e6_e863` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:154:26 [INFO] [stderr] | [INFO] [stderr] 154 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:154:26 [INFO] [stderr] | [INFO] [stderr] 154 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:174:26 [INFO] [stderr] | [INFO] [stderr] 174 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:174:26 [INFO] [stderr] | [INFO] [stderr] 174 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:183:35 [INFO] [stderr] | [INFO] [stderr] 183 | fields.imm = Some((insn & 0xfff00000) >> 20); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xfff0_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:193:26 [INFO] [stderr] | [INFO] [stderr] 193 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:193:26 [INFO] [stderr] | [INFO] [stderr] 193 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:198:28 [INFO] [stderr] | [INFO] [stderr] 198 | let imm_high = (insn & 0xfe000000) >> 20; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xfe00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:210:26 [INFO] [stderr] | [INFO] [stderr] 210 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:210:26 [INFO] [stderr] | [INFO] [stderr] 210 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:217:30 [INFO] [stderr] | [INFO] [stderr] 217 | let imm_bit_12 = (insn & 0x80000000) >> 19; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:219:28 [INFO] [stderr] | [INFO] [stderr] 219 | let imm_high = (insn & 0x7e000000) >> 20; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x7e00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:231:26 [INFO] [stderr] | [INFO] [stderr] 231 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:231:26 [INFO] [stderr] | [INFO] [stderr] 231 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:234:30 [INFO] [stderr] | [INFO] [stderr] 234 | fields.imm = Some(insn & 0xfffff000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_f000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/instruction/decoder.rs:243:26 [INFO] [stderr] | [INFO] [stderr] 243 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/instruction/decoder.rs:243:26 [INFO] [stderr] | [INFO] [stderr] 243 | fields.opcode = Some((insn & OPCODE_MASK)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:246:30 [INFO] [stderr] | [INFO] [stderr] 246 | let imm_bit_20 = (insn & 0x80000000) >> 11; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x8000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:248:27 [INFO] [stderr] | [INFO] [stderr] 248 | let imm_low = (insn & 0x7fe00000) >> 20; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x7fe0_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:250:30 [INFO] [stderr] | [INFO] [stderr] 250 | let imm_bit_11 = (insn & 0x100000) >> 9; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:269:13 [INFO] [stderr] | [INFO] [stderr] 269 | 0xffffffff [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:276:20 [INFO] [stderr] | [INFO] [stderr] 276 | let insn = 0x7302b3; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0073_02b3` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:288:20 [INFO] [stderr] | [INFO] [stderr] 288 | let insn = 0x1430293; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0x0143_0293` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:300:20 [INFO] [stderr] | [INFO] [stderr] 300 | let insn = 0x331293; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0033_1293` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:312:20 [INFO] [stderr] | [INFO] [stderr] 312 | let insn = 0x64005703; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x6400_5703` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:324:20 [INFO] [stderr] | [INFO] [stderr] 324 | let insn = 0x2532423; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0x0253_2423` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:336:20 [INFO] [stderr] | [INFO] [stderr] 336 | let insn = 0x6628263; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0x0662_8263` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:349:20 [INFO] [stderr] | [INFO] [stderr] 349 | let insn = 0x123452b7; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1234_52b7` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:353:41 [INFO] [stderr] | [INFO] [stderr] 353 | assert_eq!(fields.imm.unwrap(), 0x12345000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1234_5000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:359:20 [INFO] [stderr] | [INFO] [stderr] 359 | let insn = 0x64000ef; [INFO] [stderr] | ^^^^^^^^^ help: consider: `0x0640_00ef` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:366:20 [INFO] [stderr] | [INFO] [stderr] 366 | let insn = 0xf79ff06f; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xf79f_f06f` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction/decoder.rs:370:41 [INFO] [stderr] | [INFO] [stderr] 370 | assert_eq!(fields.imm.unwrap(), 2097016); [INFO] [stderr] | ^^^^^^^ help: consider: `2_097_016` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | 0b01_101_11 => Opcode::Lui, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b011_0111` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::inconsistent_digit_grouping)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | 0b00_101_11 => Opcode::AuiPc, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b001_0111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | 0b11_011_11 => Opcode::Jal, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b110_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | 0b11_001_11 => Opcode::Jalr, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b110_0111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | 0b11_000_11 => Opcode::Branch, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b110_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | 0b00_000_11 => Opcode::Load, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b000_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | 0b01_000_11 => Opcode::Store, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b010_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | 0b01_100_11 => Opcode::Op, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b011_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | 0b00_100_11 => Opcode::OpImm, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b001_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: digits grouped inconsistently by underscores [INFO] [stderr] --> src/instruction/mod.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | 0b01_111_11 => Opcode::Halt, [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b011_1111` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inconsistent_digit_grouping [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/memory/data.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / return match size { [INFO] [stderr] 36 | | 1 => word & 0xff, // isolate least significant byte [INFO] [stderr] 37 | | 2 => word & 0xffff, // isolate least significant halfword [INFO] [stderr] 38 | | 4 => word, [INFO] [stderr] 39 | | _ => panic!("Can only read 1, 2, or 4 bytes at a time"), [INFO] [stderr] 40 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 35 | match size { [INFO] [stderr] 36 | 1 => word & 0xff, // isolate least significant byte [INFO] [stderr] 37 | 2 => word & 0xffff, // isolate least significant halfword [INFO] [stderr] 38 | 4 => word, [INFO] [stderr] 39 | _ => panic!("Can only read 1, 2, or 4 bytes at a time"), [INFO] [stderr] 40 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/memory/data.rs:62:18 [INFO] [stderr] | [INFO] [stderr] 62 | 4 => 0xffffffff, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/memory/data.rs:120:42 [INFO] [stderr] | [INFO] [stderr] 120 | assert_eq!(mem.read(addr, size), 0xff0000); [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00ff_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/memory/data.rs:133:42 [INFO] [stderr] | [INFO] [stderr] 133 | assert_eq!(mem.read(addr, size), 0xff000000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xff00_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/memory/data.rs:165:31 [INFO] [stderr] | [INFO] [stderr] 165 | mem.write(addr, size, 0xf0f0f0f0); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xf0f0_f0f0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/memory/data.rs:166:42 [INFO] [stderr] | [INFO] [stderr] 166 | assert_eq!(mem.read(addr, size), 0xf0f0f0f0); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xf0f0_f0f0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:17:27 [INFO] [stderr] | [INFO] [stderr] 17 | BranchOnEqual => (!(src1 == src2) as i32, false), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `src1 != src2` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:18:30 [INFO] [stderr] | [INFO] [stderr] 18 | BranchOnNotEqual => (!(src1 != src2) as i32, false), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `src1 == src2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:19:30 [INFO] [stderr] | [INFO] [stderr] 19 | BranchOnLessThan => (!(src1 < src2) as i32, false), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `src1 >= src2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | !((src1 as u32) < (src2 as u32)) as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(src1 as u32) >= (src2 as u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:24:36 [INFO] [stderr] | [INFO] [stderr] 24 | BranchOnGreaterOrEqual => (!(src1 >= src2) as i32, false), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `src1 < src2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | !((src1 as u32) >= (src2 as u32)) as [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(src1 as u32) < (src2 as u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/memory/instruction.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | / match regex.captures(&l) { [INFO] [stderr] 65 | | Some(caps) => { [INFO] [stderr] 66 | | let addr = extract_addr(&caps).unwrap(); [INFO] [stderr] 67 | | // Test that addr matches the actual location in memory [INFO] [stderr] ... | [INFO] [stderr] 73 | | None => {} [INFO] [stderr] 74 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 64 | if let Some(caps) = regex.captures(&l) { [INFO] [stderr] 65 | let addr = extract_addr(&caps).unwrap(); [INFO] [stderr] 66 | // Test that addr matches the actual location in memory [INFO] [stderr] 67 | assert_eq!(addr, (mem.len() * 4) as u32); [INFO] [stderr] 68 | let insn = extract_insn(&caps).unwrap(); [INFO] [stderr] 69 | mem.push(insn); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pipeline/stages.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | / let rs1: i32; [INFO] [stderr] 51 | | if hazards::reg_hazard_src1(&insn, write_pipeline) { [INFO] [stderr] 52 | | rs1 = match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 53 | | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] ... | [INFO] [stderr] 57 | | rs1 = reg.gpr[insn.fields.rs1.unwrap_or(0) as usize].read() as i32; [INFO] [stderr] 58 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 50 | let rs1 = if hazards::reg_hazard_src1(&insn, write_pipeline) { match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 51 | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] 52 | false => write_pipeline.mem_wb.alu_result, [INFO] [stderr] 53 | } } else { reg.gpr[insn.fields.rs1.unwrap_or(0) as usize].read() as i32 }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pipeline/stages.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / let rs2: i32; [INFO] [stderr] 61 | | if hazards::reg_hazard_src2(&insn, write_pipeline) { [INFO] [stderr] 62 | | rs2 = match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 63 | | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] ... | [INFO] [stderr] 67 | | rs2 = reg.gpr[insn.fields.rs2.unwrap_or(0) as usize].read() as i32; [INFO] [stderr] 68 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 60 | let rs2 = if hazards::reg_hazard_src2(&insn, write_pipeline) { match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 61 | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] 62 | false => write_pipeline.mem_wb.alu_result, [INFO] [stderr] 63 | } } else { reg.gpr[insn.fields.rs2.unwrap_or(0) as usize].read() as i32 }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/pipeline/stages.rs:52:15 [INFO] [stderr] | [INFO] [stderr] 52 | rs1 = match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] | _______________^ [INFO] [stderr] 53 | | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] 54 | | false => write_pipeline.mem_wb.alu_result, [INFO] [stderr] 55 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if write_pipeline.mem_wb.insn.semantics.mem_read { write_pipeline.mem_wb.mem_result as i32 } else { write_pipeline.mem_wb.alu_result }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/pipeline/stages.rs:62:15 [INFO] [stderr] | [INFO] [stderr] 62 | rs2 = match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] | _______________^ [INFO] [stderr] 63 | | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] 64 | | false => write_pipeline.mem_wb.alu_result, [INFO] [stderr] 65 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if write_pipeline.mem_wb.insn.semantics.mem_read { write_pipeline.mem_wb.mem_result as i32 } else { write_pipeline.mem_wb.alu_result }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pipeline/stages.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | / let desc: &str; [INFO] [stderr] 95 | | if read_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 96 | | rs1 = read_pipeline.mem_wb.mem_result as i32; [INFO] [stderr] 97 | | desc = "data memory"; [INFO] [stderr] ... | [INFO] [stderr] 100 | | desc = "previous ALU result"; [INFO] [stderr] 101 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let desc = if read_pipeline.mem_wb.insn.semantics.mem_read { ..; "data memory" } else { ..; "previous ALU result" };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pipeline/stages.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | / let desc: &str; [INFO] [stderr] 123 | | if read_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 124 | | rs2 = read_pipeline.mem_wb.mem_result as i32; [INFO] [stderr] 125 | | desc = "data memory"; [INFO] [stderr] ... | [INFO] [stderr] 128 | | desc = "previous ALU result"; [INFO] [stderr] 129 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let desc = if read_pipeline.mem_wb.insn.semantics.mem_read { ..; "data memory" } else { ..; "previous ALU result" };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `pipeline::Pipeline` [INFO] [stderr] --> src/pipeline/mod.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / pub fn new() -> Pipeline { [INFO] [stderr] 21 | | Pipeline { [INFO] [stderr] 22 | | if_id: IfIdRegister::new(), [INFO] [stderr] 23 | | id_ex: IdExRegister::new(), [INFO] [stderr] ... | [INFO] [stderr] 26 | | } [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 19 | impl Default for pipeline::Pipeline { [INFO] [stderr] 20 | fn default() -> Self { [INFO] [stderr] 21 | Self::new() [INFO] [stderr] 22 | } [INFO] [stderr] 23 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `pipeline::IfIdRegister` [INFO] [stderr] --> src/pipeline/mod.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / pub fn new() -> IfIdRegister { [INFO] [stderr] 44 | | IfIdRegister { [INFO] [stderr] 45 | | pc: 0, [INFO] [stderr] 46 | | raw_insn: 0x00_00_00_13, // NOP [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 33 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `pipeline::IdExRegister` [INFO] [stderr] --> src/pipeline/mod.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | / pub fn new() -> IdExRegister { [INFO] [stderr] 64 | | IdExRegister { [INFO] [stderr] 65 | | pc: 0, [INFO] [stderr] 66 | | insn: Instruction::default(), [INFO] [stderr] ... | [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 54 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `pipeline::ExMemRegister` [INFO] [stderr] --> src/pipeline/mod.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / pub fn new() -> ExMemRegister { [INFO] [stderr] 87 | | ExMemRegister { [INFO] [stderr] 88 | | pc: 0, [INFO] [stderr] 89 | | insn: Instruction::default(), [INFO] [stderr] ... | [INFO] [stderr] 93 | | } [INFO] [stderr] 94 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 76 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `pipeline::MemWbRegister` [INFO] [stderr] --> src/pipeline/mod.rs:109:5 [INFO] [stderr] | [INFO] [stderr] 109 | / pub fn new() -> MemWbRegister { [INFO] [stderr] 110 | | MemWbRegister { [INFO] [stderr] 111 | | pc: 0, [INFO] [stderr] 112 | | insn: Instruction::default(), [INFO] [stderr] ... | [INFO] [stderr] 115 | | } [INFO] [stderr] 116 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 100 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/register.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn read(&self) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/stages.rs:85:21 [INFO] [stderr] | [INFO] [stderr] 85 | let value = match insn.semantics.mem_to_reg { [INFO] [stderr] | _____________________^ [INFO] [stderr] 86 | | true => mem_result, [INFO] [stderr] 87 | | false => { [INFO] [stderr] 88 | | match insn.opcode { [INFO] [stderr] ... | [INFO] [stderr] 93 | | } [INFO] [stderr] 94 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 85 | let value = if insn.semantics.mem_to_reg { mem_result } else { [INFO] [stderr] 86 | match insn.opcode { [INFO] [stderr] 87 | Opcode::Lui => insn.fields.imm.unwrap(), [INFO] [stderr] 88 | Opcode::Jal | Opcode::Jalr => npc, [INFO] [stderr] 89 | _ => alu_result as u32, [INFO] [stderr] 90 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:17:27 [INFO] [stderr] | [INFO] [stderr] 17 | BranchOnEqual => (!(src1 == src2) as i32, false), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `src1 != src2` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:18:30 [INFO] [stderr] | [INFO] [stderr] 18 | BranchOnNotEqual => (!(src1 != src2) as i32, false), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `src1 == src2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:19:30 [INFO] [stderr] | [INFO] [stderr] 19 | BranchOnLessThan => (!(src1 < src2) as i32, false), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `src1 >= src2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | !((src1 as u32) < (src2 as u32)) as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(src1 as u32) >= (src2 as u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:24:36 [INFO] [stderr] | [INFO] [stderr] 24 | BranchOnGreaterOrEqual => (!(src1 >= src2) as i32, false), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `src1 < src2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/alu.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | !((src1 as u32) >= (src2 as u32)) as [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(src1 as u32) < (src2 as u32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/memory/instruction.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | / match regex.captures(&l) { [INFO] [stderr] 65 | | Some(caps) => { [INFO] [stderr] 66 | | let addr = extract_addr(&caps).unwrap(); [INFO] [stderr] 67 | | // Test that addr matches the actual location in memory [INFO] [stderr] ... | [INFO] [stderr] 73 | | None => {} [INFO] [stderr] 74 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 64 | if let Some(caps) = regex.captures(&l) { [INFO] [stderr] 65 | let addr = extract_addr(&caps).unwrap(); [INFO] [stderr] 66 | // Test that addr matches the actual location in memory [INFO] [stderr] 67 | assert_eq!(addr, (mem.len() * 4) as u32); [INFO] [stderr] 68 | let insn = extract_insn(&caps).unwrap(); [INFO] [stderr] 69 | mem.push(insn); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pipeline/stages.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | / let rs1: i32; [INFO] [stderr] 51 | | if hazards::reg_hazard_src1(&insn, write_pipeline) { [INFO] [stderr] 52 | | rs1 = match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 53 | | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] ... | [INFO] [stderr] 57 | | rs1 = reg.gpr[insn.fields.rs1.unwrap_or(0) as usize].read() as i32; [INFO] [stderr] 58 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 50 | let rs1 = if hazards::reg_hazard_src1(&insn, write_pipeline) { match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 51 | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] 52 | false => write_pipeline.mem_wb.alu_result, [INFO] [stderr] 53 | } } else { reg.gpr[insn.fields.rs1.unwrap_or(0) as usize].read() as i32 }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pipeline/stages.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / let rs2: i32; [INFO] [stderr] 61 | | if hazards::reg_hazard_src2(&insn, write_pipeline) { [INFO] [stderr] 62 | | rs2 = match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 63 | | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] ... | [INFO] [stderr] 67 | | rs2 = reg.gpr[insn.fields.rs2.unwrap_or(0) as usize].read() as i32; [INFO] [stderr] 68 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 60 | let rs2 = if hazards::reg_hazard_src2(&insn, write_pipeline) { match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 61 | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] 62 | false => write_pipeline.mem_wb.alu_result, [INFO] [stderr] 63 | } } else { reg.gpr[insn.fields.rs2.unwrap_or(0) as usize].read() as i32 }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/pipeline/stages.rs:52:15 [INFO] [stderr] | [INFO] [stderr] 52 | rs1 = match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] | _______________^ [INFO] [stderr] 53 | | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] 54 | | false => write_pipeline.mem_wb.alu_result, [INFO] [stderr] 55 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if write_pipeline.mem_wb.insn.semantics.mem_read { write_pipeline.mem_wb.mem_result as i32 } else { write_pipeline.mem_wb.alu_result }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/pipeline/stages.rs:62:15 [INFO] [stderr] | [INFO] [stderr] 62 | rs2 = match write_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] | _______________^ [INFO] [stderr] 63 | | true => write_pipeline.mem_wb.mem_result as i32, [INFO] [stderr] 64 | | false => write_pipeline.mem_wb.alu_result, [INFO] [stderr] 65 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if write_pipeline.mem_wb.insn.semantics.mem_read { write_pipeline.mem_wb.mem_result as i32 } else { write_pipeline.mem_wb.alu_result }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pipeline/stages.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | / let desc: &str; [INFO] [stderr] 95 | | if read_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 96 | | rs1 = read_pipeline.mem_wb.mem_result as i32; [INFO] [stderr] 97 | | desc = "data memory"; [INFO] [stderr] ... | [INFO] [stderr] 100 | | desc = "previous ALU result"; [INFO] [stderr] 101 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let desc = if read_pipeline.mem_wb.insn.semantics.mem_read { ..; "data memory" } else { ..; "previous ALU result" };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pipeline/stages.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | / let desc: &str; [INFO] [stderr] 123 | | if read_pipeline.mem_wb.insn.semantics.mem_read { [INFO] [stderr] 124 | | rs2 = read_pipeline.mem_wb.mem_result as i32; [INFO] [stderr] 125 | | desc = "data memory"; [INFO] [stderr] ... | [INFO] [stderr] 128 | | desc = "previous ALU result"; [INFO] [stderr] 129 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let desc = if read_pipeline.mem_wb.insn.semantics.mem_read { ..; "data memory" } else { ..; "previous ALU result" };` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `pipeline::Pipeline` [INFO] [stderr] --> src/pipeline/mod.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / pub fn new() -> Pipeline { [INFO] [stderr] 21 | | Pipeline { [INFO] [stderr] 22 | | if_id: IfIdRegister::new(), [INFO] [stderr] 23 | | id_ex: IdExRegister::new(), [INFO] [stderr] ... | [INFO] [stderr] 26 | | } [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 19 | impl Default for pipeline::Pipeline { [INFO] [stderr] 20 | fn default() -> Self { [INFO] [stderr] 21 | Self::new() [INFO] [stderr] 22 | } [INFO] [stderr] 23 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `pipeline::IfIdRegister` [INFO] [stderr] --> src/pipeline/mod.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / pub fn new() -> IfIdRegister { [INFO] [stderr] 44 | | IfIdRegister { [INFO] [stderr] 45 | | pc: 0, [INFO] [stderr] 46 | | raw_insn: 0x00_00_00_13, // NOP [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 33 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `pipeline::IdExRegister` [INFO] [stderr] --> src/pipeline/mod.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | / pub fn new() -> IdExRegister { [INFO] [stderr] 64 | | IdExRegister { [INFO] [stderr] 65 | | pc: 0, [INFO] [stderr] 66 | | insn: Instruction::default(), [INFO] [stderr] ... | [INFO] [stderr] 69 | | } [INFO] [stderr] 70 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 54 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `pipeline::ExMemRegister` [INFO] [stderr] --> src/pipeline/mod.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / pub fn new() -> ExMemRegister { [INFO] [stderr] 87 | | ExMemRegister { [INFO] [stderr] 88 | | pc: 0, [INFO] [stderr] 89 | | insn: Instruction::default(), [INFO] [stderr] ... | [INFO] [stderr] 93 | | } [INFO] [stderr] 94 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 76 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `pipeline::MemWbRegister` [INFO] [stderr] --> src/pipeline/mod.rs:109:5 [INFO] [stderr] | [INFO] [stderr] 109 | / pub fn new() -> MemWbRegister { [INFO] [stderr] 110 | | MemWbRegister { [INFO] [stderr] 111 | | pc: 0, [INFO] [stderr] 112 | | insn: Instruction::default(), [INFO] [stderr] ... | [INFO] [stderr] 115 | | } [INFO] [stderr] 116 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 100 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/register.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn read(&self) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/stages.rs:85:21 [INFO] [stderr] | [INFO] [stderr] 85 | let value = match insn.semantics.mem_to_reg { [INFO] [stderr] | _____________________^ [INFO] [stderr] 86 | | true => mem_result, [INFO] [stderr] 87 | | false => { [INFO] [stderr] 88 | | match insn.opcode { [INFO] [stderr] ... | [INFO] [stderr] 93 | | } [INFO] [stderr] 94 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 85 | let value = if insn.semantics.mem_to_reg { mem_result } else { [INFO] [stderr] 86 | match insn.opcode { [INFO] [stderr] 87 | Opcode::Lui => insn.fields.imm.unwrap(), [INFO] [stderr] 88 | Opcode::Jal | Opcode::Jalr => npc, [INFO] [stderr] 89 | _ => alu_result as u32, [INFO] [stderr] 90 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.79s [INFO] running `"docker" "inspect" "da51699e3c89fd99bf22c420f8b7d5022aaa7eebce1582f6bc9a319bd5cf6969"` [INFO] running `"docker" "rm" "-f" "da51699e3c89fd99bf22c420f8b7d5022aaa7eebce1582f6bc9a319bd5cf6969"` [INFO] [stdout] da51699e3c89fd99bf22c420f8b7d5022aaa7eebce1582f6bc9a319bd5cf6969