[INFO] crate zinc64-debug 0.6.0 is already in cache [INFO] extracting crate zinc64-debug 0.6.0 into work/ex/clippy-test-run/sources/stable/reg/zinc64-debug/0.6.0 [INFO] extracting crate zinc64-debug 0.6.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/zinc64-debug/0.6.0 [INFO] validating manifest of zinc64-debug-0.6.0 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 zinc64-debug-0.6.0 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 zinc64-debug-0.6.0 [INFO] finished frobbing zinc64-debug-0.6.0 [INFO] frobbed toml for zinc64-debug-0.6.0 written to work/ex/clippy-test-run/sources/stable/reg/zinc64-debug/0.6.0/Cargo.toml [INFO] started frobbing zinc64-debug-0.6.0 [INFO] finished frobbing zinc64-debug-0.6.0 [INFO] frobbed toml for zinc64-debug-0.6.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/zinc64-debug/0.6.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 zinc64-debug-0.6.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/zinc64-debug/0.6.0:/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] ac82ac66cbcd757e6374bcb8f3e4e952163b97788267a874902795e0fd73267e [INFO] running `"docker" "start" "-a" "ac82ac66cbcd757e6374bcb8f3e4e952163b97788267a874902795e0fd73267e"` [INFO] [stderr] Checking resid-rs v0.7.0 [INFO] [stderr] Checking zinc64 v0.6.0 [INFO] [stderr] Checking zinc64-debug v0.6.0 (/opt/crater/workdir) [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rap_server.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | const REG_PROFILE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rap_server.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | const REG_PROFILE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/debugger.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | / match stream { [INFO] [stderr] 78 | | Ok(stream) => { [INFO] [stderr] 79 | | let mut conn = Connection::new(self.command_tx.clone(), stream).unwrap(); [INFO] [stderr] 80 | | match conn.handle() { [INFO] [stderr] ... | [INFO] [stderr] 87 | | Err(_) => {} [INFO] [stderr] 88 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 77 | if let Ok(stream) = stream { [INFO] [stderr] 78 | let mut conn = Connection::new(self.command_tx.clone(), stream).unwrap(); [INFO] [stderr] 79 | match conn.handle() { [INFO] [stderr] 80 | Ok(_) => info!(target: "debugger", "Connection closed"), [INFO] [stderr] 81 | Err(error) => { [INFO] [stderr] 82 | error!(target: "debugger", "Connection failed, error - {}", error) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/debugger.rs:182:41 [INFO] [stderr] | [INFO] [stderr] 182 | fn handle_request(&mut self, input: &String) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:225:16 [INFO] [stderr] | [INFO] [stderr] 225 | Ok(format!("Set all breakpoints to state: disabled\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Set all breakpoints to state: disabled\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:234:16 [INFO] [stderr] | [INFO] [stderr] 234 | Ok(format!("Deleted all breakpoints\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Deleted all breakpoints\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:243:16 [INFO] [stderr] | [INFO] [stderr] 243 | Ok(format!("Set all breakpoints to state: enabled\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Set all breakpoints to state: enabled\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:314:29 [INFO] [stderr] | [INFO] [stderr] 314 | buffer.push_str(format!("Stopped on breakpoint\n").as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Stopped on breakpoint\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:354:29 [INFO] [stderr] | [INFO] [stderr] 354 | buffer.push_str(format!("Stopped on breakpoint\n").as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Stopped on breakpoint\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:377:29 [INFO] [stderr] | [INFO] [stderr] 377 | buffer.push_str(format!("Stopped on breakpoint\n").as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Stopped on breakpoint\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debugger.rs:415:27 [INFO] [stderr] | [INFO] [stderr] 415 | let start = start.unwrap_or(self.regs.as_ref().map(|r| r.pc).unwrap_or(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.regs.as_ref().map(|r| r.pc).unwrap_or(0))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `data` [INFO] [stderr] --> src/debugger.rs:449:18 [INFO] [stderr] | [INFO] [stderr] 449 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 449 | for (i, ) in data.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `search`. [INFO] [stderr] --> src/debugger.rs:452:22 [INFO] [stderr] | [INFO] [stderr] 452 | for j in 0..search.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 452 | for in &search { [INFO] [stderr] | ^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debugger.rs:466:27 [INFO] [stderr] | [INFO] [stderr] 466 | let start = start.unwrap_or(self.regs.as_ref().map(|r| r.pc).unwrap_or(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.regs.as_ref().map(|r| r.pc).unwrap_or(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debugger.rs:492:31 [INFO] [stderr] | [INFO] [stderr] 492 | let address = address.unwrap_or(self.regs.as_ref().map(|r| r.pc).unwrap_or(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.regs.as_ref().map(|r| r.pc).unwrap_or(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debugger.rs:513:45 [INFO] [stderr] | [INFO] [stderr] 513 | let data = self.read_mem(start, end.unwrap_or(start.wrapping_add(400)))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| start.wrapping_add(400))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/debugger.rs:583:43 [INFO] [stderr] | [INFO] [stderr] 583 | self.command_parser.set_radix(radix as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(radix)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/debugger.rs:757:32 [INFO] [stderr] | [INFO] [stderr] 757 | pub fn parse(&self, input: &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:819:17 [INFO] [stderr] | [INFO] [stderr] 819 | Err(format!("Missing expression")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Missing expression".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/debugger.rs:875:16 [INFO] [stderr] | [INFO] [stderr] 875 | if self.parse_reg_sep(tokens)? == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!(self.parse_reg_sep(tokens)?)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/debugger.rs:951:33 [INFO] [stderr] | [INFO] [stderr] 951 | while let Some(token) = tokens.next() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `for token in tokens { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/debugger.rs:960:12 [INFO] [stderr] | [INFO] [stderr] 960 | if data.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:963:17 [INFO] [stderr] | [INFO] [stderr] 963 | Err(format!("Missing data")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Missing data".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/debugger.rs:971:33 [INFO] [stderr] | [INFO] [stderr] 971 | while let Some(token) = tokens.next() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `for token in tokens { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/debugger.rs:980:12 [INFO] [stderr] | [INFO] [stderr] 980 | if data.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:983:17 [INFO] [stderr] | [INFO] [stderr] 983 | Err(format!("Missing data")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Missing data".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/debugger.rs:1214:13 [INFO] [stderr] | [INFO] [stderr] 1214 | Carry = 1 << 0, [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/disassembler.rs:560:10 [INFO] [stderr] | [INFO] [stderr] 560 | ((high as u16) << 8) | low as u16 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(high)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/disassembler.rs:560:32 [INFO] [stderr] | [INFO] [stderr] 560 | ((high as u16) << 8) | low as u16 [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(low)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/rap_server.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | / match stream { [INFO] [stderr] 85 | | Ok(stream) => { [INFO] [stderr] 86 | | let mut conn = Connection::new(self.command_tx.clone(), stream).unwrap(); [INFO] [stderr] 87 | | match conn.handle() { [INFO] [stderr] ... | [INFO] [stderr] 94 | | Err(_) => {} [INFO] [stderr] 95 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 84 | if let Ok(stream) = stream { [INFO] [stderr] 85 | let mut conn = Connection::new(self.command_tx.clone(), stream).unwrap(); [INFO] [stderr] 86 | match conn.handle() { [INFO] [stderr] 87 | Ok(_) => info!(target: "debugger", "Connection closed"), [INFO] [stderr] 88 | Err(error) => { [INFO] [stderr] 89 | error!(target: "debugger", "Connection failed, error - {}", error) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/rap_server.rs:166:12 [INFO] [stderr] | [INFO] [stderr] 166 | if result.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!result.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: The function/method `write_all` doesn't need a mutable reference [INFO] [stderr] --> src/rap_server.rs:167:35 [INFO] [stderr] | [INFO] [stderr] 167 | self.writer.write_all(&mut result.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _result =` [INFO] [stderr] --> src/rap_server.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | / let _result = match self.execute_emu(Command::Detach)? { [INFO] [stderr] 176 | | CommandResult::Unit => Ok(()), [INFO] [stderr] 177 | | result => Err(self.invalid_response(result)), [INFO] [stderr] 178 | | }?; [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _result =` [INFO] [stderr] --> src/rap_server.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | / let _result = match self.execute_emu(Command::Attach(tx))? { [INFO] [stderr] 193 | | CommandResult::Unit => Ok(()), [INFO] [stderr] 194 | | result => Err(self.invalid_response(result)), [INFO] [stderr] 195 | | }?; [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: The function/method `write_all` doesn't need a mutable reference [INFO] [stderr] --> src/rap_server.rs:218:31 [INFO] [stderr] | [INFO] [stderr] 218 | self.writer.write_all(&mut data)?; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/rap_server.rs:234:44 [INFO] [stderr] | [INFO] [stderr] 234 | self.writer.write_u64::(self.offset as u64)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _result =` [INFO] [stderr] --> src/rap_server.rs:247:9 [INFO] [stderr] | [INFO] [stderr] 247 | / let _result = match self.execute_emu(command)? { [INFO] [stderr] 248 | | CommandResult::Unit => Ok(()), [INFO] [stderr] 249 | | result => Err(self.invalid_response(result)), [INFO] [stderr] 250 | | }?; [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/rap_server.rs:311:32 [INFO] [stderr] | [INFO] [stderr] 311 | pub fn parse(&self, input: &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/debugger.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | / match stream { [INFO] [stderr] 78 | | Ok(stream) => { [INFO] [stderr] 79 | | let mut conn = Connection::new(self.command_tx.clone(), stream).unwrap(); [INFO] [stderr] 80 | | match conn.handle() { [INFO] [stderr] ... | [INFO] [stderr] 87 | | Err(_) => {} [INFO] [stderr] 88 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 77 | if let Ok(stream) = stream { [INFO] [stderr] 78 | let mut conn = Connection::new(self.command_tx.clone(), stream).unwrap(); [INFO] [stderr] 79 | match conn.handle() { [INFO] [stderr] 80 | Ok(_) => info!(target: "debugger", "Connection closed"), [INFO] [stderr] 81 | Err(error) => { [INFO] [stderr] 82 | error!(target: "debugger", "Connection failed, error - {}", error) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/debugger.rs:182:41 [INFO] [stderr] | [INFO] [stderr] 182 | fn handle_request(&mut self, input: &String) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:225:16 [INFO] [stderr] | [INFO] [stderr] 225 | Ok(format!("Set all breakpoints to state: disabled\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Set all breakpoints to state: disabled\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:234:16 [INFO] [stderr] | [INFO] [stderr] 234 | Ok(format!("Deleted all breakpoints\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Deleted all breakpoints\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:243:16 [INFO] [stderr] | [INFO] [stderr] 243 | Ok(format!("Set all breakpoints to state: enabled\n")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Set all breakpoints to state: enabled\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:314:29 [INFO] [stderr] | [INFO] [stderr] 314 | buffer.push_str(format!("Stopped on breakpoint\n").as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Stopped on breakpoint\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:354:29 [INFO] [stderr] | [INFO] [stderr] 354 | buffer.push_str(format!("Stopped on breakpoint\n").as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Stopped on breakpoint\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:377:29 [INFO] [stderr] | [INFO] [stderr] 377 | buffer.push_str(format!("Stopped on breakpoint\n").as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Stopped on breakpoint\n".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debugger.rs:415:27 [INFO] [stderr] | [INFO] [stderr] 415 | let start = start.unwrap_or(self.regs.as_ref().map(|r| r.pc).unwrap_or(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.regs.as_ref().map(|r| r.pc).unwrap_or(0))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `data` [INFO] [stderr] --> src/debugger.rs:449:18 [INFO] [stderr] | [INFO] [stderr] 449 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 449 | for (i, ) in data.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `search`. [INFO] [stderr] --> src/debugger.rs:452:22 [INFO] [stderr] | [INFO] [stderr] 452 | for j in 0..search.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 452 | for in &search { [INFO] [stderr] | ^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debugger.rs:466:27 [INFO] [stderr] | [INFO] [stderr] 466 | let start = start.unwrap_or(self.regs.as_ref().map(|r| r.pc).unwrap_or(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.regs.as_ref().map(|r| r.pc).unwrap_or(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debugger.rs:492:31 [INFO] [stderr] | [INFO] [stderr] 492 | let address = address.unwrap_or(self.regs.as_ref().map(|r| r.pc).unwrap_or(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.regs.as_ref().map(|r| r.pc).unwrap_or(0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debugger.rs:513:45 [INFO] [stderr] | [INFO] [stderr] 513 | let data = self.read_mem(start, end.unwrap_or(start.wrapping_add(400)))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| start.wrapping_add(400))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/debugger.rs:583:43 [INFO] [stderr] | [INFO] [stderr] 583 | self.command_parser.set_radix(radix as u32); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(radix)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/debugger.rs:757:32 [INFO] [stderr] | [INFO] [stderr] 757 | pub fn parse(&self, input: &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:819:17 [INFO] [stderr] | [INFO] [stderr] 819 | Err(format!("Missing expression")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Missing expression".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/debugger.rs:875:16 [INFO] [stderr] | [INFO] [stderr] 875 | if self.parse_reg_sep(tokens)? == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!(self.parse_reg_sep(tokens)?)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/debugger.rs:951:33 [INFO] [stderr] | [INFO] [stderr] 951 | while let Some(token) = tokens.next() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `for token in tokens { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/debugger.rs:960:12 [INFO] [stderr] | [INFO] [stderr] 960 | if data.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:963:17 [INFO] [stderr] | [INFO] [stderr] 963 | Err(format!("Missing data")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Missing data".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/debugger.rs:971:33 [INFO] [stderr] | [INFO] [stderr] 971 | while let Some(token) = tokens.next() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `for token in tokens { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/debugger.rs:980:12 [INFO] [stderr] | [INFO] [stderr] 980 | if data.len() >= 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/debugger.rs:983:17 [INFO] [stderr] | [INFO] [stderr] 983 | Err(format!("Missing data")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Missing data".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/debugger.rs:1214:13 [INFO] [stderr] | [INFO] [stderr] 1214 | Carry = 1 << 0, [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/disassembler.rs:560:10 [INFO] [stderr] | [INFO] [stderr] 560 | ((high as u16) << 8) | low as u16 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(high)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/disassembler.rs:560:32 [INFO] [stderr] | [INFO] [stderr] 560 | ((high as u16) << 8) | low as u16 [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(low)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/rap_server.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | / match stream { [INFO] [stderr] 85 | | Ok(stream) => { [INFO] [stderr] 86 | | let mut conn = Connection::new(self.command_tx.clone(), stream).unwrap(); [INFO] [stderr] 87 | | match conn.handle() { [INFO] [stderr] ... | [INFO] [stderr] 94 | | Err(_) => {} [INFO] [stderr] 95 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 84 | if let Ok(stream) = stream { [INFO] [stderr] 85 | let mut conn = Connection::new(self.command_tx.clone(), stream).unwrap(); [INFO] [stderr] 86 | match conn.handle() { [INFO] [stderr] 87 | Ok(_) => info!(target: "debugger", "Connection closed"), [INFO] [stderr] 88 | Err(error) => { [INFO] [stderr] 89 | error!(target: "debugger", "Connection failed, error - {}", error) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/rap_server.rs:166:12 [INFO] [stderr] | [INFO] [stderr] 166 | if result.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!result.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: The function/method `write_all` doesn't need a mutable reference [INFO] [stderr] --> src/rap_server.rs:167:35 [INFO] [stderr] | [INFO] [stderr] 167 | self.writer.write_all(&mut result.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _result =` [INFO] [stderr] --> src/rap_server.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | / let _result = match self.execute_emu(Command::Detach)? { [INFO] [stderr] 176 | | CommandResult::Unit => Ok(()), [INFO] [stderr] 177 | | result => Err(self.invalid_response(result)), [INFO] [stderr] 178 | | }?; [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _result =` [INFO] [stderr] --> src/rap_server.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | / let _result = match self.execute_emu(Command::Attach(tx))? { [INFO] [stderr] 193 | | CommandResult::Unit => Ok(()), [INFO] [stderr] 194 | | result => Err(self.invalid_response(result)), [INFO] [stderr] 195 | | }?; [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: The function/method `write_all` doesn't need a mutable reference [INFO] [stderr] --> src/rap_server.rs:218:31 [INFO] [stderr] | [INFO] [stderr] 218 | self.writer.write_all(&mut data)?; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/rap_server.rs:234:44 [INFO] [stderr] | [INFO] [stderr] 234 | self.writer.write_u64::(self.offset as u64)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _result =` [INFO] [stderr] --> src/rap_server.rs:247:9 [INFO] [stderr] | [INFO] [stderr] 247 | / let _result = match self.execute_emu(command)? { [INFO] [stderr] 248 | | CommandResult::Unit => Ok(()), [INFO] [stderr] 249 | | result => Err(self.invalid_response(result)), [INFO] [stderr] 250 | | }?; [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/rap_server.rs:311:32 [INFO] [stderr] | [INFO] [stderr] 311 | pub fn parse(&self, input: &String) -> Result { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 7.38s [INFO] running `"docker" "inspect" "ac82ac66cbcd757e6374bcb8f3e4e952163b97788267a874902795e0fd73267e"` [INFO] running `"docker" "rm" "-f" "ac82ac66cbcd757e6374bcb8f3e4e952163b97788267a874902795e0fd73267e"` [INFO] [stdout] ac82ac66cbcd757e6374bcb8f3e4e952163b97788267a874902795e0fd73267e