[INFO] cloning repository https://github.com/nishal21/NekoDroid
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nishal21/NekoDroid" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnishal21%2FNekoDroid", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnishal21%2FNekoDroid'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 79772d8a28ca90bccfa378c6b5dacc81d3662bd9
[INFO] linting nishal21/NekoDroid against nightly for clippy-nonminimal_bool-denied
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnishal21%2FNekoDroid" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nishal21/NekoDroid
[INFO] finished tweaking git repo https://github.com/nishal21/NekoDroid
[INFO] tweaked toml for git repo https://github.com/nishal21/NekoDroid written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nishal21/NekoDroid on toolchain nightly
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nishal21/NekoDroid already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 72dc2fa62bbedf3182a513bc9924570b0beedd1b5a63b8af7e8bd641ee3de593
[INFO] running `Command { std: "docker" "start" "-a" "72dc2fa62bbedf3182a513bc9924570b0beedd1b5a63b8af7e8bd641ee3de593", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "72dc2fa62bbedf3182a513bc9924570b0beedd1b5a63b8af7e8bd641ee3de593", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "72dc2fa62bbedf3182a513bc9924570b0beedd1b5a63b8af7e8bd641ee3de593", kill_on_drop: false }`
[INFO] [stdout] 72dc2fa62bbedf3182a513bc9924570b0beedd1b5a63b8af7e8bd641ee3de593
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 50e8a4dd4bb7504d197a4b40a41c8ae7b8ddc51dbcde19b621fb7efcf288a409
[INFO] running `Command { std: "docker" "start" "-a" "50e8a4dd4bb7504d197a4b40a41c8ae7b8ddc51dbcde19b621fb7efcf288a409", kill_on_drop: false }`
[INFO] [stderr] Compiling wasm-bindgen-shared v0.2.114
[INFO] [stderr] Compiling bumpalo v3.20.2
[INFO] [stderr] Checking unicode-ident v1.0.24
[INFO] [stderr] Compiling syn v2.0.117
[INFO] [stderr] Compiling wasm-bindgen v0.2.114
[INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.114
[INFO] [stderr] Compiling wasm-bindgen-macro v0.2.114
[INFO] [stderr] Checking nekodroid v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses
[INFO] [stdout] --> src/cpu.rs:1201:38
[INFO] [stdout] |
[INFO] [stdout] 1201 | let overflow = (!((rn_val ^ op2)) & (rn_val ^ result)) >> 31 != 0;
[INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove them: `(rn_val ^ op2)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens
[INFO] [stdout] = note: `#[warn(clippy::double_parens)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unnecessary parentheses
[INFO] [stdout] --> src/cpu.rs:1698:42
[INFO] [stdout] |
[INFO] [stdout] 1698 | let overflow = (!((rn_val ^ operand)) & (rn_val ^ result)) >> 31 != 0;
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: remove them: `(rn_val ^ operand)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unnecessary parentheses
[INFO] [stdout] --> src/cpu.rs:1201:38
[INFO] [stdout] |
[INFO] [stdout] 1201 | let overflow = (!((rn_val ^ op2)) & (rn_val ^ result)) >> 31 != 0;
[INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove them: `(rn_val ^ op2)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens
[INFO] [stdout] = note: `#[warn(clippy::double_parens)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unnecessary parentheses
[INFO] [stdout] --> src/cpu.rs:1698:42
[INFO] [stdout] |
[INFO] [stdout] 1698 | let overflow = (!((rn_val ^ operand)) & (rn_val ^ result)) >> 31 != 0;
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: remove them: `(rn_val ^ operand)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: method `next_random` is never used
[INFO] [stdout] --> src/lib.rs:80:8
[INFO] [stdout] |
[INFO] [stdout] 34 | impl VirtualCPU {
[INFO] [stdout] | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 | fn next_random(&mut self) -> u32 {
[INFO] [stdout] | ^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: constant `MODE_SYS` is never used
[INFO] [stdout] --> src/cpu.rs:29:7
[INFO] [stdout] |
[INFO] [stdout] 29 | const MODE_SYS: u32 = 0x1F;
[INFO] [stdout] | ^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default`
[INFO] [stdout] --> src/memory.rs:123:5
[INFO] [stdout] |
[INFO] [stdout] 123 | / pub fn default() -> Self {
[INFO] [stdout] 124 | | Self::new(DEFAULT_RAM_SIZE)
[INFO] [stdout] 125 | | }
[INFO] [stdout] | |_____^
[INFO] [stdout] |
[INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait
[INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: manual `Range::contains` implementation
[INFO] [stdout] --> src/memory.rs:136:9
[INFO] [stdout] |
[INFO] [stdout] 136 | addr >= VRAM_BASE && addr < VRAM_END
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(VRAM_BASE..VRAM_END).contains(&addr)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains
[INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: manual `Range::contains` implementation
[INFO] [stdout] --> src/memory.rs:141:9
[INFO] [stdout] |
[INFO] [stdout] 141 | addr >= UART_BASE && addr < PERIPH_END
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(UART_BASE..PERIPH_END).contains(&addr)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: manual `RangeInclusive::contains` implementation
[INFO] [stdout] --> src/memory.rs:146:9
[INFO] [stdout] |
[INFO] [stdout] 146 | addr >= VPB_PERIPH_START && addr <= VPB_PERIPH_END
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(VPB_PERIPH_START..=VPB_PERIPH_END).contains(&addr)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: manual `Range::contains` implementation
[INFO] [stdout] --> src/memory.rs:288:16
[INFO] [stdout] |
[INFO] [stdout] 288 | if addr >= VPB_VIC_BASE && addr < VPB_VIC_BASE + 0x1000 {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(VPB_VIC_BASE..VPB_VIC_BASE + 0x1000).contains(&addr)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: manual `Range::contains` implementation
[INFO] [stdout] --> src/memory.rs:295:16
[INFO] [stdout] |
[INFO] [stdout] 295 | if addr >= VPB_TIMER_BASE && addr < VPB_TIMER_BASE + 0x20 {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(VPB_TIMER_BASE..VPB_TIMER_BASE + 0x20).contains(&addr)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: manual `Range::contains` implementation
[INFO] [stdout] --> src/memory.rs:307:16
[INFO] [stdout] |
[INFO] [stdout] 307 | if addr >= VPB_VIC_BASE && addr < VPB_VIC_BASE + 0x1000 {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(VPB_VIC_BASE..VPB_VIC_BASE + 0x1000).contains(&addr)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: manual `Range::contains` implementation
[INFO] [stdout] --> src/memory.rs:310:16
[INFO] [stdout] |
[INFO] [stdout] 310 | if addr >= VPB_TIMER_BASE && addr < VPB_TIMER_BASE + 0x1000 {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(VPB_TIMER_BASE..VPB_TIMER_BASE + 0x1000).contains(&addr)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this `if` can be collapsed into the outer `match`
[INFO] [stdout] --> src/memory.rs:320:28
[INFO] [stdout] |
[INFO] [stdout] 320 | INPUT_TOUCH => if self.touch_down { 1 } else { 0 },
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match
[INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default
[INFO] [stdout] help: collapse nested if block
[INFO] [stdout] |
[INFO] [stdout] 320 - INPUT_TOUCH => if self.touch_down { 1 } else { 0 },
[INFO] [stdout] 320 + INPUT_TOUCHf self.touch_down => { 1 },
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: manual `Range::contains` implementation
[INFO] [stdout] --> src/memory.rs:415:16
[INFO] [stdout] |
[INFO] [stdout] 415 | if addr >= VPB_VIC_BASE && addr < VPB_VIC_BASE + 0x1000 {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(VPB_VIC_BASE..VPB_VIC_BASE + 0x1000).contains(&addr)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: manual `Range::contains` implementation
[INFO] [stdout] --> src/memory.rs:429:16
[INFO] [stdout] |
[INFO] [stdout] 429 | if addr >= VPB_TIMER_BASE && addr < VPB_TIMER_BASE + 0x20 {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(VPB_TIMER_BASE..VPB_TIMER_BASE + 0x20).contains(&addr)`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: you should consider adding a `Default` implementation for `RegisterFile`
[INFO] [stdout] --> src/cpu.rs:91:5
[INFO] [stdout] |
[INFO] [stdout] 91 | / pub fn new() -> Self {
[INFO] [stdout] 92 | | RegisterFile {
[INFO] [stdout] 93 | | regs: [0u32; 16],
[INFO] [stdout] 94 | | cpsr: MODE_USER, // Start in User mode
[INFO] [stdout] ... |
[INFO] [stdout] 112 | | }
[INFO] [stdout] | |_____^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default
[INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default
[INFO] [stdout] help: try adding this
[INFO] [stdout] |
[INFO] [stdout] 89 + impl Default for RegisterFile {
[INFO] [stdout] 90 + fn default() -> Self {
[INFO] [stdout] 91 + Self::new()
[INFO] [stdout] 92 + }
[INFO] [stdout] 93 + }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default`
[INFO] [stdout] --> src/cpu.rs:402:5
[INFO] [stdout] |
[INFO] [stdout] 402 | / pub fn default() -> Self {
[INFO] [stdout] 403 | | Cpu {
[INFO] [stdout] 404 | | regs: RegisterFile::new(),
[INFO] [stdout] 405 | | mmu: Mmu::default(),
[INFO] [stdout] ... |
[INFO] [stdout] 410 | | }
[INFO] [stdout] | |_____^
[INFO] [stdout] |
[INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unneeded `return` statement
[INFO] [stdout] --> src/cpu.rs:496:13
[INFO] [stdout] |
[INFO] [stdout] 496 | return phys_base | offset;
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default
[INFO] [stdout] help: remove `return`
[INFO] [stdout] |
[INFO] [stdout] 496 - return phys_base | offset;
[INFO] [stdout] 496 + phys_base | offset
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unneeded `return` statement
[INFO] [stdout] --> src/cpu.rs:526:13
[INFO] [stdout] |
[INFO] [stdout] 526 | return vaddr;
[INFO] [stdout] | ^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stdout] help: remove `return`
[INFO] [stdout] |
[INFO] [stdout] 526 - return vaddr;
[INFO] [stdout] 526 + vaddr
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unneeded `return` statement
[INFO] [stdout] --> src/cpu.rs:536:13
[INFO] [stdout] |
[INFO] [stdout] 536 | return vaddr;
[INFO] [stdout] | ^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
[INFO] [stdout] help: remove `return`
[INFO] [stdout] |
[INFO] [stdout] 536 - return vaddr;
[INFO] [stdout] 536 + vaddr
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this OR pattern can be rewritten using a range
[INFO] [stdout] --> src/cpu.rs:764:21
[INFO] [stdout] |
[INFO] [stdout] 764 | 0x8 | 0x9 | 0xA | 0xB => format!("{}{} {}, {}", mnemonic, cs, Self::reg_name(rn), op2_str),
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `0x8..=0xB`
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns
[INFO] [stdout] = note: `#[warn(clippy::manual_range_patterns)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: this boolean expression can be simplified
[INFO] [stdout] --> src/cpu.rs:1589:12
[INFO] [stdout] |
[INFO] [stdout] 1589 | if (pre_index && write_back) || !pre_index {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool
[INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default
[INFO] [stdout] help: try
[INFO] [stdout] |
[INFO] [stdout] 1589 - if (pre_index && write_back) || !pre_index {
[INFO] [stdout] 1589 + if !(pre_index && !write_back) {
[INFO] [stdout] |
[INFO] [stdout] 1589 - if (pre_index && write_back) || !pre_index {
[INFO] [stdout] 1589 + if !pre_index || write_back {
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused variable: `exception_type`
[INFO] [stdout] --> src/cpu.rs:860:41
[INFO] [stdout] |
[INFO] [stdout] 860 | pub fn trigger_exception(&mut self, exception_type: &str, target_mode: u32, vector_offset: u32, pc_adjustment: u32) {
[INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exception_type`
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: you should consider adding a `Default` implementation for `VirtualCPU`
[INFO] [stdout] --> src/lib.rs:37:5
[INFO] [stdout] |
[INFO] [stdout] 37 | / pub fn new() -> VirtualCPU {
[INFO] [stdout] 38 | | let mut fb = vec![0u8; FRAMEBUFFER_SIZE];
[INFO] [stdout] 39 | | // Initialize to black with full alpha
[INFO] [stdout] 40 | | for pixel in fb.chunks_exact_mut(4) {
[INFO] [stdout] ... |
[INFO] [stdout] 53 | | }
[INFO] [stdout] | |_____^
[INFO] [stdout] |
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default
[INFO] [stdout] help: try adding this
[INFO] [stdout] |
[INFO] [stdout] 34 + impl Default for VirtualCPU {
[INFO] [stdout] 35 + fn default() -> Self {
[INFO] [stdout] 36 + Self::new()
[INFO] [stdout] 37 + }
[INFO] [stdout] 38 + }
[INFO] [stdout] |
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: clamp-like pattern without using clamp function
[INFO] [stdout] --> src/lib.rs:137:26
[INFO] [stdout] |
[INFO] [stdout] 137 | let v2 = (((fy * 10.0 + time * 1.5).sin() + (fx * 10.0).cos()) * 0.5 + 0.5).min(1.0).max(0.0);
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(((fy * 10.0 + time * 1.5).sin() + (fx * 10.0).cos()) * 0.5 + 0.5).clamp(0.0, 1.0)`
[INFO] [stdout] |
[INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan()
[INFO] [stdout] = note: clamp returns NaN if the input is NaN
[INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp
[INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout] --> src/cpu.rs:1999:37
[INFO] [stdout] |
[INFO] [stdout] 1999 | fn log_unimplemented(&mut self, category: &str, instr: u32, pc: u32) {
[INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused variable: `instr`
[INFO] [stdout] --> src/cpu.rs:1999:53
[INFO] [stdout] |
[INFO] [stdout] 1999 | fn log_unimplemented(&mut self, category: &str, instr: u32, pc: u32) {
[INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_instr`
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: initializer for `thread_local` value can be made `const`
[INFO] [stdout] --> src/lib.rs:192:49
[INFO] [stdout] |
[INFO] [stdout] 192 | static ARM_CPU: RefCell