[INFO] crate tockloader-proto 0.2.1 is already in cache [INFO] extracting crate tockloader-proto 0.2.1 into work/ex/clippy-test-run/sources/stable/reg/tockloader-proto/0.2.1 [INFO] extracting crate tockloader-proto 0.2.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tockloader-proto/0.2.1 [INFO] validating manifest of tockloader-proto-0.2.1 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 tockloader-proto-0.2.1 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 tockloader-proto-0.2.1 [INFO] finished frobbing tockloader-proto-0.2.1 [INFO] frobbed toml for tockloader-proto-0.2.1 written to work/ex/clippy-test-run/sources/stable/reg/tockloader-proto/0.2.1/Cargo.toml [INFO] started frobbing tockloader-proto-0.2.1 [INFO] finished frobbing tockloader-proto-0.2.1 [INFO] frobbed toml for tockloader-proto-0.2.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tockloader-proto/0.2.1/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 tockloader-proto-0.2.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/tockloader-proto/0.2.1:/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] 0e77c0918e98f09df290d2bbbc3bfde1ada264578bab9e4b14087b01b9a7cd8e [INFO] running `"docker" "start" "-a" "0e77c0918e98f09df290d2bbbc3bfde1ada264578bab9e4b14087b01b9a7cd8e"` [INFO] [stderr] Checking byteorder v1.3.1 [INFO] [stderr] Checking tockloader-proto v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:793:13 [INFO] [stderr] | [INFO] [stderr] 793 | command: command, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `command` [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/lib.rs:1053:13 [INFO] [stderr] | [INFO] [stderr] 1053 | response: response, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `response` [INFO] [stderr] | [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/lib.rs:793:13 [INFO] [stderr] | [INFO] [stderr] 793 | command: command, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `command` [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/lib.rs:1053:13 [INFO] [stderr] | [INFO] [stderr] 1053 | response: response, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `response` [INFO] [stderr] | [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: unneeded return statement [INFO] [stderr] --> src/lib.rs:285:9 [INFO] [stderr] | [INFO] [stderr] 285 | return buffer.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `buffer.len()` [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: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:769:35 [INFO] [stderr] | [INFO] [stderr] 769 | &Command::WritePage { address: _, data } => { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `WritePage { data, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:774:37 [INFO] [stderr] | [INFO] [stderr] 774 | &Command::WriteExPage { address: _, data } => { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `WriteExPage { data, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `buffer` [INFO] [stderr] --> src/lib.rs:275:18 [INFO] [stderr] | [INFO] [stderr] 275 | for i in 0..buffer.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] 275 | for (i, ) in buffer.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `CommandDecoder` [INFO] [stderr] --> src/lib.rs:293:5 [INFO] [stderr] | [INFO] [stderr] 293 | / pub fn new() -> CommandDecoder { [INFO] [stderr] 294 | | CommandDecoder { [INFO] [stderr] 295 | | state: DecoderState::Loading, [INFO] [stderr] 296 | | buffer: [0u8; 520], [INFO] [stderr] 297 | | count: 0, [INFO] [stderr] 298 | | } [INFO] [stderr] 299 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 289 | impl Default for CommandDecoder { [INFO] [stderr] 290 | fn default() -> Self { [INFO] [stderr] 291 | Self::new() [INFO] [stderr] 292 | } [INFO] [stderr] 293 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:340:13 [INFO] [stderr] | [INFO] [stderr] 340 | self.count = self.count + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.count += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/lib.rs:522:23 [INFO] [stderr] | [INFO] [stderr] 522 | } else if let Err(_) = result { [INFO] [stderr] | ________________- ^^^^^^ [INFO] [stderr] 523 | | self.count = 0; [INFO] [stderr] 524 | | } [INFO] [stderr] | |_________- help: try this: `if result.is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `ResponseDecoder` [INFO] [stderr] --> src/lib.rs:533:5 [INFO] [stderr] | [INFO] [stderr] 533 | / pub fn new() -> ResponseDecoder { [INFO] [stderr] 534 | | ResponseDecoder { [INFO] [stderr] 535 | | state: DecoderState::Loading, [INFO] [stderr] 536 | | buffer: [0u8; 520], [INFO] [stderr] ... | [INFO] [stderr] 539 | | } [INFO] [stderr] 540 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 529 | impl Default for ResponseDecoder { [INFO] [stderr] 530 | fn default() -> Self { [INFO] [stderr] 531 | Self::new() [INFO] [stderr] 532 | } [INFO] [stderr] 533 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:593:13 [INFO] [stderr] | [INFO] [stderr] 593 | self.count = self.count + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.count += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:768:9 [INFO] [stderr] | [INFO] [stderr] 768 | / match command { [INFO] [stderr] 769 | | &Command::WritePage { address: _, data } => { [INFO] [stderr] 770 | | if data.len() != INT_PAGE_SIZE { [INFO] [stderr] 771 | | return Err(Error::BadArguments); [INFO] [stderr] ... | [INFO] [stderr] 790 | | _ => {} [INFO] [stderr] 791 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 768 | match *command { [INFO] [stderr] 769 | Command::WritePage { address: _, data } => { [INFO] [stderr] 770 | if data.len() != INT_PAGE_SIZE { [INFO] [stderr] 771 | return Err(Error::BadArguments); [INFO] [stderr] 772 | } [INFO] [stderr] 773 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:992:29 [INFO] [stderr] | [INFO] [stderr] 992 | let (inc, result) = match self.command { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 993 | | &Command::Ping => self.render_basic_cmd(count, CMD_PING), [INFO] [stderr] 994 | | &Command::Info => self.render_basic_cmd(count, CMD_INFO), [INFO] [stderr] 995 | | &Command::Id => self.render_basic_cmd(count, CMD_ID), [INFO] [stderr] ... | [INFO] [stderr] 1014 | | &Command::ChangeBaud { mode, baud } => self.render_changebaud(mode, baud), [INFO] [stderr] 1015 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 992 | let (inc, result) = match *self.command { [INFO] [stderr] 993 | Command::Ping => self.render_basic_cmd(count, CMD_PING), [INFO] [stderr] 994 | Command::Info => self.render_basic_cmd(count, CMD_INFO), [INFO] [stderr] 995 | Command::Id => self.render_basic_cmd(count, CMD_ID), [INFO] [stderr] 996 | Command::Reset => self.render_basic_cmd(count, CMD_RESET), [INFO] [stderr] 997 | Command::ErasePage { address } => self.render_erasepage_cmd(address), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:1016:9 [INFO] [stderr] | [INFO] [stderr] 1016 | self.count = self.count + inc; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.count += inc` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:1036:9 [INFO] [stderr] | [INFO] [stderr] 1036 | / match response { [INFO] [stderr] 1037 | | &Response::GetAttr { key, value } => { [INFO] [stderr] 1038 | | if key.len() != KEY_LEN { [INFO] [stderr] 1039 | | return Err(Error::BadArguments); [INFO] [stderr] ... | [INFO] [stderr] 1050 | | _ => {} [INFO] [stderr] 1051 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 1036 | match *response { [INFO] [stderr] 1037 | Response::GetAttr { key, value } => { [INFO] [stderr] 1038 | if key.len() != KEY_LEN { [INFO] [stderr] 1039 | return Err(Error::BadArguments); [INFO] [stderr] 1040 | } [INFO] [stderr] 1041 | if value.len() > MAX_ATTR_LEN { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:1187:29 [INFO] [stderr] | [INFO] [stderr] 1187 | let (inc, result) = match self.response { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 1188 | | &Response::Overflow => self.render_header(count, RES_OVERFLOW), [INFO] [stderr] 1189 | | &Response::Pong => self.render_header(count, RES_PONG), [INFO] [stderr] 1190 | | &Response::BadAddress => self.render_header(count, RES_BADADDR), [INFO] [stderr] ... | [INFO] [stderr] 1204 | | &Response::ChangeBaudFail => self.render_header(count, RES_CHANGE_BAUD_FAIL), [INFO] [stderr] 1205 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 1187 | let (inc, result) = match *self.response { [INFO] [stderr] 1188 | Response::Overflow => self.render_header(count, RES_OVERFLOW), [INFO] [stderr] 1189 | Response::Pong => self.render_header(count, RES_PONG), [INFO] [stderr] 1190 | Response::BadAddress => self.render_header(count, RES_BADADDR), [INFO] [stderr] 1191 | Response::InternalError => self.render_header(count, RES_INTERROR), [INFO] [stderr] 1192 | Response::BadArguments => self.render_header(count, RES_BADARGS), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:1206:9 [INFO] [stderr] | [INFO] [stderr] 1206 | self.count = self.count + inc; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.count += inc` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:285:9 [INFO] [stderr] | [INFO] [stderr] 285 | return buffer.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `buffer.len()` [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: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:769:35 [INFO] [stderr] | [INFO] [stderr] 769 | &Command::WritePage { address: _, data } => { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `WritePage { data, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: You matched a field with a wildcard pattern. Consider using `..` instead [INFO] [stderr] --> src/lib.rs:774:37 [INFO] [stderr] | [INFO] [stderr] 774 | &Command::WriteExPage { address: _, data } => { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Try with `WriteExPage { data, .. }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unneeded_field_pattern [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/lib.rs:1311:37 [INFO] [stderr] | [INFO] [stderr] 1311 | assert_eq!(address, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1319:49 [INFO] [stderr] | [INFO] [stderr] 1319 | let cmd = Command::ErasePage { address: 0xDEADBEEF }; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1352:37 [INFO] [stderr] | [INFO] [stderr] 1352 | assert_eq!(address, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1369:22 [INFO] [stderr] | [INFO] [stderr] 1369 | address: 0xDEADBEEF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1401:37 [INFO] [stderr] | [INFO] [stderr] 1401 | assert_eq!(address, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1409:52 [INFO] [stderr] | [INFO] [stderr] 1409 | let cmd = Command::EraseExBlock { address: 0xDEADBEEF }; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1442:37 [INFO] [stderr] | [INFO] [stderr] 1442 | assert_eq!(address, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1459:22 [INFO] [stderr] | [INFO] [stderr] 1459 | address: 0xDEADBEEF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1504:22 [INFO] [stderr] | [INFO] [stderr] 1504 | address: 0xDEADBEEF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1534:37 [INFO] [stderr] | [INFO] [stderr] 1534 | assert_eq!(address, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1544:22 [INFO] [stderr] | [INFO] [stderr] 1544 | address: 0xDEADBEEF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1574:37 [INFO] [stderr] | [INFO] [stderr] 1574 | assert_eq!(address, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1665:22 [INFO] [stderr] | [INFO] [stderr] 1665 | address: 0xDEADBEEF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1666:21 [INFO] [stderr] | [INFO] [stderr] 1666 | length: 0x12345678, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1234_5678` [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/lib.rs:1699:37 [INFO] [stderr] | [INFO] [stderr] 1699 | assert_eq!(address, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1700:36 [INFO] [stderr] | [INFO] [stderr] 1700 | assert_eq!(length, 0x12345678); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1234_5678` [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/lib.rs:1709:22 [INFO] [stderr] | [INFO] [stderr] 1709 | address: 0xDEADBEEF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1710:21 [INFO] [stderr] | [INFO] [stderr] 1710 | length: 0x12345678, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1234_5678` [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/lib.rs:1743:37 [INFO] [stderr] | [INFO] [stderr] 1743 | assert_eq!(address, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1744:36 [INFO] [stderr] | [INFO] [stderr] 1744 | assert_eq!(length, 0x12345678); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1234_5678` [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/lib.rs:1752:51 [INFO] [stderr] | [INFO] [stderr] 1752 | let cmd = Command::EraseExPage { address: 0xDEADBEEF }; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1775:37 [INFO] [stderr] | [INFO] [stderr] 1775 | assert_eq!(address, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1824:20 [INFO] [stderr] | [INFO] [stderr] 1824 | page1: 0xDEADBEEF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1825:20 [INFO] [stderr] | [INFO] [stderr] 1825 | page2: 0x12345678, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1234_5678` [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/lib.rs:1858:35 [INFO] [stderr] | [INFO] [stderr] 1858 | assert_eq!(page1, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1859:35 [INFO] [stderr] | [INFO] [stderr] 1859 | assert_eq!(page2, 0x12345678); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1234_5678` [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/lib.rs:1869:19 [INFO] [stderr] | [INFO] [stderr] 1869 | baud: 0xDEADBEEF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1897:34 [INFO] [stderr] | [INFO] [stderr] 1897 | assert_eq!(baud, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1910:34 [INFO] [stderr] | [INFO] [stderr] 1910 | assert_eq!(baud, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:1999:22 [INFO] [stderr] | [INFO] [stderr] 1999 | crc: 0xDEADBEEF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:2005:18 [INFO] [stderr] | [INFO] [stderr] 2005 | crc: 0xDEADBEEF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:2149:50 [INFO] [stderr] | [INFO] [stderr] 2149 | Ok(Some(Response::CrcIntFlash { crc: 0xDEADBEEF })) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:2152:46 [INFO] [stderr] | [INFO] [stderr] 2152 | let r = Response::CrcIntFlash { crc: 0xDEADBEEF }; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:2175:50 [INFO] [stderr] | [INFO] [stderr] 2175 | Ok(Some(Response::CrcExtFlash { crc: 0xDEADBEEF })) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:2178:46 [INFO] [stderr] | [INFO] [stderr] 2178 | let r = Response::CrcExtFlash { crc: 0xDEADBEEF }; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:2318:37 [INFO] [stderr] | [INFO] [stderr] 2318 | assert_eq!(address, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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/lib.rs:2319:36 [INFO] [stderr] | [INFO] [stderr] 2319 | assert_eq!(length, 0x12345678); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1234_5678` [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/lib.rs:2335:33 [INFO] [stderr] | [INFO] [stderr] 2335 | assert_eq!(crc, 0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [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: the loop variable `i` is used to index `buffer` [INFO] [stderr] --> src/lib.rs:275:18 [INFO] [stderr] | [INFO] [stderr] 275 | for i in 0..buffer.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] 275 | for (i, ) in buffer.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `CommandDecoder` [INFO] [stderr] --> src/lib.rs:293:5 [INFO] [stderr] | [INFO] [stderr] 293 | / pub fn new() -> CommandDecoder { [INFO] [stderr] 294 | | CommandDecoder { [INFO] [stderr] 295 | | state: DecoderState::Loading, [INFO] [stderr] 296 | | buffer: [0u8; 520], [INFO] [stderr] 297 | | count: 0, [INFO] [stderr] 298 | | } [INFO] [stderr] 299 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 289 | impl Default for CommandDecoder { [INFO] [stderr] 290 | fn default() -> Self { [INFO] [stderr] 291 | Self::new() [INFO] [stderr] 292 | } [INFO] [stderr] 293 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:340:13 [INFO] [stderr] | [INFO] [stderr] 340 | self.count = self.count + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.count += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/lib.rs:522:23 [INFO] [stderr] | [INFO] [stderr] 522 | } else if let Err(_) = result { [INFO] [stderr] | ________________- ^^^^^^ [INFO] [stderr] 523 | | self.count = 0; [INFO] [stderr] 524 | | } [INFO] [stderr] | |_________- help: try this: `if result.is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `ResponseDecoder` [INFO] [stderr] --> src/lib.rs:533:5 [INFO] [stderr] | [INFO] [stderr] 533 | / pub fn new() -> ResponseDecoder { [INFO] [stderr] 534 | | ResponseDecoder { [INFO] [stderr] 535 | | state: DecoderState::Loading, [INFO] [stderr] 536 | | buffer: [0u8; 520], [INFO] [stderr] ... | [INFO] [stderr] 539 | | } [INFO] [stderr] 540 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 529 | impl Default for ResponseDecoder { [INFO] [stderr] 530 | fn default() -> Self { [INFO] [stderr] 531 | Self::new() [INFO] [stderr] 532 | } [INFO] [stderr] 533 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:593:13 [INFO] [stderr] | [INFO] [stderr] 593 | self.count = self.count + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.count += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:768:9 [INFO] [stderr] | [INFO] [stderr] 768 | / match command { [INFO] [stderr] 769 | | &Command::WritePage { address: _, data } => { [INFO] [stderr] 770 | | if data.len() != INT_PAGE_SIZE { [INFO] [stderr] 771 | | return Err(Error::BadArguments); [INFO] [stderr] ... | [INFO] [stderr] 790 | | _ => {} [INFO] [stderr] 791 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 768 | match *command { [INFO] [stderr] 769 | Command::WritePage { address: _, data } => { [INFO] [stderr] 770 | if data.len() != INT_PAGE_SIZE { [INFO] [stderr] 771 | return Err(Error::BadArguments); [INFO] [stderr] 772 | } [INFO] [stderr] 773 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:992:29 [INFO] [stderr] | [INFO] [stderr] 992 | let (inc, result) = match self.command { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 993 | | &Command::Ping => self.render_basic_cmd(count, CMD_PING), [INFO] [stderr] 994 | | &Command::Info => self.render_basic_cmd(count, CMD_INFO), [INFO] [stderr] 995 | | &Command::Id => self.render_basic_cmd(count, CMD_ID), [INFO] [stderr] ... | [INFO] [stderr] 1014 | | &Command::ChangeBaud { mode, baud } => self.render_changebaud(mode, baud), [INFO] [stderr] 1015 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 992 | let (inc, result) = match *self.command { [INFO] [stderr] 993 | Command::Ping => self.render_basic_cmd(count, CMD_PING), [INFO] [stderr] 994 | Command::Info => self.render_basic_cmd(count, CMD_INFO), [INFO] [stderr] 995 | Command::Id => self.render_basic_cmd(count, CMD_ID), [INFO] [stderr] 996 | Command::Reset => self.render_basic_cmd(count, CMD_RESET), [INFO] [stderr] 997 | Command::ErasePage { address } => self.render_erasepage_cmd(address), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:1016:9 [INFO] [stderr] | [INFO] [stderr] 1016 | self.count = self.count + inc; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.count += inc` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:1036:9 [INFO] [stderr] | [INFO] [stderr] 1036 | / match response { [INFO] [stderr] 1037 | | &Response::GetAttr { key, value } => { [INFO] [stderr] 1038 | | if key.len() != KEY_LEN { [INFO] [stderr] 1039 | | return Err(Error::BadArguments); [INFO] [stderr] ... | [INFO] [stderr] 1050 | | _ => {} [INFO] [stderr] 1051 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 1036 | match *response { [INFO] [stderr] 1037 | Response::GetAttr { key, value } => { [INFO] [stderr] 1038 | if key.len() != KEY_LEN { [INFO] [stderr] 1039 | return Err(Error::BadArguments); [INFO] [stderr] 1040 | } [INFO] [stderr] 1041 | if value.len() > MAX_ATTR_LEN { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:1187:29 [INFO] [stderr] | [INFO] [stderr] 1187 | let (inc, result) = match self.response { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 1188 | | &Response::Overflow => self.render_header(count, RES_OVERFLOW), [INFO] [stderr] 1189 | | &Response::Pong => self.render_header(count, RES_PONG), [INFO] [stderr] 1190 | | &Response::BadAddress => self.render_header(count, RES_BADADDR), [INFO] [stderr] ... | [INFO] [stderr] 1204 | | &Response::ChangeBaudFail => self.render_header(count, RES_CHANGE_BAUD_FAIL), [INFO] [stderr] 1205 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 1187 | let (inc, result) = match *self.response { [INFO] [stderr] 1188 | Response::Overflow => self.render_header(count, RES_OVERFLOW), [INFO] [stderr] 1189 | Response::Pong => self.render_header(count, RES_PONG), [INFO] [stderr] 1190 | Response::BadAddress => self.render_header(count, RES_BADADDR), [INFO] [stderr] 1191 | Response::InternalError => self.render_header(count, RES_INTERROR), [INFO] [stderr] 1192 | Response::BadArguments => self.render_header(count, RES_BADARGS), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:1206:9 [INFO] [stderr] | [INFO] [stderr] 1206 | self.count = self.count + inc; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.count += inc` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 38 [INFO] [stderr] --> src/lib.rs:2079:5 [INFO] [stderr] | [INFO] [stderr] 2079 | / fn check_rsp_get_attr() { [INFO] [stderr] 2080 | | let mut p = ResponseDecoder::new(); [INFO] [stderr] 2081 | | assert_eq!(p.receive(ESCAPE_CHAR), Ok(None)); [INFO] [stderr] 2082 | | assert_eq!(p.receive(RES_GATTR), Ok(None)); [INFO] [stderr] ... | [INFO] [stderr] 2135 | | assert_eq!(e.next(), None); [INFO] [stderr] 2136 | | } [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 32 [INFO] [stderr] --> src/lib.rs:2191:5 [INFO] [stderr] | [INFO] [stderr] 2191 | / fn check_rsp_info() { [INFO] [stderr] 2192 | | let mut p = ResponseDecoder::new(); [INFO] [stderr] 2193 | | assert_eq!(p.receive(ESCAPE_CHAR), Ok(None)); [INFO] [stderr] 2194 | | assert_eq!(p.receive(RES_INFO), Ok(None)); [INFO] [stderr] ... | [INFO] [stderr] 2242 | | assert_eq!(e.next(), None); [INFO] [stderr] 2243 | | } [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:2316:38 [INFO] [stderr] | [INFO] [stderr] 2316 | let callback = |x: &Command| match x { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 2317 | | &Command::CrcIntFlash { address, length } => { [INFO] [stderr] 2318 | | assert_eq!(address, 0xDEADBEEF); [INFO] [stderr] 2319 | | assert_eq!(length, 0x12345678); [INFO] [stderr] 2320 | | } [INFO] [stderr] 2321 | | _ => panic!("Bad command {:?}", x), [INFO] [stderr] 2322 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 2316 | let callback = |x: &Command| match *x { [INFO] [stderr] 2317 | Command::CrcIntFlash { address, length } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:2333:39 [INFO] [stderr] | [INFO] [stderr] 2333 | let callback = |x: &Response| match x { [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 2334 | | &Response::CrcExtFlash { crc } => { [INFO] [stderr] 2335 | | assert_eq!(crc, 0xDEADBEEF); [INFO] [stderr] 2336 | | } [INFO] [stderr] 2337 | | _ => panic!("Bad command {:?}", x), [INFO] [stderr] 2338 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 2333 | let callback = |x: &Response| match *x { [INFO] [stderr] 2334 | Response::CrcExtFlash { crc } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.05s [INFO] running `"docker" "inspect" "0e77c0918e98f09df290d2bbbc3bfde1ada264578bab9e4b14087b01b9a7cd8e"` [INFO] running `"docker" "rm" "-f" "0e77c0918e98f09df290d2bbbc3bfde1ada264578bab9e4b14087b01b9a7cd8e"` [INFO] [stdout] 0e77c0918e98f09df290d2bbbc3bfde1ada264578bab9e4b14087b01b9a7cd8e