[INFO] crate i2cdev 0.4.1 is already in cache [INFO] extracting crate i2cdev 0.4.1 into work/ex/clippy-test-run/sources/stable/reg/i2cdev/0.4.1 [INFO] extracting crate i2cdev 0.4.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/i2cdev/0.4.1 [INFO] validating manifest of i2cdev-0.4.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 i2cdev-0.4.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 i2cdev-0.4.1 [INFO] finished frobbing i2cdev-0.4.1 [INFO] frobbed toml for i2cdev-0.4.1 written to work/ex/clippy-test-run/sources/stable/reg/i2cdev/0.4.1/Cargo.toml [INFO] started frobbing i2cdev-0.4.1 [INFO] finished frobbing i2cdev-0.4.1 [INFO] frobbed toml for i2cdev-0.4.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/i2cdev/0.4.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 i2cdev-0.4.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/i2cdev/0.4.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] 455040b94ca4a2a5b00292ea259295a56483457762ebf250cfd12b21927ea3bb [INFO] running `"docker" "start" "-a" "455040b94ca4a2a5b00292ea259295a56483457762ebf250cfd12b21927ea3bb"` [INFO] [stderr] Checking i2cdev v0.4.1 (/opt/crater/workdir) [INFO] [stderr] Checking docopt v0.8.3 [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ffi.rs:198:9 [INFO] [stderr] | [INFO] [stderr] 198 | 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/ffi.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | 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: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:56:30 [INFO] [stderr] | [INFO] [stderr] 56 | const I2C_FUNC_I2C = 0x00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0001` [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/ffi.rs:57:37 [INFO] [stderr] | [INFO] [stderr] 57 | const I2C_FUNC_10BIT_ADDR = 0x00000002; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0002` [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/ffi.rs:58:44 [INFO] [stderr] | [INFO] [stderr] 58 | const I2C_FUNC_PROTOCOL_MANGLING = 0x00000004; /* I2C_M_IGNORE_NAK etc. */ [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0004` [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/ffi.rs:59:36 [INFO] [stderr] | [INFO] [stderr] 59 | const I2C_FUNC_SMBUS_PEC = 0x00000008; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0008` [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/ffi.rs:60:34 [INFO] [stderr] | [INFO] [stderr] 60 | const I2C_FUNC_NOSTART = 0x00000010; /* I2C_M_NOSTART */ [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0010` [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/ffi.rs:61:48 [INFO] [stderr] | [INFO] [stderr] 61 | const I2C_FUNC_SMBUS_BLOCK_PROC_CALL = 0x00008000; /* SMBus 2.0 */ [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8000` [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/ffi.rs:62:38 [INFO] [stderr] | [INFO] [stderr] 62 | const I2C_FUNC_SMBUS_QUICK = 0x00010000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:63:42 [INFO] [stderr] | [INFO] [stderr] 63 | const I2C_FUNC_SMBUS_READ_BYTE = 0x00020000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0002_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:64:43 [INFO] [stderr] | [INFO] [stderr] 64 | const I2C_FUNC_SMBUS_WRITE_BYTE = 0x00040000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0004_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:65:47 [INFO] [stderr] | [INFO] [stderr] 65 | const I2C_FUNC_SMBUS_READ_BYTE_DATA = 0x00080000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0008_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:66:48 [INFO] [stderr] | [INFO] [stderr] 66 | const I2C_FUNC_SMBUS_WRITE_BYTE_DATA = 0x00100000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:67:47 [INFO] [stderr] | [INFO] [stderr] 67 | const I2C_FUNC_SMBUS_READ_WORD_DATA = 0x00200000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0020_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:68:48 [INFO] [stderr] | [INFO] [stderr] 68 | const I2C_FUNC_SMBUS_WRITE_WORD_DATA = 0x00400000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0040_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:69:42 [INFO] [stderr] | [INFO] [stderr] 69 | const I2C_FUNC_SMBUS_PROC_CALL = 0x00800000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0080_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:70:48 [INFO] [stderr] | [INFO] [stderr] 70 | const I2C_FUNC_SMBUS_READ_BLOCK_DATA = 0x01000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:71:50 [INFO] [stderr] | [INFO] [stderr] 71 | const I2C_FUNC_SMBUS_WRITE_BLOCK_DATA = 0x02000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0200_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:72:47 [INFO] [stderr] | [INFO] [stderr] 72 | const I2C_FUNC_SMBUS_READ_I2C_BLOCK = 0x04000000; /* I2C-like block xfer */ [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0400_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:73:48 [INFO] [stderr] | [INFO] [stderr] 73 | const I2C_FUNC_SMBUS_WRITE_I2C_BLOCK = 0x08000000; /* w/ 1-byte reg. addr. */ [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0800_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/ffi.rs:185:42 [INFO] [stderr] | [INFO] [stderr] 185 | ioctl::set_i2c_slave_address(fd, slave_address as i32)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(slave_address)` [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: The function/method `ioctl::i2c_smbus` doesn't need a mutable reference [INFO] [stderr] --> src/ffi.rs:204:26 [INFO] [stderr] | [INFO] [stderr] 204 | ioctl::i2c_smbus(fd, &mut args).map(drop) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/ffi.rs:209:22 [INFO] [stderr] | [INFO] [stderr] 209 | let read_write = match bit { [INFO] [stderr] | ______________________^ [INFO] [stderr] 210 | | true => I2CSMBusReadWrite::I2C_SMBUS_READ, [INFO] [stderr] 211 | | false => I2CSMBusReadWrite::I2C_SMBUS_WRITE, [INFO] [stderr] 212 | | }; [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if bit { I2CSMBusReadWrite::I2C_SMBUS_READ } else { I2CSMBusReadWrite::I2C_SMBUS_WRITE }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/ffi.rs:369:14 [INFO] [stderr] | [INFO] [stderr] 369 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: try replacing the loop by: `data.block[1..(len + 1)].clone_from_slice(&values[0..((len + 1) - 1)])` [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: an inclusive range would be more readable [INFO] [stderr] --> src/ffi.rs:369:14 [INFO] [stderr] | [INFO] [stderr] 369 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=len` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/ffi.rs:394:14 [INFO] [stderr] | [INFO] [stderr] 394 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: try replacing the loop by: `data.block[1..(len + 1)].clone_from_slice(&values[0..((len + 1) - 1)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/ffi.rs:394:14 [INFO] [stderr] | [INFO] [stderr] 394 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/ffi.rs:416:14 [INFO] [stderr] | [INFO] [stderr] 416 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: try replacing the loop by: `data.block[1..(len + 1)].clone_from_slice(&values[0..((len + 1) - 1)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/ffi.rs:416:14 [INFO] [stderr] | [INFO] [stderr] 416 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: The function/method `write` doesn't need a mutable reference [INFO] [stderr] --> src/core.rs:45:20 [INFO] [stderr] | [INFO] [stderr] 45 | self.write(&mut [value]) [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `write` doesn't need a mutable reference [INFO] [stderr] --> src/core.rs:60:20 [INFO] [stderr] | [INFO] [stderr] 60 | self.write(&mut [register, value]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `mock::I2CRegisterMap` [INFO] [stderr] --> src/mock.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> I2CRegisterMap { [INFO] [stderr] 20 | | I2CRegisterMap { [INFO] [stderr] 21 | | registers: [0x00; 0xFF], [INFO] [stderr] 22 | | offset: 0, [INFO] [stderr] 23 | | } [INFO] [stderr] 24 | | } [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] 18 | impl Default for mock::I2CRegisterMap { [INFO] [stderr] 19 | fn default() -> Self { [INFO] [stderr] 20 | Self::new() [INFO] [stderr] 21 | } [INFO] [stderr] 22 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `data` [INFO] [stderr] --> src/mock.rs:28:18 [INFO] [stderr] | [INFO] [stderr] 28 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 28 | for (i, ) in data.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/mock.rs:28:18 [INFO] [stderr] | [INFO] [stderr] 28 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try replacing the loop by: `self.registers[offset..(data.len() + offset)].clone_from_slice(&data[..])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `data`. [INFO] [stderr] --> src/mock.rs:37:18 [INFO] [stderr] | [INFO] [stderr] 37 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 37 | for in &mut data { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `mock::MockI2CDevice` [INFO] [stderr] --> src/mock.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | / pub fn new() -> MockI2CDevice { [INFO] [stderr] 64 | | MockI2CDevice { regmap: I2CRegisterMap::new() } [INFO] [stderr] 65 | | } [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] 62 | impl Default for mock::MockI2CDevice { [INFO] [stderr] 63 | fn default() -> Self { [INFO] [stderr] 64 | Self::new() [INFO] [stderr] 65 | } [INFO] [stderr] 66 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ffi.rs:198:9 [INFO] [stderr] | [INFO] [stderr] 198 | 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/ffi.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | 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] --> examples/sensors.rs:190:43 [INFO] [stderr] | [INFO] [stderr] 190 | Ok(ADXL345Accelerometer { i2cdev: i2cdev }) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `i2cdev` [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] --> examples/sensors.rs:337:21 [INFO] [stderr] | [INFO] [stderr] 337 | padc: padc, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `padc` [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] --> examples/sensors.rs:338:21 [INFO] [stderr] | [INFO] [stderr] 338 | tadc: tadc, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tadc` [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] --> examples/sensors.rs:369:21 [INFO] [stderr] | [INFO] [stderr] 369 | i2cdev: i2cdev, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `i2cdev` [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] --> examples/sensors.rs:370:21 [INFO] [stderr] | [INFO] [stderr] 370 | coeff: coeff, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `coeff` [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] --> examples/nunchuck.rs:109:43 [INFO] [stderr] | [INFO] [stderr] 109 | let mut nunchuck = Nunchuck { i2cdev: i2cdev }; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `i2cdev` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:56:30 [INFO] [stderr] | [INFO] [stderr] 56 | const I2C_FUNC_I2C = 0x00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0001` [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/ffi.rs:57:37 [INFO] [stderr] | [INFO] [stderr] 57 | const I2C_FUNC_10BIT_ADDR = 0x00000002; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0002` [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/ffi.rs:58:44 [INFO] [stderr] | [INFO] [stderr] 58 | const I2C_FUNC_PROTOCOL_MANGLING = 0x00000004; /* I2C_M_IGNORE_NAK etc. */ [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0004` [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/ffi.rs:59:36 [INFO] [stderr] | [INFO] [stderr] 59 | const I2C_FUNC_SMBUS_PEC = 0x00000008; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0008` [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/ffi.rs:60:34 [INFO] [stderr] | [INFO] [stderr] 60 | const I2C_FUNC_NOSTART = 0x00000010; /* I2C_M_NOSTART */ [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0010` [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/ffi.rs:61:48 [INFO] [stderr] | [INFO] [stderr] 61 | const I2C_FUNC_SMBUS_BLOCK_PROC_CALL = 0x00008000; /* SMBus 2.0 */ [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_8000` [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/ffi.rs:62:38 [INFO] [stderr] | [INFO] [stderr] 62 | const I2C_FUNC_SMBUS_QUICK = 0x00010000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:63:42 [INFO] [stderr] | [INFO] [stderr] 63 | const I2C_FUNC_SMBUS_READ_BYTE = 0x00020000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0002_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:64:43 [INFO] [stderr] | [INFO] [stderr] 64 | const I2C_FUNC_SMBUS_WRITE_BYTE = 0x00040000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0004_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:65:47 [INFO] [stderr] | [INFO] [stderr] 65 | const I2C_FUNC_SMBUS_READ_BYTE_DATA = 0x00080000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0008_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:66:48 [INFO] [stderr] | [INFO] [stderr] 66 | const I2C_FUNC_SMBUS_WRITE_BYTE_DATA = 0x00100000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:67:47 [INFO] [stderr] | [INFO] [stderr] 67 | const I2C_FUNC_SMBUS_READ_WORD_DATA = 0x00200000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0020_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:68:48 [INFO] [stderr] | [INFO] [stderr] 68 | const I2C_FUNC_SMBUS_WRITE_WORD_DATA = 0x00400000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0040_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:69:42 [INFO] [stderr] | [INFO] [stderr] 69 | const I2C_FUNC_SMBUS_PROC_CALL = 0x00800000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0080_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:70:48 [INFO] [stderr] | [INFO] [stderr] 70 | const I2C_FUNC_SMBUS_READ_BLOCK_DATA = 0x01000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:71:50 [INFO] [stderr] | [INFO] [stderr] 71 | const I2C_FUNC_SMBUS_WRITE_BLOCK_DATA = 0x02000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0200_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:72:47 [INFO] [stderr] | [INFO] [stderr] 72 | const I2C_FUNC_SMBUS_READ_I2C_BLOCK = 0x04000000; /* I2C-like block xfer */ [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0400_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ffi.rs:73:48 [INFO] [stderr] | [INFO] [stderr] 73 | const I2C_FUNC_SMBUS_WRITE_I2C_BLOCK = 0x08000000; /* w/ 1-byte reg. addr. */ [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0800_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/ffi.rs:185:42 [INFO] [stderr] | [INFO] [stderr] 185 | ioctl::set_i2c_slave_address(fd, slave_address as i32)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(slave_address)` [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: The function/method `ioctl::i2c_smbus` doesn't need a mutable reference [INFO] [stderr] --> src/ffi.rs:204:26 [INFO] [stderr] | [INFO] [stderr] 204 | ioctl::i2c_smbus(fd, &mut args).map(drop) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/ffi.rs:209:22 [INFO] [stderr] | [INFO] [stderr] 209 | let read_write = match bit { [INFO] [stderr] | ______________________^ [INFO] [stderr] 210 | | true => I2CSMBusReadWrite::I2C_SMBUS_READ, [INFO] [stderr] 211 | | false => I2CSMBusReadWrite::I2C_SMBUS_WRITE, [INFO] [stderr] 212 | | }; [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if bit { I2CSMBusReadWrite::I2C_SMBUS_READ } else { I2CSMBusReadWrite::I2C_SMBUS_WRITE }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/ffi.rs:369:14 [INFO] [stderr] | [INFO] [stderr] 369 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: try replacing the loop by: `data.block[1..(len + 1)].clone_from_slice(&values[0..((len + 1) - 1)])` [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: an inclusive range would be more readable [INFO] [stderr] --> src/ffi.rs:369:14 [INFO] [stderr] | [INFO] [stderr] 369 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=len` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/ffi.rs:394:14 [INFO] [stderr] | [INFO] [stderr] 394 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: try replacing the loop by: `data.block[1..(len + 1)].clone_from_slice(&values[0..((len + 1) - 1)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/ffi.rs:394:14 [INFO] [stderr] | [INFO] [stderr] 394 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/ffi.rs:416:14 [INFO] [stderr] | [INFO] [stderr] 416 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: try replacing the loop by: `data.block[1..(len + 1)].clone_from_slice(&values[0..((len + 1) - 1)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/ffi.rs:416:14 [INFO] [stderr] | [INFO] [stderr] 416 | for i in 1..(len + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `1..=len` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: The function/method `write` doesn't need a mutable reference [INFO] [stderr] --> src/core.rs:45:20 [INFO] [stderr] | [INFO] [stderr] 45 | self.write(&mut [value]) [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `write` doesn't need a mutable reference [INFO] [stderr] --> src/core.rs:60:20 [INFO] [stderr] | [INFO] [stderr] 60 | self.write(&mut [register, value]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `mock::I2CRegisterMap` [INFO] [stderr] --> src/mock.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> I2CRegisterMap { [INFO] [stderr] 20 | | I2CRegisterMap { [INFO] [stderr] 21 | | registers: [0x00; 0xFF], [INFO] [stderr] 22 | | offset: 0, [INFO] [stderr] 23 | | } [INFO] [stderr] 24 | | } [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] 18 | impl Default for mock::I2CRegisterMap { [INFO] [stderr] 19 | fn default() -> Self { [INFO] [stderr] 20 | Self::new() [INFO] [stderr] 21 | } [INFO] [stderr] 22 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `data` [INFO] [stderr] --> src/mock.rs:28:18 [INFO] [stderr] | [INFO] [stderr] 28 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 28 | for (i, ) in data.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/mock.rs:28:18 [INFO] [stderr] | [INFO] [stderr] 28 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try replacing the loop by: `self.registers[offset..(data.len() + offset)].clone_from_slice(&data[..])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `data`. [INFO] [stderr] --> src/mock.rs:37:18 [INFO] [stderr] | [INFO] [stderr] 37 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 37 | for in &mut data { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `mock::MockI2CDevice` [INFO] [stderr] --> src/mock.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | / pub fn new() -> MockI2CDevice { [INFO] [stderr] 64 | | MockI2CDevice { regmap: I2CRegisterMap::new() } [INFO] [stderr] 65 | | } [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] 62 | impl Default for mock::MockI2CDevice { [INFO] [stderr] 63 | fn default() -> Self { [INFO] [stderr] 64 | Self::new() [INFO] [stderr] 65 | } [INFO] [stderr] 66 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> examples/sensors.rs:294:13 [INFO] [stderr] | [INFO] [stderr] 294 | adj [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] --> examples/sensors.rs:292:23 [INFO] [stderr] | [INFO] [stderr] 292 | let adj = (rawval as f32 / 2_f32.powi(fractional_bits + extrabits)) [INFO] [stderr] | _______________________^ [INFO] [stderr] 293 | | / 10_f32.powi(dec_pt_zero_pad); [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> examples/sensors.rs:463:15 [INFO] [stderr] | [INFO] [stderr] 463 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> examples/nunchuck.rs:202:15 [INFO] [stderr] | [INFO] [stderr] 202 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> examples/nunchuck.rs:85:30 [INFO] [stderr] | [INFO] [stderr] 85 | accel_x: (data[2] as u16) << 2 | ((data[5] as u16 >> 6) & 0b11), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[2])` [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] --> examples/nunchuck.rs:85:56 [INFO] [stderr] | [INFO] [stderr] 85 | accel_x: (data[2] as u16) << 2 | ((data[5] as u16 >> 6) & 0b11), [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] --> examples/nunchuck.rs:86:30 [INFO] [stderr] | [INFO] [stderr] 86 | accel_y: (data[3] as u16) << 2 | ((data[5] as u16 >> 4) & 0b11), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[3])` [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] --> examples/nunchuck.rs:86:56 [INFO] [stderr] | [INFO] [stderr] 86 | accel_y: (data[3] as u16) << 2 | ((data[5] as u16 >> 4) & 0b11), [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] --> examples/nunchuck.rs:87:30 [INFO] [stderr] | [INFO] [stderr] 87 | accel_z: (data[4] as u16) << 2 | ((data[5] as u16 >> 2) & 0b11), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(data[4])` [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] --> examples/nunchuck.rs:87:56 [INFO] [stderr] | [INFO] [stderr] 87 | accel_z: (data[4] as u16) << 2 | ((data[5] as u16 >> 2) & 0b11), [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 i16 to f32 may become silently lossy if types change [INFO] [stderr] --> examples/sensors.rs:219:25 [INFO] [stderr] | [INFO] [stderr] 219 | x: (x as f32 / 1023.0) * (ACCEL_RANGE * 2.0), [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(x)` [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 i16 to f32 may become silently lossy if types change [INFO] [stderr] --> examples/sensors.rs:220:25 [INFO] [stderr] | [INFO] [stderr] 220 | y: (y as f32 / 1023.0) * (ACCEL_RANGE * 2.0), [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(y)` [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 i16 to f32 may become silently lossy if types change [INFO] [stderr] --> examples/sensors.rs:221:25 [INFO] [stderr] | [INFO] [stderr] 221 | z: (z as f32 / 1023.0) * (ACCEL_RANGE * 2.0), [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(z)` [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 i16 to f32 may become silently lossy if types change [INFO] [stderr] --> examples/sensors.rs:292:24 [INFO] [stderr] | [INFO] [stderr] 292 | let adj = (rawval as f32 / 2_f32.powi(fractional_bits + extrabits)) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(rawval)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> examples/sensors.rs:344:18 [INFO] [stderr] | [INFO] [stderr] 344 | (self.tadc as f32 - 498.0) / -5.35 + 25.0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(self.tadc)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> examples/sensors.rs:352:47 [INFO] [stderr] | [INFO] [stderr] 352 | + (coeff.b1 + coeff.c12 * self.tadc as f32) * self.padc as f32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(self.tadc)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> examples/sensors.rs:352:67 [INFO] [stderr] | [INFO] [stderr] 352 | + (coeff.b1 + coeff.c12 * self.tadc as f32) * self.padc as f32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(self.padc)` [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 u16 to f32 may become silently lossy if types change [INFO] [stderr] --> examples/sensors.rs:353:35 [INFO] [stderr] | [INFO] [stderr] 353 | + (coeff.b2 * self.tadc as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f32::from(self.tadc)` [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: identical conversion [INFO] [stderr] --> examples/sensors.rs:482:30 [INFO] [stderr] | [INFO] [stderr] 482 | .and_then(|d| d.argv(args().into_iter()).parse()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `args()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> examples/nunchuck.rs:221:30 [INFO] [stderr] | [INFO] [stderr] 221 | .and_then(|d| d.argv(args().into_iter()).parse()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `args()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.67s [INFO] running `"docker" "inspect" "455040b94ca4a2a5b00292ea259295a56483457762ebf250cfd12b21927ea3bb"` [INFO] running `"docker" "rm" "-f" "455040b94ca4a2a5b00292ea259295a56483457762ebf250cfd12b21927ea3bb"` [INFO] [stdout] 455040b94ca4a2a5b00292ea259295a56483457762ebf250cfd12b21927ea3bb