[INFO] crate dynamixel 0.1.1 is already in cache [INFO] extracting crate dynamixel 0.1.1 into work/ex/clippy-test-run/sources/stable/reg/dynamixel/0.1.1 [INFO] extracting crate dynamixel 0.1.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dynamixel/0.1.1 [INFO] validating manifest of dynamixel-0.1.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 dynamixel-0.1.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 dynamixel-0.1.1 [INFO] removed 1 missing examples [INFO] finished frobbing dynamixel-0.1.1 [INFO] frobbed toml for dynamixel-0.1.1 written to work/ex/clippy-test-run/sources/stable/reg/dynamixel/0.1.1/Cargo.toml [INFO] started frobbing dynamixel-0.1.1 [INFO] removed 1 missing examples [INFO] finished frobbing dynamixel-0.1.1 [INFO] frobbed toml for dynamixel-0.1.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dynamixel/0.1.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 dynamixel-0.1.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/dynamixel/0.1.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] 05efe6b15a51b2df625c4b71c8269fa89c57c47beaf8c258094dd0a7a6f8e987 [INFO] running `"docker" "start" "-a" "05efe6b15a51b2df625c4b71c8269fa89c57c47beaf8c258094dd0a7a6f8e987"` [INFO] [stderr] warning: An explicit [[example]] section is specified in Cargo.toml which currently [INFO] [stderr] disables Cargo from automatically inferring other example targets. [INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following [INFO] [stderr] files will be included as a example target: [INFO] [stderr] [INFO] [stderr] * /opt/crater/workdir/examples/serialport.rs [INFO] [stderr] [INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be [INFO] [stderr] ready to be compiled as a example target today. You can future-proof yourself [INFO] [stderr] and disable this warning by adding `autoexamples = false` to your [package] [INFO] [stderr] section. You may also move the files to a location where Cargo would not [INFO] [stderr] automatically infer them to be a target, such as in subfolders. [INFO] [stderr] [INFO] [stderr] For more information on this warning you can consult [INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330 [INFO] [stderr] Checking dynamixel v0.1.1 (/opt/crater/workdir) [INFO] [stderr] Checking serialport v2.3.0 [INFO] [stderr] Checking badlog v1.1.1 [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/protocol1/instruction.rs:10:14 [INFO] [stderr] | [INFO] [stderr] 10 | Ping{id: id} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/instruction.rs:36:15 [INFO] [stderr] | [INFO] [stderr] 36 | Pong {id: id} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/instruction.rs:48:19 [INFO] [stderr] | [INFO] [stderr] 48 | WriteData{id: id, data: data} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/instruction.rs:48:27 [INFO] [stderr] | [INFO] [stderr] 48 | WriteData{id: id, data: data} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/protocol1/instruction.rs:78:28 [INFO] [stderr] | [INFO] [stderr] 78 | WriteDataResponse {id: id} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/instruction.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/instruction.rs:120:27 [INFO] [stderr] | [INFO] [stderr] 120 | ReadDataResponse {id: id, data: T::deserialize(parameters)} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/mod.rs:59:29 [INFO] [stderr] | [INFO] [stderr] 59 | model_number: model_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `model_number` [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/protocol2/instruction.rs:10:14 [INFO] [stderr] | [INFO] [stderr] 10 | Ping{id: id} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/instruction.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/instruction.rs:55:14 [INFO] [stderr] | [INFO] [stderr] 55 | Read{id: id, phantom: ::lib::marker::PhantomData} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/instruction.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/instruction.rs:104:15 [INFO] [stderr] | [INFO] [stderr] 104 | Write{id: id, data: data} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/instruction.rs:104:23 [INFO] [stderr] | [INFO] [stderr] 104 | Write{id: id, data: data} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/protocol2/instruction.rs:139:24 [INFO] [stderr] | [INFO] [stderr] 139 | WriteResponse {id: id} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/mod.rs:201:13 [INFO] [stderr] | [INFO] [stderr] 201 | length: length, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `length` [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/protocol2/mod.rs:305:13 [INFO] [stderr] | [INFO] [stderr] 305 | bit_stuffer: bit_stuffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bit_stuffer` [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: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `BaudRate` [INFO] [stderr] --> src/protocol1/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use BaudRate; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `CommunicationError` [INFO] [stderr] --> src/protocol1/mod.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use CommunicationError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Expected` [INFO] [stderr] --> src/protocol2/bit_stuffer.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | / pub(crate) enum BitStufferError { [INFO] [stderr] 3 | | ExpectedFirstHeaderByte, [INFO] [stderr] 4 | | ExpectedSecondHeaderByte, [INFO] [stderr] 5 | | ExpectedThirdHeaderByte, [INFO] [stderr] 6 | | ExpectedReservedByte, [INFO] [stderr] 7 | | ExpectedStuffByte, [INFO] [stderr] 8 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `BaudRate` [INFO] [stderr] --> src/protocol2/mod.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use BaudRate; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/protocol2/mod.rs:248:13 [INFO] [stderr] | [INFO] [stderr] 248 | next_byte [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/protocol2/mod.rs:232:29 [INFO] [stderr] | [INFO] [stderr] 232 | let next_byte = match self.pos { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 233 | | 0 => Some(0xff), [INFO] [stderr] 234 | | 1 => Some(0xff), [INFO] [stderr] 235 | | 2 => Some(0xfd), [INFO] [stderr] ... | [INFO] [stderr] 244 | | _ => None, [INFO] [stderr] 245 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pro/mod.rs:20:56 [INFO] [stderr] | [INFO] [stderr] 20 | let goal_position = ((value * 500.0) as i32) * 131593 / 1571; [INFO] [stderr] | ^^^^^^ help: consider: `131_593` [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/pro/mod.rs:26:52 [INFO] [stderr] | [INFO] [stderr] 26 | let pos_rad = (pos_fixed as f32 * 1571.0)/(131593.0 * 500.0); [INFO] [stderr] | ^^^^^^^^ help: consider: `131_593.0` [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: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/protocol1/mod.rs:139:24 [INFO] [stderr] | [INFO] [stderr] 139 | Ok(::protocol1::instruction::WriteDataResponse{id: _}) => Ok(()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/dynamixel/mx28/mod.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | protocol1_servo!(MX28, ::dynamixel::mx28::control_table::WriteRegister, ::dynamixel::mx28::control_table::ReadRegister, 0x001D); [INFO] [stderr] | -------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `WriteDataResponse { .. }` instead [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:121:37 [INFO] [stderr] | [INFO] [stderr] 121 | BaudRate::Baud115200 => 115200, [INFO] [stderr] | ^^^^^^ help: consider: `115_200` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `Interface` [INFO] [stderr] --> src/protocol2/mod.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use Interface; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `value` [INFO] [stderr] --> src/protocol1/mod.rs:369:5 [INFO] [stderr] | [INFO] [stderr] 369 | fn value(&self) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `variants` [INFO] [stderr] --> src/lib.rs:137:5 [INFO] [stderr] | [INFO] [stderr] 137 | fn variants() -> &'static [Self] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/protocol1/instruction.rs:61:18 [INFO] [stderr] | [INFO] [stderr] 61 | for i in 0..T::SIZE as usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `array[6..(T::SIZE as usize + 6)].clone_from_slice(&data[..T::SIZE as usize])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:274:30 [INFO] [stderr] | [INFO] [stderr] 274 | pub fn instruction_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:278:27 [INFO] [stderr] | [INFO] [stderr] 278 | pub fn overload_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:282:27 [INFO] [stderr] | [INFO] [stderr] 282 | pub fn checksum_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:286:24 [INFO] [stderr] | [INFO] [stderr] 286 | pub fn range_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:290:30 [INFO] [stderr] | [INFO] [stderr] 290 | pub fn overheating_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:294:30 [INFO] [stderr] | [INFO] [stderr] 294 | pub fn angle_limit_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:298:32 [INFO] [stderr] | [INFO] [stderr] 298 | pub fn input_voltage_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/protocol1/mod.rs:382:28 [INFO] [stderr] | [INFO] [stderr] 382 | GenericModelNumber(bytes[0] as u16 | (bytes[1] as u16) << 8) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[0])` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/protocol1/mod.rs:382:46 [INFO] [stderr] | [INFO] [stderr] 382 | GenericModelNumber(bytes[0] as u16 | (bytes[1] as u16) << 8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[1])` [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/protocol2/instruction.rs:41:27 [INFO] [stderr] | [INFO] [stderr] 41 | model_number: (parameters[0] as u16) | (parameters[1] as u16) << 8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(parameters[0])` [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/protocol2/instruction.rs:41:52 [INFO] [stderr] | [INFO] [stderr] 41 | model_number: (parameters[0] as u16) | (parameters[1] as u16) << 8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(parameters[1])` [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 should consider deriving a `Default` implementation for `protocol2::crc::CRC` [INFO] [stderr] --> src/protocol2/crc.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn new() -> Self { [INFO] [stderr] 41 | | CRC(0) [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 2 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/crc.rs:52:42 [INFO] [stderr] | [INFO] [stderr] 52 | let index = ((self.0 >> 8) ^ (*element as u16) & 0xff) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(*element)` [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 argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol2/bit_stuffer.rs:54:23 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn stuff_next(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/protocol2/bit_stuffer.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | / if self.state == BitStufferState::B3 { [INFO] [stderr] 56 | | true [INFO] [stderr] 57 | | } else { [INFO] [stderr] 58 | | false [INFO] [stderr] 59 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `self.state == BitStufferState::B3` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/protocol2/mod.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | / fn serialize<'a>(&'a self) -> Serializer<'a, Self> where Self: Sized { [INFO] [stderr] 186 | | let serializer = Serializer{ [INFO] [stderr] 187 | | pos: 0, [INFO] [stderr] 188 | | length: 10 + Self::PARAMETERS, [INFO] [stderr] ... | [INFO] [stderr] 205 | | } [INFO] [stderr] 206 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/mod.rs:289:22 [INFO] [stderr] | [INFO] [stderr] 289 | let length = data[5] as u16 | (data[6] as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(data[5])` [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/protocol2/mod.rs:289:39 [INFO] [stderr] | [INFO] [stderr] 289 | let length = data[5] as u16 | (data[6] as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[6])` [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/protocol2/mod.rs:363:27 [INFO] [stderr] | [INFO] [stderr] 363 | let crc = self.crc_l.unwrap() as u16 | (*b as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.crc_l.unwrap())` [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/protocol2/mod.rs:363:56 [INFO] [stderr] | [INFO] [stderr] 363 | let crc = self.crc_l.unwrap() as u16 | (*b as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(*b)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:24 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | rw_reg2!(GoalPosition, i32, 596); [INFO] [stderr] | --------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:41 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | rw_reg2!(GoalPosition, i32, 596); [INFO] [stderr] | --------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:65 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[2])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | rw_reg2!(GoalPosition, i32, 596); [INFO] [stderr] | --------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:90 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[3])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | rw_reg2!(GoalPosition, i32, 596); [INFO] [stderr] | --------------------------------- in this macro invocation [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:113:23 [INFO] [stderr] | [INFO] [stderr] 113 | $name(data[0] as i16 | ((data[1] as u16) << 8) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | rw_reg2!(GoalTorque, i16, 604); [INFO] [stderr] | ------------------------------- in this macro invocation [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/protocol2/control_table.rs:113:41 [INFO] [stderr] | [INFO] [stderr] 113 | $name(data[0] as i16 | ((data[1] as u16) << 8) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | rw_reg2!(GoalTorque, i16, 604); [INFO] [stderr] | ------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:24 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | r_reg2!(PresentPosition, i32, 611); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:41 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | r_reg2!(PresentPosition, i32, 611); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:65 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[2])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | r_reg2!(PresentPosition, i32, 611); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:90 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[3])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | r_reg2!(PresentPosition, i32, 611); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:24 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | r_reg2!(PresentVelocity, i32, 615); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:41 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | r_reg2!(PresentVelocity, i32, 615); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:65 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[2])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | r_reg2!(PresentVelocity, i32, 615); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:90 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[3])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | r_reg2!(PresentVelocity, i32, 615); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:113:23 [INFO] [stderr] | [INFO] [stderr] 113 | $name(data[0] as i16 | ((data[1] as u16) << 8) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | r_reg2!(PresentCurrent, i16, 621); [INFO] [stderr] | ---------------------------------- in this macro invocation [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/protocol2/control_table.rs:113:41 [INFO] [stderr] | [INFO] [stderr] 113 | $name(data[0] as i16 | ((data[1] as u16) << 8) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | r_reg2!(PresentCurrent, i16, 621); [INFO] [stderr] | ---------------------------------- in this macro invocation [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: passing a unit value to a function [INFO] [stderr] --> src/pro/mod.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 21 | Ok(self.write(interface, ::pro::control_table::GoalPosition::new(goal_position))?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 21 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/protocol1/control_table.rs:132:23 [INFO] [stderr] | [INFO] [stderr] 132 | $name(data[0] as u16 | ((data[1] as u16) << 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/dynamixel/mx28/control_table.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | rw_reg1!(GoalPosition, u16, 30); [INFO] [stderr] | -------------------------------- in this macro invocation [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/protocol1/control_table.rs:132:41 [INFO] [stderr] | [INFO] [stderr] 132 | $name(data[0] as u16 | ((data[1] as u16) << 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/dynamixel/mx28/control_table.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | rw_reg1!(GoalPosition, u16, 30); [INFO] [stderr] | -------------------------------- in this macro invocation [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/protocol1/control_table.rs:132:23 [INFO] [stderr] | [INFO] [stderr] 132 | $name(data[0] as u16 | ((data[1] as u16) << 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/dynamixel/mx28/control_table.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | r_reg1!(PresentPosition, u16, 36); [INFO] [stderr] | ---------------------------------- in this macro invocation [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/protocol1/control_table.rs:132:41 [INFO] [stderr] | [INFO] [stderr] 132 | $name(data[0] as u16 | ((data[1] as u16) << 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/dynamixel/mx28/control_table.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | r_reg1!(PresentPosition, u16, 36); [INFO] [stderr] | ---------------------------------- in this macro invocation [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: passing a unit value to a function [INFO] [stderr] --> src/dynamixel/mx28/mod.rs:10:12 [INFO] [stderr] | [INFO] [stderr] 10 | Ok(self.write_data(interface, control_table::TorqueEnable::new(enable_torque))?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 10 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/dynamixel/mx28/mod.rs:14:47 [INFO] [stderr] | [INFO] [stderr] 14 | let goal_position = (2048i32 + (value*651.08854) as i32) as u16; [INFO] [stderr] | ^^^^^^^^^ help: consider changing the type or truncating it to: `651.088_56` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::excessive_precision)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/dynamixel/mx28/mod.rs:15:12 [INFO] [stderr] | [INFO] [stderr] 15 | Ok(self.write_data(interface, control_table::GoalPosition::new(goal_position))?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 15 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/protocol1/instruction.rs:10:14 [INFO] [stderr] | [INFO] [stderr] 10 | Ping{id: id} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/instruction.rs:36:15 [INFO] [stderr] | [INFO] [stderr] 36 | Pong {id: id} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/instruction.rs:48:19 [INFO] [stderr] | [INFO] [stderr] 48 | WriteData{id: id, data: data} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/instruction.rs:48:27 [INFO] [stderr] | [INFO] [stderr] 48 | WriteData{id: id, data: data} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/protocol1/instruction.rs:78:28 [INFO] [stderr] | [INFO] [stderr] 78 | WriteDataResponse {id: id} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/instruction.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/instruction.rs:120:27 [INFO] [stderr] | [INFO] [stderr] 120 | ReadDataResponse {id: id, data: T::deserialize(parameters)} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol1/mod.rs:59:29 [INFO] [stderr] | [INFO] [stderr] 59 | model_number: model_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `model_number` [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/protocol2/instruction.rs:10:14 [INFO] [stderr] | [INFO] [stderr] 10 | Ping{id: id} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/instruction.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/instruction.rs:55:14 [INFO] [stderr] | [INFO] [stderr] 55 | Read{id: id, phantom: ::lib::marker::PhantomData} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/instruction.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/instruction.rs:104:15 [INFO] [stderr] | [INFO] [stderr] 104 | Write{id: id, data: data} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/instruction.rs:104:23 [INFO] [stderr] | [INFO] [stderr] 104 | Write{id: id, data: data} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/protocol2/instruction.rs:139:24 [INFO] [stderr] | [INFO] [stderr] 139 | WriteResponse {id: id} [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/protocol2/mod.rs:201:13 [INFO] [stderr] | [INFO] [stderr] 201 | length: length, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `length` [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/protocol2/mod.rs:305:13 [INFO] [stderr] | [INFO] [stderr] 305 | bit_stuffer: bit_stuffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bit_stuffer` [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: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `BaudRate` [INFO] [stderr] --> src/protocol1/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use BaudRate; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `CommunicationError` [INFO] [stderr] --> src/protocol1/mod.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use CommunicationError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/protocol2/instruction.rs:225:94 [INFO] [stderr] | [INFO] [stderr] 225 | let write = Write::new(PacketID::unicast(1), ::pro::control_table::GoalPosition::new(0xfdffff)); [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00fd_ffff` [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/protocol2/instruction.rs:296:71 [INFO] [stderr] | [INFO] [stderr] 296 | value: ::pro::control_table::GoalPosition::new(0x000000a6), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_00a6` [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/protocol2/instruction.rs:317:71 [INFO] [stderr] | [INFO] [stderr] 317 | value: ::pro::control_table::GoalPosition::new(0x000000a6), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_00a6` [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: All variants have the same prefix: `Expected` [INFO] [stderr] --> src/protocol2/bit_stuffer.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | / pub(crate) enum BitStufferError { [INFO] [stderr] 3 | | ExpectedFirstHeaderByte, [INFO] [stderr] 4 | | ExpectedSecondHeaderByte, [INFO] [stderr] 5 | | ExpectedThirdHeaderByte, [INFO] [stderr] 6 | | ExpectedReservedByte, [INFO] [stderr] 7 | | ExpectedStuffByte, [INFO] [stderr] 8 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `BaudRate` [INFO] [stderr] --> src/protocol2/mod.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use BaudRate; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/protocol2/mod.rs:248:13 [INFO] [stderr] | [INFO] [stderr] 248 | next_byte [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/protocol2/mod.rs:232:29 [INFO] [stderr] | [INFO] [stderr] 232 | let next_byte = match self.pos { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 233 | | 0 => Some(0xff), [INFO] [stderr] 234 | | 1 => Some(0xff), [INFO] [stderr] 235 | | 2 => Some(0xfd), [INFO] [stderr] ... | [INFO] [stderr] 244 | | _ => None, [INFO] [stderr] 245 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pro/mod.rs:20:56 [INFO] [stderr] | [INFO] [stderr] 20 | let goal_position = ((value * 500.0) as i32) * 131593 / 1571; [INFO] [stderr] | ^^^^^^ help: consider: `131_593` [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/pro/mod.rs:26:52 [INFO] [stderr] | [INFO] [stderr] 26 | let pos_rad = (pos_fixed as f32 * 1571.0)/(131593.0 * 500.0); [INFO] [stderr] | ^^^^^^^^ help: consider: `131_593.0` [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: All the struct fields are matched to a wildcard pattern, consider using `..`. [INFO] [stderr] --> src/protocol1/mod.rs:139:24 [INFO] [stderr] | [INFO] [stderr] 139 | Ok(::protocol1::instruction::WriteDataResponse{id: _}) => Ok(()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/dynamixel/mx28/mod.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | protocol1_servo!(MX28, ::dynamixel::mx28::control_table::WriteRegister, ::dynamixel::mx28::control_table::ReadRegister, 0x001D); [INFO] [stderr] | -------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unneeded_field_pattern)] on by default [INFO] [stderr] = help: Try with `WriteDataResponse { .. }` instead [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:121:37 [INFO] [stderr] | [INFO] [stderr] 121 | BaudRate::Baud115200 => 115200, [INFO] [stderr] | ^^^^^^ help: consider: `115_200` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `Interface` [INFO] [stderr] --> src/protocol2/mod.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use Interface; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `value` [INFO] [stderr] --> src/protocol1/mod.rs:369:5 [INFO] [stderr] | [INFO] [stderr] 369 | fn value(&self) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `variants` [INFO] [stderr] --> src/lib.rs:137:5 [INFO] [stderr] | [INFO] [stderr] 137 | fn variants() -> &'static [Self] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/protocol1/instruction.rs:61:18 [INFO] [stderr] | [INFO] [stderr] 61 | for i in 0..T::SIZE as usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try replacing the loop by: `array[6..(T::SIZE as usize + 6)].clone_from_slice(&data[..T::SIZE as usize])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:274:30 [INFO] [stderr] | [INFO] [stderr] 274 | pub fn instruction_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:278:27 [INFO] [stderr] | [INFO] [stderr] 278 | pub fn overload_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:282:27 [INFO] [stderr] | [INFO] [stderr] 282 | pub fn checksum_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:286:24 [INFO] [stderr] | [INFO] [stderr] 286 | pub fn range_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:290:30 [INFO] [stderr] | [INFO] [stderr] 290 | pub fn overheating_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:294:30 [INFO] [stderr] | [INFO] [stderr] 294 | pub fn angle_limit_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol1/mod.rs:298:32 [INFO] [stderr] | [INFO] [stderr] 298 | pub fn input_voltage_error(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/protocol1/mod.rs:382:28 [INFO] [stderr] | [INFO] [stderr] 382 | GenericModelNumber(bytes[0] as u16 | (bytes[1] as u16) << 8) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[0])` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/protocol1/mod.rs:382:46 [INFO] [stderr] | [INFO] [stderr] 382 | GenericModelNumber(bytes[0] as u16 | (bytes[1] as u16) << 8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(bytes[1])` [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/protocol2/instruction.rs:41:27 [INFO] [stderr] | [INFO] [stderr] 41 | model_number: (parameters[0] as u16) | (parameters[1] as u16) << 8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(parameters[0])` [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/protocol2/instruction.rs:41:52 [INFO] [stderr] | [INFO] [stderr] 41 | model_number: (parameters[0] as u16) | (parameters[1] as u16) << 8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(parameters[1])` [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 should consider deriving a `Default` implementation for `protocol2::crc::CRC` [INFO] [stderr] --> src/protocol2/crc.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn new() -> Self { [INFO] [stderr] 41 | | CRC(0) [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 2 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/crc.rs:52:42 [INFO] [stderr] | [INFO] [stderr] 52 | let index = ((self.0 >> 8) ^ (*element as u16) & 0xff) as usize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(*element)` [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 argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/protocol2/bit_stuffer.rs:54:23 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn stuff_next(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/protocol2/bit_stuffer.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | / if self.state == BitStufferState::B3 { [INFO] [stderr] 56 | | true [INFO] [stderr] 57 | | } else { [INFO] [stderr] 58 | | false [INFO] [stderr] 59 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `self.state == BitStufferState::B3` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/protocol2/mod.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | / fn serialize<'a>(&'a self) -> Serializer<'a, Self> where Self: Sized { [INFO] [stderr] 186 | | let serializer = Serializer{ [INFO] [stderr] 187 | | pos: 0, [INFO] [stderr] 188 | | length: 10 + Self::PARAMETERS, [INFO] [stderr] ... | [INFO] [stderr] 205 | | } [INFO] [stderr] 206 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/mod.rs:289:22 [INFO] [stderr] | [INFO] [stderr] 289 | let length = data[5] as u16 | (data[6] as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(data[5])` [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/protocol2/mod.rs:289:39 [INFO] [stderr] | [INFO] [stderr] 289 | let length = data[5] as u16 | (data[6] as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[6])` [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/protocol2/mod.rs:363:27 [INFO] [stderr] | [INFO] [stderr] 363 | let crc = self.crc_l.unwrap() as u16 | (*b as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.crc_l.unwrap())` [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/protocol2/mod.rs:363:56 [INFO] [stderr] | [INFO] [stderr] 363 | let crc = self.crc_l.unwrap() as u16 | (*b as u16) << 8; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(*b)` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:24 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | rw_reg2!(GoalPosition, i32, 596); [INFO] [stderr] | --------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:41 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | rw_reg2!(GoalPosition, i32, 596); [INFO] [stderr] | --------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:65 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[2])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | rw_reg2!(GoalPosition, i32, 596); [INFO] [stderr] | --------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:90 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[3])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | rw_reg2!(GoalPosition, i32, 596); [INFO] [stderr] | --------------------------------- in this macro invocation [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:113:23 [INFO] [stderr] | [INFO] [stderr] 113 | $name(data[0] as i16 | ((data[1] as u16) << 8) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | rw_reg2!(GoalTorque, i16, 604); [INFO] [stderr] | ------------------------------- in this macro invocation [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/protocol2/control_table.rs:113:41 [INFO] [stderr] | [INFO] [stderr] 113 | $name(data[0] as i16 | ((data[1] as u16) << 8) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | rw_reg2!(GoalTorque, i16, 604); [INFO] [stderr] | ------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:24 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | r_reg2!(PresentPosition, i32, 611); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:41 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | r_reg2!(PresentPosition, i32, 611); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:65 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[2])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | r_reg2!(PresentPosition, i32, 611); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:90 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[3])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | r_reg2!(PresentPosition, i32, 611); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:24 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u32::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | r_reg2!(PresentVelocity, i32, 615); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:41 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | r_reg2!(PresentVelocity, i32, 615); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:65 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[2])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | r_reg2!(PresentVelocity, i32, 615); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:133:90 [INFO] [stderr] | [INFO] [stderr] 133 | $name((data[0] as u32 | (data[1] as u32) << 8 | (data[2] as u32) << 16 | (data[3] as u32) << 24) as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(data[3])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | r_reg2!(PresentVelocity, i32, 615); [INFO] [stderr] | ----------------------------------- in this macro invocation [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 i16 may become silently lossy if types change [INFO] [stderr] --> src/protocol2/control_table.rs:113:23 [INFO] [stderr] | [INFO] [stderr] 113 | $name(data[0] as i16 | ((data[1] as u16) << 8) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | r_reg2!(PresentCurrent, i16, 621); [INFO] [stderr] | ---------------------------------- in this macro invocation [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/protocol2/control_table.rs:113:41 [INFO] [stderr] | [INFO] [stderr] 113 | $name(data[0] as i16 | ((data[1] as u16) << 8) as i16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/pro/control_table.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | r_reg2!(PresentCurrent, i16, 621); [INFO] [stderr] | ---------------------------------- in this macro invocation [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: passing a unit value to a function [INFO] [stderr] --> src/pro/mod.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 21 | Ok(self.write(interface, ::pro::control_table::GoalPosition::new(goal_position))?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 21 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/protocol1/control_table.rs:132:23 [INFO] [stderr] | [INFO] [stderr] 132 | $name(data[0] as u16 | ((data[1] as u16) << 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/dynamixel/mx28/control_table.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | rw_reg1!(GoalPosition, u16, 30); [INFO] [stderr] | -------------------------------- in this macro invocation [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/protocol1/control_table.rs:132:41 [INFO] [stderr] | [INFO] [stderr] 132 | $name(data[0] as u16 | ((data[1] as u16) << 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/dynamixel/mx28/control_table.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | rw_reg1!(GoalPosition, u16, 30); [INFO] [stderr] | -------------------------------- in this macro invocation [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/protocol1/control_table.rs:132:23 [INFO] [stderr] | [INFO] [stderr] 132 | $name(data[0] as u16 | ((data[1] as u16) << 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(data[0])` [INFO] [stderr] | [INFO] [stderr] ::: src/dynamixel/mx28/control_table.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | r_reg1!(PresentPosition, u16, 36); [INFO] [stderr] | ---------------------------------- in this macro invocation [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/protocol1/control_table.rs:132:41 [INFO] [stderr] | [INFO] [stderr] 132 | $name(data[0] as u16 | ((data[1] as u16) << 8)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[1])` [INFO] [stderr] | [INFO] [stderr] ::: src/dynamixel/mx28/control_table.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | r_reg1!(PresentPosition, u16, 36); [INFO] [stderr] | ---------------------------------- in this macro invocation [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: passing a unit value to a function [INFO] [stderr] --> src/dynamixel/mx28/mod.rs:10:12 [INFO] [stderr] | [INFO] [stderr] 10 | Ok(self.write_data(interface, control_table::TorqueEnable::new(enable_torque))?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 10 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: float has excessive precision [INFO] [stderr] --> src/dynamixel/mx28/mod.rs:14:47 [INFO] [stderr] | [INFO] [stderr] 14 | let goal_position = (2048i32 + (value*651.08854) as i32) as u16; [INFO] [stderr] | ^^^^^^^^^ help: consider changing the type or truncating it to: `651.088_56` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::excessive_precision)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/dynamixel/mx28/mod.rs:15:12 [INFO] [stderr] | [INFO] [stderr] 15 | Ok(self.write_data(interface, control_table::GoalPosition::new(goal_position))?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 15 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.85s [INFO] running `"docker" "inspect" "05efe6b15a51b2df625c4b71c8269fa89c57c47beaf8c258094dd0a7a6f8e987"` [INFO] running `"docker" "rm" "-f" "05efe6b15a51b2df625c4b71c8269fa89c57c47beaf8c258094dd0a7a6f8e987"` [INFO] [stdout] 05efe6b15a51b2df625c4b71c8269fa89c57c47beaf8c258094dd0a7a6f8e987