[INFO] crate rumble 0.2.1 is already in cache [INFO] extracting crate rumble 0.2.1 into work/ex/clippy-test-run/sources/stable/reg/rumble/0.2.1 [INFO] extracting crate rumble 0.2.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rumble/0.2.1 [INFO] validating manifest of rumble-0.2.1 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of rumble-0.2.1 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing rumble-0.2.1 [INFO] finished frobbing rumble-0.2.1 [INFO] frobbed toml for rumble-0.2.1 written to work/ex/clippy-test-run/sources/stable/reg/rumble/0.2.1/Cargo.toml [INFO] started frobbing rumble-0.2.1 [INFO] finished frobbing rumble-0.2.1 [INFO] frobbed toml for rumble-0.2.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rumble/0.2.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting rumble-0.2.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/rumble/0.2.1:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 5c78de528e004f758023430e44c31770f559ac973cefeffccc98606314efbd66 [INFO] running `"docker" "start" "-a" "5c78de528e004f758023430e44c31770f559ac973cefeffccc98606314efbd66"` [INFO] [stderr] Checking nix v0.9.0 [INFO] [stderr] Checking nom v3.2.1 [INFO] [stderr] Checking rumble v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:257:21 [INFO] [stderr] | [INFO] [stderr] 257 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:260:21 [INFO] [stderr] | [INFO] [stderr] 260 | return Err(Error::Other("Failed to set notify".to_string())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::Other("Failed to set notify".to_string()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:265:17 [INFO] [stderr] | [INFO] [stderr] 265 | return Err(Error::Other("failed to get characteristic state".to_string())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::Other("failed to get characteristic state".to_string()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:241:24 [INFO] [stderr] | [INFO] [stderr] 241 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 242 | | if use_notify { [INFO] [stderr] 243 | | value &= 0xFFFE; [INFO] [stderr] 244 | | } else if use_indicate { [INFO] [stderr] 245 | | value &= 0xFFFD; [INFO] [stderr] 246 | | } [INFO] [stderr] 247 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 241 | } else if use_notify { [INFO] [stderr] 242 | value &= 0xFFFE; [INFO] [stderr] 243 | } else if use_indicate { [INFO] [stderr] 244 | value &= 0xFFFD; [INFO] [stderr] 245 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:312:9 [INFO] [stderr] | [INFO] [stderr] 312 | return l.is_ok() && l.unwrap().is_some(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `l.is_ok() && l.unwrap().is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/adapter/mod.rs:446:36 [INFO] [stderr] | [INFO] [stderr] 446 | static HCI_GET_DEV_MAGIC: usize = (2u32 << 0i32 + 8i32 + 8i32 + 14i32 | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `2u32 << (0i32 + 8i32 + 8i32 + 14i32)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/adapter/mod.rs:447:6 [INFO] [stderr] | [INFO] [stderr] 447 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (211i32 << 0i32) as (u32)) as (usize) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `b'H' as (i32) << (0i32 + 8i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/adapter/mod.rs:448:5 [INFO] [stderr] | [INFO] [stderr] 448 | 4 /* (sizeof(i32)) */ << 0i32 + 8i32 + 8i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `4 << (0i32 + 8i32 + 8i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `Pkt` [INFO] [stderr] --> src/bluez/protocol/hci.rs:344:1 [INFO] [stderr] | [INFO] [stderr] 344 | / enum_from_primitive! { [INFO] [stderr] 345 | | #[derive(Debug, PartialEq)] [INFO] [stderr] 346 | | #[repr(u8)] [INFO] [stderr] 347 | | enum EventType { [INFO] [stderr] ... | [INFO] [stderr] 351 | | } [INFO] [stderr] 352 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the postfixes 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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/constants.rs:87:45 [INFO] [stderr] | [INFO] [stderr] 87 | pub static HCI_GET_DEV_LIST_MAGIC: usize = (2u32 << 0i32 + 8i32 + 8i32 + 14i32 | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `2u32 << (0i32 + 8i32 + 8i32 + 14i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/constants.rs:88:6 [INFO] [stderr] | [INFO] [stderr] 88 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (210i32 << 0i32) as (u32)) as [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `b'H' as (i32) << (0i32 + 8i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/constants.rs:89:15 [INFO] [stderr] | [INFO] [stderr] 89 | (usize) | 4 /* (sizeof(i32)) */ << 0i32 + 8i32 + 8i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `4 << (0i32 + 8i32 + 8i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:257:21 [INFO] [stderr] | [INFO] [stderr] 257 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:260:21 [INFO] [stderr] | [INFO] [stderr] 260 | return Err(Error::Other("Failed to set notify".to_string())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::Other("Failed to set notify".to_string()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:265:17 [INFO] [stderr] | [INFO] [stderr] 265 | return Err(Error::Other("failed to get characteristic state".to_string())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::Other("failed to get characteristic state".to_string()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:241:24 [INFO] [stderr] | [INFO] [stderr] 241 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 242 | | if use_notify { [INFO] [stderr] 243 | | value &= 0xFFFE; [INFO] [stderr] 244 | | } else if use_indicate { [INFO] [stderr] 245 | | value &= 0xFFFD; [INFO] [stderr] 246 | | } [INFO] [stderr] 247 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 241 | } else if use_notify { [INFO] [stderr] 242 | value &= 0xFFFE; [INFO] [stderr] 243 | } else if use_indicate { [INFO] [stderr] 244 | value &= 0xFFFD; [INFO] [stderr] 245 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:312:9 [INFO] [stderr] | [INFO] [stderr] 312 | return l.is_ok() && l.unwrap().is_some(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `l.is_ok() && l.unwrap().is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/adapter/mod.rs:446:36 [INFO] [stderr] | [INFO] [stderr] 446 | static HCI_GET_DEV_MAGIC: usize = (2u32 << 0i32 + 8i32 + 8i32 + 14i32 | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `2u32 << (0i32 + 8i32 + 8i32 + 14i32)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/adapter/mod.rs:447:6 [INFO] [stderr] | [INFO] [stderr] 447 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (211i32 << 0i32) as (u32)) as (usize) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `b'H' as (i32) << (0i32 + 8i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/adapter/mod.rs:448:5 [INFO] [stderr] | [INFO] [stderr] 448 | 4 /* (sizeof(i32)) */ << 0i32 + 8i32 + 8i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `4 << (0i32 + 8i32 + 8i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `Pkt` [INFO] [stderr] --> src/bluez/protocol/hci.rs:344:1 [INFO] [stderr] | [INFO] [stderr] 344 | / enum_from_primitive! { [INFO] [stderr] 345 | | #[derive(Debug, PartialEq)] [INFO] [stderr] 346 | | #[repr(u8)] [INFO] [stderr] 347 | | enum EventType { [INFO] [stderr] ... | [INFO] [stderr] 351 | | } [INFO] [stderr] 352 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the postfixes 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] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/constants.rs:87:45 [INFO] [stderr] | [INFO] [stderr] 87 | pub static HCI_GET_DEV_LIST_MAGIC: usize = (2u32 << 0i32 + 8i32 + 8i32 + 14i32 | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `2u32 << (0i32 + 8i32 + 8i32 + 14i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/constants.rs:88:6 [INFO] [stderr] | [INFO] [stderr] 88 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (210i32 << 0i32) as (u32)) as [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `b'H' as (i32) << (0i32 + 8i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/bluez/constants.rs:89:15 [INFO] [stderr] | [INFO] [stderr] 89 | (usize) | 4 /* (sizeof(i32)) */ << 0i32 + 8i32 + 8i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `4 << (0i32 + 8i32 + 8i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut bluez::manager::HCIDevListReq`) [INFO] [stderr] --> src/bluez/manager/mod.rs:67:38 [INFO] [stderr] | [INFO] [stderr] 67 | let dl: *mut HCIDevListReq = buf.as_mut_ptr() as (*mut HCIDevListReq); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bluez/manager/mod.rs:95:48 [INFO] [stderr] | [INFO] [stderr] 95 | unsafe { HciIoctls::hci_dev_down(*ctl, adapter.dev_id as i32)? }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(adapter.dev_id)` [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 u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bluez/manager/mod.rs:103:41 [INFO] [stderr] | [INFO] [stderr] 103 | HciIoctls::hci_dev_up(*ctl, adapter.dev_id as i32)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(adapter.dev_id)` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/bluez/adapter/acl_stream.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | / match self { [INFO] [stderr] 39 | | &Command(ref data, ref _cb) => write!(f, "Command({:?})", data), [INFO] [stderr] 40 | | &Request(ref data, ref cb) => write!(f, "Request({:?}, cb: {})", data, cb.is_some()), [INFO] [stderr] 41 | | &Data(ref data) => write!(f, "Data({:?})", data), [INFO] [stderr] 42 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 38 | match *self { [INFO] [stderr] 39 | Command(ref data, ref _cb) => write!(f, "Command({:?})", data), [INFO] [stderr] 40 | Request(ref data, ref cb) => write!(f, "Request({:?}, cb: {})", data, cb.is_some()), [INFO] [stderr] 41 | Data(ref data) => write!(f, "Data({:?})", data), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bluez/adapter/acl_stream.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | / if let &Some(ref f) = handler { [INFO] [stderr] 133 | | f(result); [INFO] [stderr] 134 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 132 | if let Some(ref f) = *handler { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bluez/adapter/acl_stream.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | / if let &Some(ref f) = handler { [INFO] [stderr] 141 | | f(result); [INFO] [stderr] 142 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 140 | if let Some(ref f) = *handler { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:86:14 [INFO] [stderr] | [INFO] [stderr] 86 | .unwrap_or("(unknown)".to_string()), connected) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "(unknown)".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:137:21 [INFO] [stderr] | [INFO] [stderr] 137 | / match datum { [INFO] [stderr] 138 | | &LocalName(ref name) => { [INFO] [stderr] 139 | | properties.local_name = Some(name.clone()); [INFO] [stderr] 140 | | } [INFO] [stderr] ... | [INFO] [stderr] 149 | | } [INFO] [stderr] 150 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 137 | match *datum { [INFO] [stderr] 138 | LocalName(ref name) => { [INFO] [stderr] 139 | properties.local_name = Some(name.clone()); [INFO] [stderr] 140 | } [INFO] [stderr] 141 | TxPowerLevel(ref power) => { [INFO] [stderr] 142 | properties.tx_power_level = Some(power.clone()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:142:62 [INFO] [stderr] | [INFO] [stderr] 142 | properties.tx_power_level = Some(power.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try dereferencing it: `*power` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:157:57 [INFO] [stderr] | [INFO] [stderr] 157 | self.connection_tx.lock().unwrap().send(info.handle.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `info.handle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:160:30 [INFO] [stderr] | [INFO] [stderr] 160 | let handle = data.handle.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `data.handle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:255:20 [INFO] [stderr] | [INFO] [stderr] 255 | if data.len() > 0 && data[0] == ATT_OP_WRITE_RESP { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:297:9 [INFO] [stderr] | [INFO] [stderr] 297 | self.address.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:335:29 [INFO] [stderr] | [INFO] [stderr] 335 | l2_bdaddr_type: self.c_adapter.adapter.typ.num() as u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.c_adapter.adapter.typ.num())` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:393:44 [INFO] [stderr] | [INFO] [stderr] 393 | return Err(Error::TimedOut(timeout.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timeout` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: called `.get_mut().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:471:15 [INFO] [stderr] | [INFO] [stderr] 471 | (*results.get_mut(i).unwrap()).end_handle = [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `results[i]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut bluez::manager::HCIDevListReq`) [INFO] [stderr] --> src/bluez/manager/mod.rs:67:38 [INFO] [stderr] | [INFO] [stderr] 67 | let dl: *mut HCIDevListReq = buf.as_mut_ptr() as (*mut HCIDevListReq); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bluez/manager/mod.rs:95:48 [INFO] [stderr] | [INFO] [stderr] 95 | unsafe { HciIoctls::hci_dev_down(*ctl, adapter.dev_id as i32)? }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(adapter.dev_id)` [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 u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/bluez/manager/mod.rs:103:41 [INFO] [stderr] | [INFO] [stderr] 103 | HciIoctls::hci_dev_up(*ctl, adapter.dev_id as i32)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(adapter.dev_id)` [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/bluez/adapter/mod.rs:134:12 [INFO] [stderr] | [INFO] [stderr] 134 | fn num(&self) -> u8 { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bluez/adapter/acl_stream.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | / match self { [INFO] [stderr] 39 | | &Command(ref data, ref _cb) => write!(f, "Command({:?})", data), [INFO] [stderr] 40 | | &Request(ref data, ref cb) => write!(f, "Request({:?}, cb: {})", data, cb.is_some()), [INFO] [stderr] 41 | | &Data(ref data) => write!(f, "Data({:?})", data), [INFO] [stderr] 42 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 38 | match *self { [INFO] [stderr] 39 | Command(ref data, ref _cb) => write!(f, "Command({:?})", data), [INFO] [stderr] 40 | Request(ref data, ref cb) => write!(f, "Request({:?}, cb: {})", data, cb.is_some()), [INFO] [stderr] 41 | Data(ref data) => write!(f, "Data({:?})", data), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bluez/adapter/acl_stream.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | / if let &Some(ref f) = handler { [INFO] [stderr] 133 | | f(result); [INFO] [stderr] 134 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 132 | if let Some(ref f) = *handler { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bluez/adapter/acl_stream.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | / if let &Some(ref f) = handler { [INFO] [stderr] 141 | | f(result); [INFO] [stderr] 142 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 140 | if let Some(ref f) = *handler { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:285:21 [INFO] [stderr] | [INFO] [stderr] 285 | handler(event.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `event` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:295:31 [INFO] [stderr] | [INFO] [stderr] 295 | let address = info.bdaddr.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `info.bdaddr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:310:62 [INFO] [stderr] | [INFO] [stderr] 310 | self.emit(CentralEvent::DeviceDiscovered(address.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:312:59 [INFO] [stderr] | [INFO] [stderr] 312 | self.emit(CentralEvent::DeviceUpdated(address.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:317:31 [INFO] [stderr] | [INFO] [stderr] 317 | let address = info.bdaddr.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `info.bdaddr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:318:30 [INFO] [stderr] | [INFO] [stderr] 318 | let handle = info.handle.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `info.handle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bluez/adapter/mod.rs:413:9 [INFO] [stderr] | [INFO] [stderr] 413 | l.values().map(|p| p.clone()).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `l.values().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bluez/adapter/mod.rs:418:9 [INFO] [stderr] | [INFO] [stderr] 418 | l.get(&address).map(|p| p.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `l.get(&address).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/adapter/mod.rs:446:44 [INFO] [stderr] | [INFO] [stderr] 446 | static HCI_GET_DEV_MAGIC: usize = (2u32 << 0i32 + 8i32 + 8i32 + 14i32 | [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/adapter/mod.rs:447:23 [INFO] [stderr] | [INFO] [stderr] 447 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (211i32 << 0i32) as (u32)) as (usize) | [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `211i32` [INFO] [stderr] --> src/bluez/adapter/mod.rs:447:47 [INFO] [stderr] | [INFO] [stderr] 447 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (211i32 << 0i32) as (u32)) as (usize) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/adapter/mod.rs:448:30 [INFO] [stderr] | [INFO] [stderr] 448 | 4 /* (sizeof(i32)) */ << 0i32 + 8i32 + 8i32; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:459:19 [INFO] [stderr] | [INFO] [stderr] 459 | info: di.clone(), [INFO] [stderr] | ^^^^^^^^^^ help: try dereferencing it: `*di` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:86:14 [INFO] [stderr] | [INFO] [stderr] 86 | .unwrap_or("(unknown)".to_string()), connected) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "(unknown)".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:137:21 [INFO] [stderr] | [INFO] [stderr] 137 | / match datum { [INFO] [stderr] 138 | | &LocalName(ref name) => { [INFO] [stderr] 139 | | properties.local_name = Some(name.clone()); [INFO] [stderr] 140 | | } [INFO] [stderr] ... | [INFO] [stderr] 149 | | } [INFO] [stderr] 150 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 137 | match *datum { [INFO] [stderr] 138 | LocalName(ref name) => { [INFO] [stderr] 139 | properties.local_name = Some(name.clone()); [INFO] [stderr] 140 | } [INFO] [stderr] 141 | TxPowerLevel(ref power) => { [INFO] [stderr] 142 | properties.tx_power_level = Some(power.clone()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:142:62 [INFO] [stderr] | [INFO] [stderr] 142 | properties.tx_power_level = Some(power.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try dereferencing it: `*power` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:157:57 [INFO] [stderr] | [INFO] [stderr] 157 | self.connection_tx.lock().unwrap().send(info.handle.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `info.handle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:160:30 [INFO] [stderr] | [INFO] [stderr] 160 | let handle = data.handle.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `data.handle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:255:20 [INFO] [stderr] | [INFO] [stderr] 255 | if data.len() > 0 && data[0] == ATT_OP_WRITE_RESP { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:297:9 [INFO] [stderr] | [INFO] [stderr] 297 | self.address.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:335:29 [INFO] [stderr] | [INFO] [stderr] 335 | l2_bdaddr_type: self.c_adapter.adapter.typ.num() as u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.c_adapter.adapter.typ.num())` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:393:44 [INFO] [stderr] | [INFO] [stderr] 393 | return Err(Error::TimedOut(timeout.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timeout` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: called `.get_mut().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/bluez/adapter/peripheral.rs:471:15 [INFO] [stderr] | [INFO] [stderr] 471 | (*results.get_mut(i).unwrap()).end_handle = [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `results[i]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/bluez/adapter/mod.rs:134:12 [INFO] [stderr] | [INFO] [stderr] 134 | fn num(&self) -> u8 { [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:285:21 [INFO] [stderr] | [INFO] [stderr] 285 | handler(event.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `event` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:295:31 [INFO] [stderr] | [INFO] [stderr] 295 | let address = info.bdaddr.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `info.bdaddr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:310:62 [INFO] [stderr] | [INFO] [stderr] 310 | self.emit(CentralEvent::DeviceDiscovered(address.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:312:59 [INFO] [stderr] | [INFO] [stderr] 312 | self.emit(CentralEvent::DeviceUpdated(address.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `address` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:317:31 [INFO] [stderr] | [INFO] [stderr] 317 | let address = info.bdaddr.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `info.bdaddr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:318:30 [INFO] [stderr] | [INFO] [stderr] 318 | let handle = info.handle.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `info.handle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bluez/adapter/mod.rs:413:9 [INFO] [stderr] | [INFO] [stderr] 413 | l.values().map(|p| p.clone()).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `l.values().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/bluez/adapter/mod.rs:418:9 [INFO] [stderr] | [INFO] [stderr] 418 | l.get(&address).map(|p| p.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `l.get(&address).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/adapter/mod.rs:446:44 [INFO] [stderr] | [INFO] [stderr] 446 | static HCI_GET_DEV_MAGIC: usize = (2u32 << 0i32 + 8i32 + 8i32 + 14i32 | [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/adapter/mod.rs:447:23 [INFO] [stderr] | [INFO] [stderr] 447 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (211i32 << 0i32) as (u32)) as (usize) | [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `211i32` [INFO] [stderr] --> src/bluez/adapter/mod.rs:447:47 [INFO] [stderr] | [INFO] [stderr] 447 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (211i32 << 0i32) as (u32)) as (usize) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/adapter/mod.rs:448:30 [INFO] [stderr] | [INFO] [stderr] 448 | 4 /* (sizeof(i32)) */ << 0i32 + 8i32 + 8i32; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bluez/adapter/mod.rs:459:19 [INFO] [stderr] | [INFO] [stderr] 459 | info: di.clone(), [INFO] [stderr] | ^^^^^^^^^^ help: try dereferencing it: `*di` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/bluez/protocol/hci.rs:380:32 [INFO] [stderr] | [INFO] [stderr] 380 | Reset = OCF_RESET as u16 | (OGF_HOST_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_HOST_CTL)` [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/bluez/protocol/hci.rs:381:56 [INFO] [stderr] | [INFO] [stderr] 381 | ReadLEHostSupported = OCF_READ_LE_HOST_SUPPORTED | (OGF_HOST_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_HOST_CTL)` [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/bluez/protocol/hci.rs:382:58 [INFO] [stderr] | [INFO] [stderr] 382 | WriteLEHostSupported = OCF_WRITE_LE_HOST_SUPPORTED | (OGF_HOST_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_HOST_CTL)` [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/bluez/protocol/hci.rs:383:49 [INFO] [stderr] | [INFO] [stderr] 383 | ReadLocalVersion = OCF_READ_LOCAL_VERSION | (OGF_INFO_PARAM as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_INFO_PARAM)` [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/bluez/protocol/hci.rs:384:37 [INFO] [stderr] | [INFO] [stderr] 384 | ReadBDAddr = OCF_READ_BD_ADDR | (OGF_INFO_PARAM as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_INFO_PARAM)` [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/bluez/protocol/hci.rs:385:32 [INFO] [stderr] | [INFO] [stderr] 385 | ReadRSSI = OCF_READ_RSSI | (OGF_STATUS_PARAM as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_STATUS_PARAM)` [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/bluez/protocol/hci.rs:390:46 [INFO] [stderr] | [INFO] [stderr] 390 | LESetEventMask = OCF_LE_SET_EVENT_MASK | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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/bluez/protocol/hci.rs:391:56 [INFO] [stderr] | [INFO] [stderr] 391 | LESetScanParameters = OCF_LE_SET_SCAN_PARAMETERS | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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/bluez/protocol/hci.rs:392:49 [INFO] [stderr] | [INFO] [stderr] 392 | LESetScanEnabled = OCF_LE_SET_SCAN_ENABLE | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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/bluez/protocol/hci.rs:393:47 [INFO] [stderr] | [INFO] [stderr] 393 | LECreateConnection = OCF_LE_CREATE_CONN | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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/bluez/protocol/hci.rs:394:47 [INFO] [stderr] | [INFO] [stderr] 394 | LEConnectionUpdate = OCF_LE_CONN_UPDATE | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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/bluez/protocol/hci.rs:395:51 [INFO] [stderr] | [INFO] [stderr] 395 | LEStartEncryption = OCF_LE_START_ENCRYPTION | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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: the function has a cyclomatic complexity of 56 [INFO] [stderr] --> src/bluez/protocol/hci.rs:437:1 [INFO] [stderr] | [INFO] [stderr] 437 | / fn le_advertising_data(i: &[u8]) -> IResult<&[u8], Vec> { [INFO] [stderr] 438 | | use self::LEAdvertisingData::*; [INFO] [stderr] 439 | | let (i, len) = try_parse!(i, le_u8); [INFO] [stderr] 440 | | let (i, typ) = try_parse!(i, le_u8); [INFO] [stderr] ... | [INFO] [stderr] 507 | | IResult::Done(i, result) [INFO] [stderr] 508 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:449:47 [INFO] [stderr] | [INFO] [stderr] 449 | try_parse!(i, count!(map!(le_u16, |u| ServiceClassUUID16(u)), len / 2)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ServiceClassUUID16` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:453:17 [INFO] [stderr] | [INFO] [stderr] 453 | |b| ServiceClassUUID128(b)), len / 16)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ServiceClassUUID128` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:470:47 [INFO] [stderr] | [INFO] [stderr] 470 | try_parse!(i, count!(map!(le_u16, |u| SolicitationUUID16(u)), len / 2)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SolicitationUUID16` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:474:17 [INFO] [stderr] | [INFO] [stderr] 474 | |b| SolicitationUUID128(b)), len / 16)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SolicitationUUID128` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:496:17 [INFO] [stderr] | [INFO] [stderr] 496 | |b| SolicitationUUID32(b)), len / 4)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SolicitationUUID32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/bluez/protocol/hci.rs:380:32 [INFO] [stderr] | [INFO] [stderr] 380 | Reset = OCF_RESET as u16 | (OGF_HOST_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_HOST_CTL)` [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/bluez/protocol/hci.rs:381:56 [INFO] [stderr] | [INFO] [stderr] 381 | ReadLEHostSupported = OCF_READ_LE_HOST_SUPPORTED | (OGF_HOST_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_HOST_CTL)` [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/bluez/protocol/hci.rs:382:58 [INFO] [stderr] | [INFO] [stderr] 382 | WriteLEHostSupported = OCF_WRITE_LE_HOST_SUPPORTED | (OGF_HOST_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_HOST_CTL)` [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/bluez/protocol/hci.rs:383:49 [INFO] [stderr] | [INFO] [stderr] 383 | ReadLocalVersion = OCF_READ_LOCAL_VERSION | (OGF_INFO_PARAM as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_INFO_PARAM)` [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/bluez/protocol/hci.rs:384:37 [INFO] [stderr] | [INFO] [stderr] 384 | ReadBDAddr = OCF_READ_BD_ADDR | (OGF_INFO_PARAM as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_INFO_PARAM)` [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/bluez/protocol/hci.rs:385:32 [INFO] [stderr] | [INFO] [stderr] 385 | ReadRSSI = OCF_READ_RSSI | (OGF_STATUS_PARAM as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_STATUS_PARAM)` [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/bluez/protocol/hci.rs:390:46 [INFO] [stderr] | [INFO] [stderr] 390 | LESetEventMask = OCF_LE_SET_EVENT_MASK | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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/bluez/protocol/hci.rs:391:56 [INFO] [stderr] | [INFO] [stderr] 391 | LESetScanParameters = OCF_LE_SET_SCAN_PARAMETERS | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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/bluez/protocol/hci.rs:392:49 [INFO] [stderr] | [INFO] [stderr] 392 | LESetScanEnabled = OCF_LE_SET_SCAN_ENABLE | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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/bluez/protocol/hci.rs:393:47 [INFO] [stderr] | [INFO] [stderr] 393 | LECreateConnection = OCF_LE_CREATE_CONN | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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/bluez/protocol/hci.rs:394:47 [INFO] [stderr] | [INFO] [stderr] 394 | LEConnectionUpdate = OCF_LE_CONN_UPDATE | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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/bluez/protocol/hci.rs:395:51 [INFO] [stderr] | [INFO] [stderr] 395 | LEStartEncryption = OCF_LE_START_ENCRYPTION | (OGF_LE_CTL as u16) << 10, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(OGF_LE_CTL)` [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: the function has a cyclomatic complexity of 56 [INFO] [stderr] --> src/bluez/protocol/hci.rs:437:1 [INFO] [stderr] | [INFO] [stderr] 437 | / fn le_advertising_data(i: &[u8]) -> IResult<&[u8], Vec> { [INFO] [stderr] 438 | | use self::LEAdvertisingData::*; [INFO] [stderr] 439 | | let (i, len) = try_parse!(i, le_u8); [INFO] [stderr] 440 | | let (i, typ) = try_parse!(i, le_u8); [INFO] [stderr] ... | [INFO] [stderr] 507 | | IResult::Done(i, result) [INFO] [stderr] 508 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:586:53 [INFO] [stderr] | [INFO] [stderr] 586 | try_parse!(i, map!(le_advertising_info, |x| Message::LEAdvertisingReport(x))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Message::LEAdvertisingReport` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:589:50 [INFO] [stderr] | [INFO] [stderr] 589 | try_parse!(i, map!(le_conn_complete, |x| Message::LEConnComplete(x))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Message::LEConnComplete` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:449:47 [INFO] [stderr] | [INFO] [stderr] 449 | try_parse!(i, count!(map!(le_u16, |u| ServiceClassUUID16(u)), len / 2)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ServiceClassUUID16` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:453:17 [INFO] [stderr] | [INFO] [stderr] 453 | |b| ServiceClassUUID128(b)), len / 16)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ServiceClassUUID128` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/bluez/protocol/hci.rs:633:23 [INFO] [stderr] | [INFO] [stderr] 633 | data: i.clone().to_owned() [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 633 | data: &(*i).clone().to_owned() [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 633 | data: &[u8]::clone(i).to_owned() [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:470:47 [INFO] [stderr] | [INFO] [stderr] 470 | try_parse!(i, count!(map!(le_u16, |u| SolicitationUUID16(u)), len / 2)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SolicitationUUID16` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:474:17 [INFO] [stderr] | [INFO] [stderr] 474 | |b| SolicitationUUID128(b)), len / 16)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SolicitationUUID128` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:496:17 [INFO] [stderr] | [INFO] [stderr] 496 | |b| SolicitationUUID32(b)), len / 4)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SolicitationUUID32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/bluez/protocol/hci.rs:722:23 [INFO] [stderr] | [INFO] [stderr] 722 | data: i.clone().to_owned(), [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 722 | data: &(*i).clone().to_owned(), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 722 | data: &[u8]::clone(i).to_owned(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/att.rs:123:36 [INFO] [stderr] | [INFO] [stderr] 123 | try_parse!(i, map!(le_u16, |b| UUID::B16(b))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `UUID::B16` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/att.rs:125:44 [INFO] [stderr] | [INFO] [stderr] 125 | try_parse!(i, map!(parse_uuid_128, |b| UUID::B128(b))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `UUID::B128` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:586:53 [INFO] [stderr] | [INFO] [stderr] 586 | try_parse!(i, map!(le_advertising_info, |x| Message::LEAdvertisingReport(x))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Message::LEAdvertisingReport` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/hci.rs:589:50 [INFO] [stderr] | [INFO] [stderr] 589 | try_parse!(i, map!(le_conn_complete, |x| Message::LEConnComplete(x))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Message::LEConnComplete` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/att.rs:142:48 [INFO] [stderr] | [INFO] [stderr] 142 | try_parse!(i, map!(error_response, |r| Err(r))) [INFO] [stderr] | ^^^^^^^^^^ help: remove closure as shown: `Err` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/att.rs:148:79 [INFO] [stderr] | [INFO] [stderr] 148 | try_parse!(i, map!(count!(apply!(characteristic, b16_uuid), num), |r| Ok(r))) [INFO] [stderr] | ^^^^^^^^^ help: remove closure as shown: `Ok` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/constants.rs:87:53 [INFO] [stderr] | [INFO] [stderr] 87 | pub static HCI_GET_DEV_LIST_MAGIC: usize = (2u32 << 0i32 + 8i32 + 8i32 + 14i32 | [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/constants.rs:88:23 [INFO] [stderr] | [INFO] [stderr] 88 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (210i32 << 0i32) as (u32)) as [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `210i32` [INFO] [stderr] --> src/bluez/constants.rs:88:47 [INFO] [stderr] | [INFO] [stderr] 88 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (210i32 << 0i32) as (u32)) as [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/constants.rs:89:40 [INFO] [stderr] | [INFO] [stderr] 89 | (usize) | 4 /* (sizeof(i32)) */ << 0i32 + 8i32 + 8i32; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/bluez/protocol/hci.rs:633:23 [INFO] [stderr] | [INFO] [stderr] 633 | data: i.clone().to_owned() [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 633 | data: &(*i).clone().to_owned() [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 633 | data: &[u8]::clone(i).to_owned() [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/bluez/protocol/hci.rs:722:23 [INFO] [stderr] | [INFO] [stderr] 722 | data: i.clone().to_owned(), [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 722 | data: &(*i).clone().to_owned(), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 722 | data: &[u8]::clone(i).to_owned(), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/att.rs:123:36 [INFO] [stderr] | [INFO] [stderr] 123 | try_parse!(i, map!(le_u16, |b| UUID::B16(b))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove closure as shown: `UUID::B16` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/att.rs:125:44 [INFO] [stderr] | [INFO] [stderr] 125 | try_parse!(i, map!(parse_uuid_128, |b| UUID::B128(b))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `UUID::B128` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/att.rs:142:48 [INFO] [stderr] | [INFO] [stderr] 142 | try_parse!(i, map!(error_response, |r| Err(r))) [INFO] [stderr] | ^^^^^^^^^^ help: remove closure as shown: `Err` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/bluez/protocol/att.rs:148:79 [INFO] [stderr] | [INFO] [stderr] 148 | try_parse!(i, map!(count!(apply!(characteristic, b16_uuid), num), |r| Ok(r))) [INFO] [stderr] | ^^^^^^^^^ help: remove closure as shown: `Ok` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] error: Could not compile `rumble`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/constants.rs:87:53 [INFO] [stderr] | [INFO] [stderr] 87 | pub static HCI_GET_DEV_LIST_MAGIC: usize = (2u32 << 0i32 + 8i32 + 8i32 + 14i32 | [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/constants.rs:88:23 [INFO] [stderr] | [INFO] [stderr] 88 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (210i32 << 0i32) as (u32)) as [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `210i32` [INFO] [stderr] --> src/bluez/constants.rs:88:47 [INFO] [stderr] | [INFO] [stderr] 88 | (b'H' as (i32) << 0i32 + 8i32) as (u32) | (210i32 << 0i32) as (u32)) as [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `8i32` [INFO] [stderr] --> src/bluez/constants.rs:89:40 [INFO] [stderr] | [INFO] [stderr] 89 | (usize) | 4 /* (sizeof(i32)) */ << 0i32 + 8i32 + 8i32; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rumble`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "5c78de528e004f758023430e44c31770f559ac973cefeffccc98606314efbd66"` [INFO] running `"docker" "rm" "-f" "5c78de528e004f758023430e44c31770f559ac973cefeffccc98606314efbd66"` [INFO] [stdout] 5c78de528e004f758023430e44c31770f559ac973cefeffccc98606314efbd66