[INFO] crate dsdl_parser 0.1.3 is already in cache [INFO] extracting crate dsdl_parser 0.1.3 into work/ex/clippy-test-run/sources/stable/reg/dsdl_parser/0.1.3 [INFO] extracting crate dsdl_parser 0.1.3 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dsdl_parser/0.1.3 [INFO] validating manifest of dsdl_parser-0.1.3 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 dsdl_parser-0.1.3 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 dsdl_parser-0.1.3 [INFO] finished frobbing dsdl_parser-0.1.3 [INFO] frobbed toml for dsdl_parser-0.1.3 written to work/ex/clippy-test-run/sources/stable/reg/dsdl_parser/0.1.3/Cargo.toml [INFO] started frobbing dsdl_parser-0.1.3 [INFO] finished frobbing dsdl_parser-0.1.3 [INFO] frobbed toml for dsdl_parser-0.1.3 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dsdl_parser/0.1.3/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 dsdl_parser-0.1.3 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/dsdl_parser/0.1.3:/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] 3d395bff91448ac3da3a015fab86acb51f93d55aae8fc074099660e7f4ad2f60 [INFO] running `"docker" "start" "-a" "3d395bff91448ac3da3a015fab86acb51f93d55aae8fc074099660e7f4ad2f60"` [INFO] [stderr] Checking dsdl_parser v0.1.3 (/opt/crater/workdir) [INFO] [stderr] Checking test-logger v0.1.0 [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/display.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | write!(f, "{}\n", request)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/normalize.rs:36:46 [INFO] [stderr] | [INFO] [stderr] 36 | NormalizedFile(File{name: self.name, definition: definition}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `definition` [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/normalize.rs:102:25 [INFO] [stderr] | [INFO] [stderr] 102 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/normalize.rs:109:25 [INFO] [stderr] | [INFO] [stderr] 109 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/normalize.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | cast_mode: cast_mode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cast_mode` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:131:64 [INFO] [stderr] | [INFO] [stderr] 131 | files.insert(qualified_name, File{name: file_name, definition: definition}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `definition` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:317:21 [INFO] [stderr] | [INFO] [stderr] 317 | Ok(FileName{id: id, namespace: namespace, name: name, version: version}) [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:317:29 [INFO] [stderr] | [INFO] [stderr] 317 | Ok(FileName{id: id, namespace: namespace, name: name, version: version}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `namespace` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:317:51 [INFO] [stderr] | [INFO] [stderr] 317 | Ok(FileName{id: id, namespace: namespace, name: name, version: version}) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:317:63 [INFO] [stderr] | [INFO] [stderr] 317 | Ok(FileName{id: id, namespace: namespace, name: name, version: version}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:458:17 [INFO] [stderr] | [INFO] [stderr] 458 | namespace: namespace, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `namespace` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:459:17 [INFO] [stderr] | [INFO] [stderr] 459 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/crc.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | const MASK: u64 = 0xFFFFFFFFFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xFFFF_FFFF_FFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/crc.rs:7:23 [INFO] [stderr] | [INFO] [stderr] 7 | const POLY: u64 = 0x42F0E1EBA9EA3693; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x42F0_E1EB_A9EA_3693` [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: operator precedence can trip the unwary [INFO] [stderr] --> src/crc.rs:35:25 [INFO] [stderr] | [INFO] [stderr] 35 | self.add(&[(signature >> 8*byte) as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `signature >> (8*byte)` [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/crc.rs:38:25 [INFO] [stderr] | [INFO] [stderr] 38 | self.add(&[(original_hash_value >> 8*byte) as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `original_hash_value >> (8*byte)` [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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/display.rs:189:13 [INFO] [stderr] | [INFO] [stderr] 189 | write!(f, "{}\n", request)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/normalize.rs:36:46 [INFO] [stderr] | [INFO] [stderr] 36 | NormalizedFile(File{name: self.name, definition: definition}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `definition` [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/normalize.rs:102:25 [INFO] [stderr] | [INFO] [stderr] 102 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/normalize.rs:109:25 [INFO] [stderr] | [INFO] [stderr] 109 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/normalize.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | cast_mode: cast_mode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cast_mode` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:131:64 [INFO] [stderr] | [INFO] [stderr] 131 | files.insert(qualified_name, File{name: file_name, definition: definition}); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `definition` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:317:21 [INFO] [stderr] | [INFO] [stderr] 317 | Ok(FileName{id: id, namespace: namespace, name: name, version: version}) [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:317:29 [INFO] [stderr] | [INFO] [stderr] 317 | Ok(FileName{id: id, namespace: namespace, name: name, version: version}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `namespace` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:317:51 [INFO] [stderr] | [INFO] [stderr] 317 | Ok(FileName{id: id, namespace: namespace, name: name, version: version}) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:317:63 [INFO] [stderr] | [INFO] [stderr] 317 | Ok(FileName{id: id, namespace: namespace, name: name, version: version}) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:458:17 [INFO] [stderr] | [INFO] [stderr] 458 | namespace: namespace, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `namespace` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:459:17 [INFO] [stderr] | [INFO] [stderr] 459 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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: length comparison to zero [INFO] [stderr] --> src/parse.rs:17:79 [INFO] [stderr] | [INFO] [stderr] 17 | named!(pub id, map!(map_res!(verify!(take_while!(is_digit), |x:&[u8]| x.len() > 0), str::from_utf8), String::from)); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: length comparison to one [INFO] [stderr] --> src/parse.rs:55:62 [INFO] [stderr] | [INFO] [stderr] 55 | verify!(take_while!(is_allowed_in_field_name), |x:&[u8]| x.len() >= 1 && is_lowercase_char(x[0])), [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/parse.rs:60:62 [INFO] [stderr] | [INFO] [stderr] 60 | verify!(take_while!(is_allowed_in_const_name), |x:&[u8]| x.len() >= 1 && is_uppercase_char(x[0])), [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:128:54 [INFO] [stderr] | [INFO] [stderr] 128 | _eol: verify!(not_line_ending, |x:&[u8]| x.len() == 0) >> [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:134:54 [INFO] [stderr] | [INFO] [stderr] 134 | _eol: verify!(not_line_ending, |x:&[u8]| x.len() == 0) >> [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:139:54 [INFO] [stderr] | [INFO] [stderr] 139 | _eol: verify!(not_line_ending, |x:&[u8]| x.len() == 0) >> [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:143:50 [INFO] [stderr] | [INFO] [stderr] 143 | _eol: verify!(not_line_ending, |x:&[u8]| x.len() == 0) >> [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/crc.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | const MASK: u64 = 0xFFFFFFFFFFFFFFFF; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xFFFF_FFFF_FFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/crc.rs:7:23 [INFO] [stderr] | [INFO] [stderr] 7 | const POLY: u64 = 0x42F0E1EBA9EA3693; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x42F0_E1EB_A9EA_3693` [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: operator precedence can trip the unwary [INFO] [stderr] --> src/crc.rs:35:25 [INFO] [stderr] | [INFO] [stderr] 35 | self.add(&[(signature >> 8*byte) as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `signature >> (8*byte)` [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/crc.rs:38:25 [INFO] [stderr] | [INFO] [stderr] 38 | self.add(&[(original_hash_value >> 8*byte) as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `original_hash_value >> (8*byte)` [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: long literal lacking separators [INFO] [stderr] --> src/crc.rs:55:34 [INFO] [stderr] | [INFO] [stderr] 55 | assert_eq!(crc1.value(), 0x62ec59e3f1a4f00a); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x62ec_59e3_f1a4_f00a` [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/crc.rs:60:34 [INFO] [stderr] | [INFO] [stderr] 60 | assert_eq!(crc2.value(), 0x62EC59E3F1A4F00A); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x62EC_59E3_F1A4_F00A` [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/crc.rs:72:33 [INFO] [stderr] | [INFO] [stderr] 72 | assert_eq!(crc.value(), 0x0f0868d0c1a7c6f1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0f08_68d0_c1a7_c6f1` [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: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/display.rs:76:51 [INFO] [stderr] | [INFO] [stderr] 76 | Const::Bool(ref x) => write!(f, "{}", match *x {true => "true", false => "false"}), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using an if/else expression: `if *x { "true" } else { "false" }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/display.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | / match self.cast_mode { [INFO] [stderr] 86 | | Some(ref x) => write!(f, "{} ", x)?, [INFO] [stderr] 87 | | None => () [INFO] [stderr] 88 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Some(ref x) = self.cast_mode { write!(f, "{} ", x)? }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/display.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | / match self.cast_mode { [INFO] [stderr] 102 | | Some(ref x) => write!(f, "{} ", x)?, [INFO] [stderr] 103 | | None => () [INFO] [stderr] 104 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Some(ref x) = self.cast_mode { write!(f, "{} ", x)? }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/normalize.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / pub fn as_file<'a>(&'a self) -> &'a File { [INFO] [stderr] 15 | | &self.0 [INFO] [stderr] 16 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/normalize.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | / match line.normalize(file_name) { [INFO] [stderr] 60 | | Some(x) => normalized_lines.push(x), [INFO] [stderr] 61 | | None => (), [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(x) = line.normalize(file_name) { normalized_lines.push(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/crc.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | *crc = *crc << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `*crc <<= 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/crc.rs:42:18 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn value(&self) -> u64 { [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: identical conversion [INFO] [stderr] --> src/lib.rs:199:61 [INFO] [stderr] | [INFO] [stderr] 199 | => crc.extend(self.data_type_signature((String::from(current_namespace.clone()) + "." + name.as_ref()).as_str()).unwrap()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `current_namespace.clone()` [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: redundant closure found [INFO] [stderr] --> src/lib.rs:245:43 [INFO] [stderr] | [INFO] [stderr] 245 | self.namespace.split('.').map(|x| String::from(x)).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [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/lib.rs:269:44 [INFO] [stderr] | [INFO] [stderr] 269 | self.namespace.rsplit('.').map(|x| String::from(x)).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [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: this loop could be written as a `for` loop [INFO] [stderr] --> src/lib.rs:313:42 [INFO] [stderr] | [INFO] [stderr] 313 | while let Some(namespace_part) = split.next() { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `for namespace_part in split { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:1009:20 [INFO] [stderr] | [INFO] [stderr] 1009 | pub fn is_void(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:17:79 [INFO] [stderr] | [INFO] [stderr] 17 | named!(pub id, map!(map_res!(verify!(take_while!(is_digit), |x:&[u8]| x.len() > 0), str::from_utf8), String::from)); [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: length comparison to one [INFO] [stderr] --> src/parse.rs:55:62 [INFO] [stderr] | [INFO] [stderr] 55 | verify!(take_while!(is_allowed_in_field_name), |x:&[u8]| x.len() >= 1 && is_lowercase_char(x[0])), [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/parse.rs:60:62 [INFO] [stderr] | [INFO] [stderr] 60 | verify!(take_while!(is_allowed_in_const_name), |x:&[u8]| x.len() >= 1 && is_uppercase_char(x[0])), [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:128:54 [INFO] [stderr] | [INFO] [stderr] 128 | _eol: verify!(not_line_ending, |x:&[u8]| x.len() == 0) >> [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:134:54 [INFO] [stderr] | [INFO] [stderr] 134 | _eol: verify!(not_line_ending, |x:&[u8]| x.len() == 0) >> [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:139:54 [INFO] [stderr] | [INFO] [stderr] 139 | _eol: verify!(not_line_ending, |x:&[u8]| x.len() == 0) >> [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parse.rs:143:50 [INFO] [stderr] | [INFO] [stderr] 143 | _eol: verify!(not_line_ending, |x:&[u8]| x.len() == 0) >> [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/display.rs:76:51 [INFO] [stderr] | [INFO] [stderr] 76 | Const::Bool(ref x) => write!(f, "{}", match *x {true => "true", false => "false"}), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using an if/else expression: `if *x { "true" } else { "false" }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/display.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | / match self.cast_mode { [INFO] [stderr] 86 | | Some(ref x) => write!(f, "{} ", x)?, [INFO] [stderr] 87 | | None => () [INFO] [stderr] 88 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Some(ref x) = self.cast_mode { write!(f, "{} ", x)? }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/display.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | / match self.cast_mode { [INFO] [stderr] 102 | | Some(ref x) => write!(f, "{} ", x)?, [INFO] [stderr] 103 | | None => () [INFO] [stderr] 104 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Some(ref x) = self.cast_mode { write!(f, "{} ", x)? }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/normalize.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / pub fn as_file<'a>(&'a self) -> &'a File { [INFO] [stderr] 15 | | &self.0 [INFO] [stderr] 16 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/normalize.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | / match line.normalize(file_name) { [INFO] [stderr] 60 | | Some(x) => normalized_lines.push(x), [INFO] [stderr] 61 | | None => (), [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(x) = line.normalize(file_name) { normalized_lines.push(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/crc.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | *crc = *crc << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `*crc <<= 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/crc.rs:42:18 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn value(&self) -> u64 { [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: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/crc.rs:59:18 [INFO] [stderr] | [INFO] [stderr] 59 | crc2.add("456789".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"456789"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/lib.rs:199:61 [INFO] [stderr] | [INFO] [stderr] 199 | => crc.extend(self.data_type_signature((String::from(current_namespace.clone()) + "." + name.as_ref()).as_str()).unwrap()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `current_namespace.clone()` [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: redundant closure found [INFO] [stderr] --> src/lib.rs:245:43 [INFO] [stderr] | [INFO] [stderr] 245 | self.namespace.split('.').map(|x| String::from(x)).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [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/lib.rs:269:44 [INFO] [stderr] | [INFO] [stderr] 269 | self.namespace.rsplit('.').map(|x| String::from(x)).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [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: this loop could be written as a `for` loop [INFO] [stderr] --> src/lib.rs:313:42 [INFO] [stderr] | [INFO] [stderr] 313 | while let Some(namespace_part) = split.next() { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `for namespace_part in split { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> tests/dsdl.rs:96:107 [INFO] [stderr] | [INFO] [stderr] 96 | assert_eq!(dsdl.get_file("uavcan.protocol.NodeStatus").unwrap().clone().normalize().dsdl_signature(), 0x0f0868d0c1a7c6f1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0f08_68d0_c1a7_c6f1` [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] --> tests/dsdl.rs:97:115 [INFO] [stderr] | [INFO] [stderr] 97 | assert_eq!(dsdl.get_file("uavcan.protocol.AccessCommandShell").unwrap().clone().normalize().dsdl_signature(), 0x59276b5921c9246e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x5927_6b59_21c9_246e` [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] --> tests/dsdl.rs:98:114 [INFO] [stderr] | [INFO] [stderr] 98 | assert_eq!(dsdl.get_file("uavcan.equipment.actuator.Command").unwrap().clone().normalize().dsdl_signature(), 0x8d9a6a920c1d616c); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x8d9a_6a92_0c1d_616c` [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] --> tests/dsdl.rs:99:113 [INFO] [stderr] | [INFO] [stderr] 99 | assert_eq!(dsdl.get_file("uavcan.equipment.actuator.Status").unwrap().clone().normalize().dsdl_signature(), 0x5e9bba44faf1ea04); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x5e9b_ba44_faf1_ea04` [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] --> tests/dsdl.rs:108:81 [INFO] [stderr] | [INFO] [stderr] 108 | assert_eq!(dsdl.data_type_signature("uavcan.protocol.NodeStatus").unwrap(), 0x0f0868d0c1a7c6f1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0f08_68d0_c1a7_c6f1` [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] --> tests/dsdl.rs:109:84 [INFO] [stderr] | [INFO] [stderr] 109 | assert_eq!(dsdl.data_type_signature("uavcan.protocol.CANIfaceStats").unwrap(), 0x13b106f0c44ca350); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x13b1_06f0_c44c_a350` [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] --> tests/dsdl.rs:111:88 [INFO] [stderr] | [INFO] [stderr] 111 | assert_eq!(dsdl.data_type_signature("uavcan.protocol.GetTransportStats").unwrap(), 0xbe6f76a7ec312b04); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xbe6f_76a7_ec31_2b04` [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] --> tests/dsdl.rs:113:82 [INFO] [stderr] | [INFO] [stderr] 113 | assert_eq!(dsdl.data_type_signature("uavcan.protocol.GetNodeInfo").unwrap(), 0xee468a8121c46a9e); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xee46_8a81_21c4_6a9e` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:1009:20 [INFO] [stderr] | [INFO] [stderr] 1009 | pub fn is_void(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:1089:20 [INFO] [stderr] | [INFO] [stderr] 1089 | assert_eq!(dsdl.files.get(&String::from("NodeStatus")).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&dsdl.files[&String::from("NodeStatus")]` [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: manual implementation of an assign operation [INFO] [stderr] --> tests/dsdl.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | filename = filename + format!(".{}", version).as_str(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `filename += format!(".{}", version).as_str()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.84s [INFO] running `"docker" "inspect" "3d395bff91448ac3da3a015fab86acb51f93d55aae8fc074099660e7f4ad2f60"` [INFO] running `"docker" "rm" "-f" "3d395bff91448ac3da3a015fab86acb51f93d55aae8fc074099660e7f4ad2f60"` [INFO] [stdout] 3d395bff91448ac3da3a015fab86acb51f93d55aae8fc074099660e7f4ad2f60