[INFO] updating cached repository DaveKram/gbaemulator [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/DaveKram/gbaemulator [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/DaveKram/gbaemulator" "work/ex/clippy-test-run/sources/stable/gh/DaveKram/gbaemulator"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/DaveKram/gbaemulator'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/DaveKram/gbaemulator" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/DaveKram/gbaemulator"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/DaveKram/gbaemulator'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 9e6f2ae0d5f4cbf5042828697b52191d4343612a [INFO] sha for GitHub repo DaveKram/gbaemulator: 9e6f2ae0d5f4cbf5042828697b52191d4343612a [INFO] validating manifest of DaveKram/gbaemulator 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 DaveKram/gbaemulator 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 DaveKram/gbaemulator [INFO] finished frobbing DaveKram/gbaemulator [INFO] frobbed toml for DaveKram/gbaemulator written to work/ex/clippy-test-run/sources/stable/gh/DaveKram/gbaemulator/Cargo.toml [INFO] started frobbing DaveKram/gbaemulator [INFO] finished frobbing DaveKram/gbaemulator [INFO] frobbed toml for DaveKram/gbaemulator written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/DaveKram/gbaemulator/Cargo.toml [INFO] crate DaveKram/gbaemulator 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 DaveKram/gbaemulator against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/DaveKram/gbaemulator:/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] 2cc335a8a1c498053bf50c3bd830f6cf5741c164d90ba7a3e1cf3301ba2b8584 [INFO] running `"docker" "start" "-a" "2cc335a8a1c498053bf50c3bd830f6cf5741c164d90ba7a3e1cf3301ba2b8584"` [INFO] [stderr] Compiling minifb v0.10.1 [INFO] [stderr] Checking simple_logger v0.5.0 [INFO] [stderr] Checking x11-dl v2.14.0 [INFO] [stderr] Checking gbaemulator v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/debugger.rs:45:4 [INFO] [stderr] | [INFO] [stderr] 45 | regs: regs [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `regs` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/debugger.rs:45:4 [INFO] [stderr] | [INFO] [stderr] 45 | regs: regs [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `regs` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/memory.rs:30:38 [INFO] [stderr] | [INFO] [stderr] 30 | pub const MEM_BIOS_START: i32 = 0x00000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_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/memory.rs:31:36 [INFO] [stderr] | [INFO] [stderr] 31 | pub const MEM_BIOS_END: i32 = 0x01FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x01FF_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.rs:32:50 [INFO] [stderr] | [INFO] [stderr] 32 | pub const MEM_EXTERNAL_WORKING_RAM_START: i32 = 0x02000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0200_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.rs:33:48 [INFO] [stderr] | [INFO] [stderr] 33 | pub const MEM_EXTERNAL_WORKING_RAM_END: i32 = 0x02FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x02FF_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.rs:34:50 [INFO] [stderr] | [INFO] [stderr] 34 | pub const MEM_INTERNAL_WORKING_RAM_START: i32 = 0x03000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0300_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.rs:35:48 [INFO] [stderr] | [INFO] [stderr] 35 | pub const MEM_INTERNAL_WORKING_RAM_END: i32 = 0x03FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x03FF_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.rs:36:43 [INFO] [stderr] | [INFO] [stderr] 36 | pub const MEM_IO_REGISTERS_START: i32 = 0x04000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0400_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.rs:37:42 [INFO] [stderr] | [INFO] [stderr] 37 | pub const MEM_IO_REGISTERS_END: i32 = 0x04FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x04FF_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.rs:38:48 [INFO] [stderr] | [INFO] [stderr] 38 | pub const MEM_BGOBJ_PALLETTE_RAM_START: i32 = 0x05000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0500_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.rs:39:46 [INFO] [stderr] | [INFO] [stderr] 39 | pub const MEM_BGOBJ_PALLETTE_RAM_END: i32 = 0x05FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x05FF_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.rs:40:37 [INFO] [stderr] | [INFO] [stderr] 40 | pub const MEM_VRAM_START: i32 = 0x06000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0600_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.rs:41:36 [INFO] [stderr] | [INFO] [stderr] 41 | pub const MEM_VRAM_END: i32 = 0x06FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x06FF_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.rs:42:45 [INFO] [stderr] | [INFO] [stderr] 42 | pub const MEM_OAMOBJ_ATTRIBS_START: i32 = 0x07000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0700_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.rs:43:43 [INFO] [stderr] | [INFO] [stderr] 43 | pub const MEM_OAMOBJ_ATTRIBS_END: i32 = 0x07FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x07FF_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.rs:44:39 [INFO] [stderr] | [INFO] [stderr] 44 | pub const MEM_GAMEPAK_START: i32 = 0x08000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0800_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.rs:45:38 [INFO] [stderr] | [INFO] [stderr] 45 | pub const MEM_GAMEPAK_END: i32 = 0x0DFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0DFF_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.rs:46:43 [INFO] [stderr] | [INFO] [stderr] 46 | pub const MEM_GAMEPAK_SRAM_START: i32 = 0x0E000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0E00_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.rs:47:42 [INFO] [stderr] | [INFO] [stderr] 47 | pub const MEM_GAMEPAK_SRAM_END: i32 = 0x0FFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0FFF_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: this if statement can be collapsed [INFO] [stderr] --> src/cpu.rs:79:4 [INFO] [stderr] | [INFO] [stderr] 79 | if self.dbugger.enabled() { [INFO] [stderr] | _____________^ [INFO] [stderr] 80 | | if !self.dbugger.should_continue_eof() { [INFO] [stderr] 81 | | self.dbugger.pause_for_input(); [INFO] [stderr] 82 | | } [INFO] [stderr] 83 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 79 | if self.dbugger.enabled() && !self.dbugger.should_continue_eof() { [INFO] [stderr] 80 | self.dbugger.pause_for_input(); [INFO] [stderr] 81 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:79:15 [INFO] [stderr] | [INFO] [stderr] 79 | 0x0000 => {return condition::EQ}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::EQ` [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] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:80:15 [INFO] [stderr] | [INFO] [stderr] 80 | 0x0001 => {return condition::NE}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::NE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:81:15 [INFO] [stderr] | [INFO] [stderr] 81 | 0x0010 => {return condition::CS}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::CS` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:82:15 [INFO] [stderr] | [INFO] [stderr] 82 | 0x0011 => {return condition::CC}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::CC` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:83:15 [INFO] [stderr] | [INFO] [stderr] 83 | 0x0100 => {return condition::MI}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::MI` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:84:15 [INFO] [stderr] | [INFO] [stderr] 84 | 0x0101 => {return condition::PL}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::PL` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:85:15 [INFO] [stderr] | [INFO] [stderr] 85 | 0x0110 => {return condition::VS}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::VS` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:86:15 [INFO] [stderr] | [INFO] [stderr] 86 | 0x0111 => {return condition::VC}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::VC` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:87:15 [INFO] [stderr] | [INFO] [stderr] 87 | 0x1000 => {return condition::HI}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::HI` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:88:15 [INFO] [stderr] | [INFO] [stderr] 88 | 0x1001 => {return condition::LS}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::LS` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:89:15 [INFO] [stderr] | [INFO] [stderr] 89 | 0x1010 => {return condition::GE}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::GE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:90:15 [INFO] [stderr] | [INFO] [stderr] 90 | 0x1011 => {return condition::LT}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::LT` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:91:15 [INFO] [stderr] | [INFO] [stderr] 91 | 0x1100 => {return condition::GT}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::GT` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:92:15 [INFO] [stderr] | [INFO] [stderr] 92 | 0x1101 => {return condition::LE}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::LE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:93:15 [INFO] [stderr] | [INFO] [stderr] 93 | 0x1110 => {return condition::AL}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::AL` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:94:10 [INFO] [stderr] | [INFO] [stderr] 94 | _ => {return condition::AL} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::AL` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction_arm.rs:124:31 [INFO] [stderr] | [INFO] [stderr] 124 | let base = (self.raw_val & 0xFFFFFF) << 2; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00FF_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_arm.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | let mut offset = 0x800000 & base; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0080_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_arm.rs:127:15 [INFO] [stderr] | [INFO] [stderr] 127 | offset = (0x7FFFFF & offset) - 0x800000; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x007F_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_arm.rs:127:36 [INFO] [stderr] | [INFO] [stderr] 127 | offset = (0x7FFFFF & offset) - 0x800000; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0080_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_arm.rs:148:48 [INFO] [stderr] | [INFO] [stderr] 148 | let opcode = self.dp2opcode((self.raw_val & 0x1E00000) >> 21); [INFO] [stderr] | ^^^^^^^^^ help: consider: `0x01E0_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.rs:30:38 [INFO] [stderr] | [INFO] [stderr] 30 | pub const MEM_BIOS_START: i32 = 0x00000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_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/memory.rs:31:36 [INFO] [stderr] | [INFO] [stderr] 31 | pub const MEM_BIOS_END: i32 = 0x01FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x01FF_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.rs:32:50 [INFO] [stderr] | [INFO] [stderr] 32 | pub const MEM_EXTERNAL_WORKING_RAM_START: i32 = 0x02000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0200_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.rs:33:48 [INFO] [stderr] | [INFO] [stderr] 33 | pub const MEM_EXTERNAL_WORKING_RAM_END: i32 = 0x02FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x02FF_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.rs:34:50 [INFO] [stderr] | [INFO] [stderr] 34 | pub const MEM_INTERNAL_WORKING_RAM_START: i32 = 0x03000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0300_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.rs:35:48 [INFO] [stderr] | [INFO] [stderr] 35 | pub const MEM_INTERNAL_WORKING_RAM_END: i32 = 0x03FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x03FF_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.rs:36:43 [INFO] [stderr] | [INFO] [stderr] 36 | pub const MEM_IO_REGISTERS_START: i32 = 0x04000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0400_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.rs:37:42 [INFO] [stderr] | [INFO] [stderr] 37 | pub const MEM_IO_REGISTERS_END: i32 = 0x04FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x04FF_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.rs:38:48 [INFO] [stderr] | [INFO] [stderr] 38 | pub const MEM_BGOBJ_PALLETTE_RAM_START: i32 = 0x05000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0500_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.rs:39:46 [INFO] [stderr] | [INFO] [stderr] 39 | pub const MEM_BGOBJ_PALLETTE_RAM_END: i32 = 0x05FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x05FF_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.rs:40:37 [INFO] [stderr] | [INFO] [stderr] 40 | pub const MEM_VRAM_START: i32 = 0x06000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0600_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.rs:41:36 [INFO] [stderr] | [INFO] [stderr] 41 | pub const MEM_VRAM_END: i32 = 0x06FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x06FF_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.rs:42:45 [INFO] [stderr] | [INFO] [stderr] 42 | pub const MEM_OAMOBJ_ATTRIBS_START: i32 = 0x07000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0700_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.rs:43:43 [INFO] [stderr] | [INFO] [stderr] 43 | pub const MEM_OAMOBJ_ATTRIBS_END: i32 = 0x07FFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x07FF_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.rs:44:39 [INFO] [stderr] | [INFO] [stderr] 44 | pub const MEM_GAMEPAK_START: i32 = 0x08000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0800_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.rs:45:38 [INFO] [stderr] | [INFO] [stderr] 45 | pub const MEM_GAMEPAK_END: i32 = 0x0DFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0DFF_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.rs:46:43 [INFO] [stderr] | [INFO] [stderr] 46 | pub const MEM_GAMEPAK_SRAM_START: i32 = 0x0E000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0E00_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.rs:47:42 [INFO] [stderr] | [INFO] [stderr] 47 | pub const MEM_GAMEPAK_SRAM_END: i32 = 0x0FFFFFFF; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0FFF_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: this if statement can be collapsed [INFO] [stderr] --> src/cpu.rs:79:4 [INFO] [stderr] | [INFO] [stderr] 79 | if self.dbugger.enabled() { [INFO] [stderr] | _____________^ [INFO] [stderr] 80 | | if !self.dbugger.should_continue_eof() { [INFO] [stderr] 81 | | self.dbugger.pause_for_input(); [INFO] [stderr] 82 | | } [INFO] [stderr] 83 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 79 | if self.dbugger.enabled() && !self.dbugger.should_continue_eof() { [INFO] [stderr] 80 | self.dbugger.pause_for_input(); [INFO] [stderr] 81 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:79:15 [INFO] [stderr] | [INFO] [stderr] 79 | 0x0000 => {return condition::EQ}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::EQ` [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] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:80:15 [INFO] [stderr] | [INFO] [stderr] 80 | 0x0001 => {return condition::NE}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::NE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:81:15 [INFO] [stderr] | [INFO] [stderr] 81 | 0x0010 => {return condition::CS}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::CS` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:82:15 [INFO] [stderr] | [INFO] [stderr] 82 | 0x0011 => {return condition::CC}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::CC` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:83:15 [INFO] [stderr] | [INFO] [stderr] 83 | 0x0100 => {return condition::MI}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::MI` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:84:15 [INFO] [stderr] | [INFO] [stderr] 84 | 0x0101 => {return condition::PL}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::PL` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:85:15 [INFO] [stderr] | [INFO] [stderr] 85 | 0x0110 => {return condition::VS}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::VS` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:86:15 [INFO] [stderr] | [INFO] [stderr] 86 | 0x0111 => {return condition::VC}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::VC` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:87:15 [INFO] [stderr] | [INFO] [stderr] 87 | 0x1000 => {return condition::HI}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::HI` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:88:15 [INFO] [stderr] | [INFO] [stderr] 88 | 0x1001 => {return condition::LS}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::LS` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:89:15 [INFO] [stderr] | [INFO] [stderr] 89 | 0x1010 => {return condition::GE}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::GE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:90:15 [INFO] [stderr] | [INFO] [stderr] 90 | 0x1011 => {return condition::LT}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::LT` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:91:15 [INFO] [stderr] | [INFO] [stderr] 91 | 0x1100 => {return condition::GT}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::GT` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:92:15 [INFO] [stderr] | [INFO] [stderr] 92 | 0x1101 => {return condition::LE}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::LE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:93:15 [INFO] [stderr] | [INFO] [stderr] 93 | 0x1110 => {return condition::AL}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::AL` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/instruction_arm.rs:94:10 [INFO] [stderr] | [INFO] [stderr] 94 | _ => {return condition::AL} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `condition::AL` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/instruction_arm.rs:124:31 [INFO] [stderr] | [INFO] [stderr] 124 | let base = (self.raw_val & 0xFFFFFF) << 2; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00FF_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_arm.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | let mut offset = 0x800000 & base; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0080_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_arm.rs:127:15 [INFO] [stderr] | [INFO] [stderr] 127 | offset = (0x7FFFFF & offset) - 0x800000; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x007F_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_arm.rs:127:36 [INFO] [stderr] | [INFO] [stderr] 127 | offset = (0x7FFFFF & offset) - 0x800000; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0080_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_arm.rs:148:48 [INFO] [stderr] | [INFO] [stderr] 148 | let opcode = self.dp2opcode((self.raw_val & 0x1E00000) >> 21); [INFO] [stderr] | ^^^^^^^^^ help: consider: `0x01E0_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: unused variable: `mem` [INFO] [stderr] --> src/display.rs:64:27 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn update(&mut self, mem: Rc>) { [INFO] [stderr] | ^^^ help: consider using `_mem` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `first_op_register` [INFO] [stderr] --> src/instruction_arm.rs:150:8 [INFO] [stderr] | [INFO] [stderr] 150 | let first_op_register = (self.raw_val & 0xF0000) >> 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using `_first_op_register` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `do_log` [INFO] [stderr] --> src/instruction_arm.rs:286:36 [INFO] [stderr] | [INFO] [stderr] 286 | fn handle_unimplemented_op(&self, do_log: &bool, cond: &condition, data_inst: i32) { [INFO] [stderr] | ^^^^^^ help: consider using `_do_log` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mem` [INFO] [stderr] --> src/display.rs:64:27 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn update(&mut self, mem: Rc>) { [INFO] [stderr] | ^^^ help: consider using `_mem` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `first_op_register` [INFO] [stderr] --> src/instruction_arm.rs:150:8 [INFO] [stderr] | [INFO] [stderr] 150 | let first_op_register = (self.raw_val & 0xF0000) >> 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using `_first_op_register` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `do_log` [INFO] [stderr] --> src/instruction_arm.rs:286:36 [INFO] [stderr] | [INFO] [stderr] 286 | fn handle_unimplemented_op(&self, do_log: &bool, cond: &condition, data_inst: i32) { [INFO] [stderr] | ^^^^^^ help: consider using `_do_log` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `retrieve_halfword` [INFO] [stderr] --> src/memory.rs:122:2 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn retrieve_halfword(&self, address: i32) -> i16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set` [INFO] [stderr] --> src/memory.rs:132:2 [INFO] [stderr] | [INFO] [stderr] 132 | pub fn set(&mut self, address: i32, value: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dump_mem` [INFO] [stderr] --> src/memory.rs:164:2 [INFO] [stderr] | [INFO] [stderr] 164 | pub fn dump_mem(&self, out_file: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_clear_color` [INFO] [stderr] --> src/display.rs:74:2 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn set_clear_color(&mut self, col: u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Q` [INFO] [stderr] --> src/registers.rs:27:14 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `I` [INFO] [stderr] --> src/registers.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F` [INFO] [stderr] --> src/registers.rs:27:20 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `T` [INFO] [stderr] --> src/registers.rs:27:23 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `M4` [INFO] [stderr] --> src/registers.rs:27:26 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `M3` [INFO] [stderr] --> src/registers.rs:27:30 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `M2` [INFO] [stderr] --> src/registers.rs:27:34 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `M1` [INFO] [stderr] --> src/registers.rs:27:38 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `M0` [INFO] [stderr] --> src/registers.rs:27:42 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dyn_get` [INFO] [stderr] --> src/registers.rs:217:2 [INFO] [stderr] | [INFO] [stderr] 217 | pub fn dyn_get(&self, reg: &str, cur_mode: &cpu::cpu_mode, cur_state: &cpu::cpu_state) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_cpsr_bit` [INFO] [stderr] --> src/registers.rs:358:2 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn get_cpsr_bit(&self, bit: CPSR_BIT) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/memory.rs:156:3 [INFO] [stderr] | [INFO] [stderr] 156 | file.read(&mut self.mem_bios).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/memory.rs:161:3 [INFO] [stderr] | [INFO] [stderr] 161 | file.read(&mut self.mem_gamepak).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:166:3 [INFO] [stderr] | [INFO] [stderr] 166 | buffer.write(&self.mem_bios).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:167:3 [INFO] [stderr] | [INFO] [stderr] 167 | buffer.write(&self.mem_external_working_ram).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:168:3 [INFO] [stderr] | [INFO] [stderr] 168 | buffer.write(&self.mem_internal_working_ram).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:169:3 [INFO] [stderr] | [INFO] [stderr] 169 | buffer.write(&self.mem_io_registers).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:170:3 [INFO] [stderr] | [INFO] [stderr] 170 | buffer.write(&self.mem_bgobj_pallete_ram).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:171:3 [INFO] [stderr] | [INFO] [stderr] 171 | buffer.write(&self.mem_vram).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:172:3 [INFO] [stderr] | [INFO] [stderr] 172 | buffer.write(&self.mem_oamobj_attribs).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:173:3 [INFO] [stderr] | [INFO] [stderr] 173 | buffer.write(&self.mem_gamepak).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:174:3 [INFO] [stderr] | [INFO] [stderr] 174 | buffer.write(&self.mem_gamepak_sram).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: type `CPSR_BIT` should have a camel case name such as `CpsrBit` [INFO] [stderr] --> src/registers.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | / pub enum CPSR_BIT { [INFO] [stderr] 27 | | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] 28 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 41 [INFO] [stderr] --> src/registers.rs:119:2 [INFO] [stderr] | [INFO] [stderr] 119 | pub fn set(&mut self, reg: &str, cur_mode: &cpu::cpu_mode, cur_state: &cpu::cpu_state, val: i32) { [INFO] [stderr] | _____^ [INFO] [stderr] 120 | | if reg == "r0" { [INFO] [stderr] 121 | | self.r0 = val; [INFO] [stderr] 122 | | }else if reg == "r1" { [INFO] [stderr] ... | [INFO] [stderr] 214 | | } [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 41 [INFO] [stderr] --> src/registers.rs:222:2 [INFO] [stderr] | [INFO] [stderr] 222 | pub fn get(&self, reg: &str, cur_mode: &cpu::cpu_mode, cur_state: &cpu::cpu_state) -> i32 { [INFO] [stderr] | _____^ [INFO] [stderr] 223 | | let mut ret_val: i32 = 0; [INFO] [stderr] 224 | | if reg == "r0" { [INFO] [stderr] 225 | | ret_val = self.r0; [INFO] [stderr] ... | [INFO] [stderr] 319 | | ret_val [INFO] [stderr] 320 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `self.cpsr` [INFO] [stderr] --> src/registers.rs:372:22 [INFO] [stderr] | [INFO] [stderr] 372 | CPSR_BIT::M0 => {((self.cpsr >> 0) & 1) as u8}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 38 [INFO] [stderr] --> src/registers.rs:376:2 [INFO] [stderr] | [INFO] [stderr] 376 | pub fn debugger_get(&self, reg: &str) -> i32 { [INFO] [stderr] | _____^ [INFO] [stderr] 377 | | let mut ret_val: i32 = 0; [INFO] [stderr] 378 | | if reg == "r0" { [INFO] [stderr] 379 | | ret_val = self.r0; [INFO] [stderr] ... | [INFO] [stderr] 453 | | ret_val [INFO] [stderr] 454 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: type `dp_opcode` should have a camel case name such as `DpOpcode` [INFO] [stderr] --> src/instruction_arm.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | / enum dp_opcode { [INFO] [stderr] 40 | | AND, EOR, SUB, RSB, [INFO] [stderr] 41 | | ADD, ADC, SBC, RSC, [INFO] [stderr] 42 | | TST, TEQ, CMP, CMN, [INFO] [stderr] 43 | | ORR, MOV, BIC, MVN [INFO] [stderr] 44 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/instruction_arm.rs:98:2 [INFO] [stderr] | [INFO] [stderr] 98 | fn execute_op(&self, cond: &condition, cur_mode: &mut cpu::cpu_mode, cur_state: &mut cpu::cpu_state, do_log: &bool) { [INFO] [stderr] | _____^ [INFO] [stderr] 99 | | //Bits 4-7 and 20-27 [INFO] [stderr] 100 | | let d = ((self.raw_val >> 16) & 0xFF0) | ((self.raw_val >> 4) & 0x0F); [INFO] [stderr] 101 | | [INFO] [stderr] ... | [INFO] [stderr] 245 | | } [INFO] [stderr] 246 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/instruction_arm.rs:98:111 [INFO] [stderr] | [INFO] [stderr] 98 | fn execute_op(&self, cond: &condition, cur_mode: &mut cpu::cpu_mode, cur_state: &mut cpu::cpu_state, do_log: &bool) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `bool` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/instruction_arm.rs:221:34 [INFO] [stderr] | [INFO] [stderr] 221 | }else if (d & 0x209) == 0x209 { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 222 | | //Register shifted register data processing - bit 25 == 0 && bit 7 == 0 && bit 4 == 0 [INFO] [stderr] 223 | | //TODO [INFO] [stderr] 224 | | match opcode { [INFO] [stderr] ... | [INFO] [stderr] 241 | | } [INFO] [stderr] 242 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/instruction_arm.rs:199:34 [INFO] [stderr] | [INFO] [stderr] 199 | }else if (d & 0x201) == 0x201 { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 200 | | //Register data processing - bit 25 == 0 && bit 4 == 0 [INFO] [stderr] 201 | | //(4-11 shift, 0-3 2nd operand register) [INFO] [stderr] 202 | | //TODO [INFO] [stderr] ... | [INFO] [stderr] 220 | | } [INFO] [stderr] 221 | | }else if (d & 0x209) == 0x209 { [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] error: &-masking with zero [INFO] [stderr] --> src/instruction_arm.rs:279:12 [INFO] [stderr] | [INFO] [stderr] 279 | }else if d & 0x0 == 0x0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::bad_bit_mask)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bad_bit_mask [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/instruction_arm.rs:279:12 [INFO] [stderr] | [INFO] [stderr] 279 | }else if d & 0x0 == 0x0 { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::erasing_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/instruction_arm.rs:286:44 [INFO] [stderr] | [INFO] [stderr] 286 | fn handle_unimplemented_op(&self, do_log: &bool, cond: &condition, data_inst: i32) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `bool` [INFO] [stderr] | [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/instruction_arm.rs:290:37 [INFO] [stderr] | [INFO] [stderr] 290 | fn handle_unkown_op(&self, do_log: &bool, cond: &condition, data_inst: i32) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `bool` [INFO] [stderr] | [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: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:303:5 [INFO] [stderr] | [INFO] [stderr] 303 | if check_z == 1 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_z == 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:308:5 [INFO] [stderr] | [INFO] [stderr] 308 | if check_z == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_z == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:313:5 [INFO] [stderr] | [INFO] [stderr] 313 | if check_c == 1 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_c == 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:318:5 [INFO] [stderr] | [INFO] [stderr] 318 | if check_c == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_c == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:323:5 [INFO] [stderr] | [INFO] [stderr] 323 | if check_n == 1 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_n == 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:328:5 [INFO] [stderr] | [INFO] [stderr] 328 | if check_n == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_n == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:333:5 [INFO] [stderr] | [INFO] [stderr] 333 | if check_v == 1 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_v == 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:338:5 [INFO] [stderr] | [INFO] [stderr] 338 | if check_v == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_v == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:344:5 [INFO] [stderr] | [INFO] [stderr] 344 | if check_c == 1 && check_z == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_c == 1 && check_z == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:350:5 [INFO] [stderr] | [INFO] [stderr] 350 | if check_c == 1 || check_z == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_c == 1 || check_z == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:356:5 [INFO] [stderr] | [INFO] [stderr] 356 | if (check_n == 1 && check_v == 1) || (check_n == 0 && check_v == 0) { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `(check_n == 1 && check_v == 1) || (check_n == 0 && check_v == 0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:362:5 [INFO] [stderr] | [INFO] [stderr] 362 | if (check_n == 1 && check_v == 0) || (check_n == 0 && check_v == 1) { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `(check_n == 1 && check_v == 0) || (check_n == 0 && check_v == 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:369:5 [INFO] [stderr] | [INFO] [stderr] 369 | if check_z == 0 && ((check_n == 1 && check_v == 1) || (check_n == 0 && check_v == 0)) { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_z == 0 && ((check_n == 1 && check_v == 1) || (check_n == 0 && check_v == 0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:376:5 [INFO] [stderr] | [INFO] [stderr] 376 | if check_z == 1 || (check_n == 1 && check_v == 0) || (check_n == 0 && check_v == 1) { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_z == 1 || (check_n == 1 && check_v == 0) || (check_n == 0 && check_v == 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 34 [INFO] [stderr] --> src/debugger.rs:72:2 [INFO] [stderr] | [INFO] [stderr] 72 | fn parse_debugger_command(&mut self, val: &str) { [INFO] [stderr] | _____^ [INFO] [stderr] 73 | | let actval = val.trim_right_matches("\r\n"); [INFO] [stderr] 74 | | let command_char = &actval[0..1]; [INFO] [stderr] 75 | | match command_char { [INFO] [stderr] ... | [INFO] [stderr] 147 | | } [INFO] [stderr] 148 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] error: aborting due to 14 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `gbaemulator`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: method is never used: `retrieve_halfword` [INFO] [stderr] --> src/memory.rs:122:2 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn retrieve_halfword(&self, address: i32) -> i16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set` [INFO] [stderr] --> src/memory.rs:132:2 [INFO] [stderr] | [INFO] [stderr] 132 | pub fn set(&mut self, address: i32, value: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dump_mem` [INFO] [stderr] --> src/memory.rs:164:2 [INFO] [stderr] | [INFO] [stderr] 164 | pub fn dump_mem(&self, out_file: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_clear_color` [INFO] [stderr] --> src/display.rs:74:2 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn set_clear_color(&mut self, col: u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Q` [INFO] [stderr] --> src/registers.rs:27:14 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `I` [INFO] [stderr] --> src/registers.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `F` [INFO] [stderr] --> src/registers.rs:27:20 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `T` [INFO] [stderr] --> src/registers.rs:27:23 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `M4` [INFO] [stderr] --> src/registers.rs:27:26 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `M3` [INFO] [stderr] --> src/registers.rs:27:30 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `M2` [INFO] [stderr] --> src/registers.rs:27:34 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `M1` [INFO] [stderr] --> src/registers.rs:27:38 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `M0` [INFO] [stderr] --> src/registers.rs:27:42 [INFO] [stderr] | [INFO] [stderr] 27 | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dyn_get` [INFO] [stderr] --> src/registers.rs:217:2 [INFO] [stderr] | [INFO] [stderr] 217 | pub fn dyn_get(&self, reg: &str, cur_mode: &cpu::cpu_mode, cur_state: &cpu::cpu_state) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_cpsr_bit` [INFO] [stderr] --> src/registers.rs:358:2 [INFO] [stderr] | [INFO] [stderr] 358 | pub fn get_cpsr_bit(&self, bit: CPSR_BIT) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/memory.rs:156:3 [INFO] [stderr] | [INFO] [stderr] 156 | file.read(&mut self.mem_bios).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/memory.rs:161:3 [INFO] [stderr] | [INFO] [stderr] 161 | file.read(&mut self.mem_gamepak).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:166:3 [INFO] [stderr] | [INFO] [stderr] 166 | buffer.write(&self.mem_bios).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:167:3 [INFO] [stderr] | [INFO] [stderr] 167 | buffer.write(&self.mem_external_working_ram).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:168:3 [INFO] [stderr] | [INFO] [stderr] 168 | buffer.write(&self.mem_internal_working_ram).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:169:3 [INFO] [stderr] | [INFO] [stderr] 169 | buffer.write(&self.mem_io_registers).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:170:3 [INFO] [stderr] | [INFO] [stderr] 170 | buffer.write(&self.mem_bgobj_pallete_ram).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:171:3 [INFO] [stderr] | [INFO] [stderr] 171 | buffer.write(&self.mem_vram).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:172:3 [INFO] [stderr] | [INFO] [stderr] 172 | buffer.write(&self.mem_oamobj_attribs).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:173:3 [INFO] [stderr] | [INFO] [stderr] 173 | buffer.write(&self.mem_gamepak).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/memory.rs:174:3 [INFO] [stderr] | [INFO] [stderr] 174 | buffer.write(&self.mem_gamepak_sram).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: type `CPSR_BIT` should have a camel case name such as `CpsrBit` [INFO] [stderr] --> src/registers.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | / pub enum CPSR_BIT { [INFO] [stderr] 27 | | N, Z, C, V, Q, I, F, T, M4, M3, M2, M1, M0 [INFO] [stderr] 28 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 41 [INFO] [stderr] --> src/registers.rs:119:2 [INFO] [stderr] | [INFO] [stderr] 119 | pub fn set(&mut self, reg: &str, cur_mode: &cpu::cpu_mode, cur_state: &cpu::cpu_state, val: i32) { [INFO] [stderr] | _____^ [INFO] [stderr] 120 | | if reg == "r0" { [INFO] [stderr] 121 | | self.r0 = val; [INFO] [stderr] 122 | | }else if reg == "r1" { [INFO] [stderr] ... | [INFO] [stderr] 214 | | } [INFO] [stderr] 215 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 41 [INFO] [stderr] --> src/registers.rs:222:2 [INFO] [stderr] | [INFO] [stderr] 222 | pub fn get(&self, reg: &str, cur_mode: &cpu::cpu_mode, cur_state: &cpu::cpu_state) -> i32 { [INFO] [stderr] | _____^ [INFO] [stderr] 223 | | let mut ret_val: i32 = 0; [INFO] [stderr] 224 | | if reg == "r0" { [INFO] [stderr] 225 | | ret_val = self.r0; [INFO] [stderr] ... | [INFO] [stderr] 319 | | ret_val [INFO] [stderr] 320 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `self.cpsr` [INFO] [stderr] --> src/registers.rs:372:22 [INFO] [stderr] | [INFO] [stderr] 372 | CPSR_BIT::M0 => {((self.cpsr >> 0) & 1) as u8}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 38 [INFO] [stderr] --> src/registers.rs:376:2 [INFO] [stderr] | [INFO] [stderr] 376 | pub fn debugger_get(&self, reg: &str) -> i32 { [INFO] [stderr] | _____^ [INFO] [stderr] 377 | | let mut ret_val: i32 = 0; [INFO] [stderr] 378 | | if reg == "r0" { [INFO] [stderr] 379 | | ret_val = self.r0; [INFO] [stderr] ... | [INFO] [stderr] 453 | | ret_val [INFO] [stderr] 454 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: type `dp_opcode` should have a camel case name such as `DpOpcode` [INFO] [stderr] --> src/instruction_arm.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | / enum dp_opcode { [INFO] [stderr] 40 | | AND, EOR, SUB, RSB, [INFO] [stderr] 41 | | ADD, ADC, SBC, RSC, [INFO] [stderr] 42 | | TST, TEQ, CMP, CMN, [INFO] [stderr] 43 | | ORR, MOV, BIC, MVN [INFO] [stderr] 44 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/instruction_arm.rs:98:2 [INFO] [stderr] | [INFO] [stderr] 98 | fn execute_op(&self, cond: &condition, cur_mode: &mut cpu::cpu_mode, cur_state: &mut cpu::cpu_state, do_log: &bool) { [INFO] [stderr] | _____^ [INFO] [stderr] 99 | | //Bits 4-7 and 20-27 [INFO] [stderr] 100 | | let d = ((self.raw_val >> 16) & 0xFF0) | ((self.raw_val >> 4) & 0x0F); [INFO] [stderr] 101 | | [INFO] [stderr] ... | [INFO] [stderr] 245 | | } [INFO] [stderr] 246 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/instruction_arm.rs:98:111 [INFO] [stderr] | [INFO] [stderr] 98 | fn execute_op(&self, cond: &condition, cur_mode: &mut cpu::cpu_mode, cur_state: &mut cpu::cpu_state, do_log: &bool) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `bool` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/instruction_arm.rs:221:34 [INFO] [stderr] | [INFO] [stderr] 221 | }else if (d & 0x209) == 0x209 { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 222 | | //Register shifted register data processing - bit 25 == 0 && bit 7 == 0 && bit 4 == 0 [INFO] [stderr] 223 | | //TODO [INFO] [stderr] 224 | | match opcode { [INFO] [stderr] ... | [INFO] [stderr] 241 | | } [INFO] [stderr] 242 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/instruction_arm.rs:199:34 [INFO] [stderr] | [INFO] [stderr] 199 | }else if (d & 0x201) == 0x201 { [INFO] [stderr] | ___________________________________________^ [INFO] [stderr] 200 | | //Register data processing - bit 25 == 0 && bit 4 == 0 [INFO] [stderr] 201 | | //(4-11 shift, 0-3 2nd operand register) [INFO] [stderr] 202 | | //TODO [INFO] [stderr] ... | [INFO] [stderr] 220 | | } [INFO] [stderr] 221 | | }else if (d & 0x209) == 0x209 { [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] error: &-masking with zero [INFO] [stderr] --> src/instruction_arm.rs:279:12 [INFO] [stderr] | [INFO] [stderr] 279 | }else if d & 0x0 == 0x0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::bad_bit_mask)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bad_bit_mask [INFO] [stderr] [INFO] [stderr] error: this operation will always return zero. This is likely not the intended outcome [INFO] [stderr] --> src/instruction_arm.rs:279:12 [INFO] [stderr] | [INFO] [stderr] 279 | }else if d & 0x0 == 0x0 { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::erasing_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#erasing_op [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/instruction_arm.rs:286:44 [INFO] [stderr] | [INFO] [stderr] 286 | fn handle_unimplemented_op(&self, do_log: &bool, cond: &condition, data_inst: i32) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `bool` [INFO] [stderr] | [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/instruction_arm.rs:290:37 [INFO] [stderr] | [INFO] [stderr] 290 | fn handle_unkown_op(&self, do_log: &bool, cond: &condition, data_inst: i32) { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `bool` [INFO] [stderr] | [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: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:303:5 [INFO] [stderr] | [INFO] [stderr] 303 | if check_z == 1 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_z == 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:308:5 [INFO] [stderr] | [INFO] [stderr] 308 | if check_z == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_z == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:313:5 [INFO] [stderr] | [INFO] [stderr] 313 | if check_c == 1 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_c == 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:318:5 [INFO] [stderr] | [INFO] [stderr] 318 | if check_c == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_c == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:323:5 [INFO] [stderr] | [INFO] [stderr] 323 | if check_n == 1 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_n == 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:328:5 [INFO] [stderr] | [INFO] [stderr] 328 | if check_n == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_n == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:333:5 [INFO] [stderr] | [INFO] [stderr] 333 | if check_v == 1 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_v == 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:338:5 [INFO] [stderr] | [INFO] [stderr] 338 | if check_v == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_v == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:344:5 [INFO] [stderr] | [INFO] [stderr] 344 | if check_c == 1 && check_z == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_c == 1 && check_z == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:350:5 [INFO] [stderr] | [INFO] [stderr] 350 | if check_c == 1 || check_z == 0 { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_c == 1 || check_z == 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:356:5 [INFO] [stderr] | [INFO] [stderr] 356 | if (check_n == 1 && check_v == 1) || (check_n == 0 && check_v == 0) { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `(check_n == 1 && check_v == 1) || (check_n == 0 && check_v == 0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:362:5 [INFO] [stderr] | [INFO] [stderr] 362 | if (check_n == 1 && check_v == 0) || (check_n == 0 && check_v == 1) { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `(check_n == 1 && check_v == 0) || (check_n == 0 && check_v == 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:369:5 [INFO] [stderr] | [INFO] [stderr] 369 | if check_z == 0 && ((check_n == 1 && check_v == 1) || (check_n == 0 && check_v == 0)) { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_z == 0 && ((check_n == 1 && check_v == 1) || (check_n == 0 && check_v == 0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/instruction_arm.rs:376:5 [INFO] [stderr] | [INFO] [stderr] 376 | if check_z == 1 || (check_n == 1 && check_v == 0) || (check_n == 0 && check_v == 1) { true }else{ false } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_z == 1 || (check_n == 1 && check_v == 0) || (check_n == 0 && check_v == 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 34 [INFO] [stderr] --> src/debugger.rs:72:2 [INFO] [stderr] | [INFO] [stderr] 72 | fn parse_debugger_command(&mut self, val: &str) { [INFO] [stderr] | _____^ [INFO] [stderr] 73 | | let actval = val.trim_right_matches("\r\n"); [INFO] [stderr] 74 | | let command_char = &actval[0..1]; [INFO] [stderr] 75 | | match command_char { [INFO] [stderr] ... | [INFO] [stderr] 147 | | } [INFO] [stderr] 148 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] error: aborting due to 14 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `gbaemulator`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "2cc335a8a1c498053bf50c3bd830f6cf5741c164d90ba7a3e1cf3301ba2b8584"` [INFO] running `"docker" "rm" "-f" "2cc335a8a1c498053bf50c3bd830f6cf5741c164d90ba7a3e1cf3301ba2b8584"` [INFO] [stdout] 2cc335a8a1c498053bf50c3bd830f6cf5741c164d90ba7a3e1cf3301ba2b8584