[INFO] crate fdt 0.0.1 is already in cache [INFO] extracting crate fdt 0.0.1 into work/ex/clippy-test-run/sources/stable/reg/fdt/0.0.1 [INFO] extracting crate fdt 0.0.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/fdt/0.0.1 [INFO] validating manifest of fdt-0.0.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 fdt-0.0.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 fdt-0.0.1 [INFO] finished frobbing fdt-0.0.1 [INFO] frobbed toml for fdt-0.0.1 written to work/ex/clippy-test-run/sources/stable/reg/fdt/0.0.1/Cargo.toml [INFO] started frobbing fdt-0.0.1 [INFO] finished frobbing fdt-0.0.1 [INFO] frobbed toml for fdt-0.0.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/fdt/0.0.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 fdt-0.0.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/fdt/0.0.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] 9f57e972d673d3848d638141cac397733897cf0683f200fd094733b963673b16 [INFO] running `"docker" "start" "-a" "9f57e972d673d3848d638141cac397733897cf0683f200fd094733b963673b16"` [INFO] [stderr] Checking memchr v1.0.2 [INFO] [stderr] Checking fdt v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/header.rs:15:11 [INFO] [stderr] | [INFO] [stderr] 15 | Header {raw: raw} [INFO] [stderr] | ^^^^^^^^ help: replace it with: `raw` [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/memory_reserve_map.rs:16:10 [INFO] [stderr] | [INFO] [stderr] 16 | Self { blob: blob } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `blob` [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/property.rs:88:15 [INFO] [stderr] | [INFO] [stderr] 88 | Properties {blob: blob} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `blob` [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/property.rs:140:26 [INFO] [stderr] | [INFO] [stderr] 140 | WithName { iter: self, 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/node.rs:203:4 [INFO] [stderr] | [INFO] [stderr] 203 | blob: blob, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `blob` [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/node.rs:262:4 [INFO] [stderr] | [INFO] [stderr] 262 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/node.rs:263:4 [INFO] [stderr] | [INFO] [stderr] 263 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/node.rs:468:26 [INFO] [stderr] | [INFO] [stderr] 468 | WithName { iter: self, 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/stringlist.rs:11:41 [INFO] [stderr] | [INFO] [stderr] 11 | str::from_utf8(data).map(|raw| Self { raw: raw }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `raw` [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/header.rs:15:11 [INFO] [stderr] | [INFO] [stderr] 15 | Header {raw: raw} [INFO] [stderr] | ^^^^^^^^ help: replace it with: `raw` [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/memory_reserve_map.rs:16:10 [INFO] [stderr] | [INFO] [stderr] 16 | Self { blob: blob } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `blob` [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/property.rs:88:15 [INFO] [stderr] | [INFO] [stderr] 88 | Properties {blob: blob} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `blob` [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/property.rs:140:26 [INFO] [stderr] | [INFO] [stderr] 140 | WithName { iter: self, 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/node.rs:203:4 [INFO] [stderr] | [INFO] [stderr] 203 | blob: blob, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `blob` [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/node.rs:262:4 [INFO] [stderr] | [INFO] [stderr] 262 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [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/node.rs:263:4 [INFO] [stderr] | [INFO] [stderr] 263 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/node.rs:468:26 [INFO] [stderr] | [INFO] [stderr] 468 | WithName { iter: self, 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/stringlist.rs:11:41 [INFO] [stderr] | [INFO] [stderr] 11 | str::from_utf8(data).map(|raw| Self { raw: raw }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `raw` [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/header.rs:7:24 [INFO] [stderr] | [INFO] [stderr] 7 | pub const MAGIC: u32 = 0xd00dfeed; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xd00d_feed` [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/blob.rs:17:29 [INFO] [stderr] | [INFO] [stderr] 17 | const FDT_BEGIN_NODE: u32 = 0x00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0001` [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/blob.rs:18:29 [INFO] [stderr] | [INFO] [stderr] 18 | const FDT_END_NODE: u32 = 0x00000002; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0002` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/blob.rs:19:25 [INFO] [stderr] | [INFO] [stderr] 19 | const FDT_PROP: u32 = 0x00000003; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0003` [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/blob.rs:20:24 [INFO] [stderr] | [INFO] [stderr] 20 | const FDT_NOP: u32 = 0x00000004; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0004` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/blob.rs:21:24 [INFO] [stderr] | [INFO] [stderr] 21 | const FDT_END: u32 = 0x00000009; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0009` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `PropertyValue` [INFO] [stderr] --> src/node.rs:2:56 [INFO] [stderr] | [INFO] [stderr] 2 | use property::{Property, Properties, PropertyIterator, PropertyValue, IsValue}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `property::Property` [INFO] [stderr] --> src/lib.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use property::Property; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/property.rs:68:32 [INFO] [stderr] | [INFO] [stderr] 68 | str::from_utf8(raw).map_err(|e| "Utf8 Error") [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `depth` [INFO] [stderr] --> src/node.rs:173:35 [INFO] [stderr] | [INFO] [stderr] 173 | pub fn supernode_at_depth(&self, depth: usize) -> Option> { [INFO] [stderr] | ^^^^^ help: consider using `_depth` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `last_comp_version` [INFO] [stderr] --> src/header.rs:42:2 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn last_comp_version(&self) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size_dt_strings` [INFO] [stderr] --> src/header.rs:54:2 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn size_dt_strings(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size_dt_struct` [INFO] [stderr] --> src/header.rs:62:2 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn size_dt_struct(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blob.rs:81:3 [INFO] [stderr] | [INFO] [stderr] 81 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 82 | | &Token::BeginNode => write!(f, "token FDT_BEGIN_NODE"), [INFO] [stderr] 83 | | &Token::EndNode => write!(f, "token FDT_END_NODE"), [INFO] [stderr] 84 | | &Token::Prop => write!(f, "token FDT_PROP"), [INFO] [stderr] 85 | | &Token::End => write!(f, "token FDT_END"), [INFO] [stderr] 86 | | &Token::Error(val) => write!(f, "{:x}", val), [INFO] [stderr] 87 | | } [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] 81 | match *self { [INFO] [stderr] 82 | Token::BeginNode => write!(f, "token FDT_BEGIN_NODE"), [INFO] [stderr] 83 | Token::EndNode => write!(f, "token FDT_END_NODE"), [INFO] [stderr] 84 | Token::Prop => write!(f, "token FDT_PROP"), [INFO] [stderr] 85 | Token::End => write!(f, "token FDT_END"), [INFO] [stderr] 86 | Token::Error(val) => write!(f, "{:x}", val), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/blob.rs:157:30 [INFO] [stderr] | [INFO] [stderr] 157 | let len = memchr(b'\0', d).unwrap_or(d.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| d.len())` [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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/blob.rs:163:3 [INFO] [stderr] | [INFO] [stderr] 163 | loop { [INFO] [stderr] | _________^ [INFO] [stderr] 164 | | match self.token() { [INFO] [stderr] 165 | | Token::Prop => { [INFO] [stderr] 166 | | let len = self.read_u32() as usize; [INFO] [stderr] ... | [INFO] [stderr] 171 | | } [INFO] [stderr] 172 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::Prop = self.token() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/blob.rs:186:30 [INFO] [stderr] | [INFO] [stderr] 186 | let len = memchr(b'\0', d).unwrap_or(d.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| d.len())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] error: for loop over `strings.nth(0)`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/stringlist.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | for string in strings.nth(0) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::for_loop_over_option)] on by default [INFO] [stderr] = help: consider replacing `for string in strings.nth(0)` with `if let Some(string) = strings.nth(0)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `fdt`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/header.rs:7:24 [INFO] [stderr] | [INFO] [stderr] 7 | pub const MAGIC: u32 = 0xd00dfeed; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xd00d_feed` [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/blob.rs:17:29 [INFO] [stderr] | [INFO] [stderr] 17 | const FDT_BEGIN_NODE: u32 = 0x00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0001` [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/blob.rs:18:29 [INFO] [stderr] | [INFO] [stderr] 18 | const FDT_END_NODE: u32 = 0x00000002; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0002` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/blob.rs:19:25 [INFO] [stderr] | [INFO] [stderr] 19 | const FDT_PROP: u32 = 0x00000003; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0003` [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/blob.rs:20:24 [INFO] [stderr] | [INFO] [stderr] 20 | const FDT_NOP: u32 = 0x00000004; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0004` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/blob.rs:21:24 [INFO] [stderr] | [INFO] [stderr] 21 | const FDT_END: u32 = 0x00000009; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0009` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `PropertyValue` [INFO] [stderr] --> src/node.rs:2:56 [INFO] [stderr] | [INFO] [stderr] 2 | use property::{Property, Properties, PropertyIterator, PropertyValue, IsValue}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `property::Property` [INFO] [stderr] --> src/lib.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use property::Property; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/property.rs:68:32 [INFO] [stderr] | [INFO] [stderr] 68 | str::from_utf8(raw).map_err(|e| "Utf8 Error") [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `depth` [INFO] [stderr] --> src/node.rs:173:35 [INFO] [stderr] | [INFO] [stderr] 173 | pub fn supernode_at_depth(&self, depth: usize) -> Option> { [INFO] [stderr] | ^^^^^ help: consider using `_depth` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `last_comp_version` [INFO] [stderr] --> src/header.rs:42:2 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn last_comp_version(&self) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size_dt_strings` [INFO] [stderr] --> src/header.rs:54:2 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn size_dt_strings(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size_dt_struct` [INFO] [stderr] --> src/header.rs:62:2 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn size_dt_struct(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/blob.rs:81:3 [INFO] [stderr] | [INFO] [stderr] 81 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 82 | | &Token::BeginNode => write!(f, "token FDT_BEGIN_NODE"), [INFO] [stderr] 83 | | &Token::EndNode => write!(f, "token FDT_END_NODE"), [INFO] [stderr] 84 | | &Token::Prop => write!(f, "token FDT_PROP"), [INFO] [stderr] 85 | | &Token::End => write!(f, "token FDT_END"), [INFO] [stderr] 86 | | &Token::Error(val) => write!(f, "{:x}", val), [INFO] [stderr] 87 | | } [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] 81 | match *self { [INFO] [stderr] 82 | Token::BeginNode => write!(f, "token FDT_BEGIN_NODE"), [INFO] [stderr] 83 | Token::EndNode => write!(f, "token FDT_END_NODE"), [INFO] [stderr] 84 | Token::Prop => write!(f, "token FDT_PROP"), [INFO] [stderr] 85 | Token::End => write!(f, "token FDT_END"), [INFO] [stderr] 86 | Token::Error(val) => write!(f, "{:x}", val), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/blob.rs:157:30 [INFO] [stderr] | [INFO] [stderr] 157 | let len = memchr(b'\0', d).unwrap_or(d.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| d.len())` [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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/blob.rs:163:3 [INFO] [stderr] | [INFO] [stderr] 163 | loop { [INFO] [stderr] | _________^ [INFO] [stderr] 164 | | match self.token() { [INFO] [stderr] 165 | | Token::Prop => { [INFO] [stderr] 166 | | let len = self.read_u32() as usize; [INFO] [stderr] ... | [INFO] [stderr] 171 | | } [INFO] [stderr] 172 | | } [INFO] [stderr] | |_________^ help: try: `while let Token::Prop = self.token() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/blob.rs:186:30 [INFO] [stderr] | [INFO] [stderr] 186 | let len = memchr(b'\0', d).unwrap_or(d.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| d.len())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] error: for loop over `strings.nth(0)`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/stringlist.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | for string in strings.nth(0) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::for_loop_over_option)] on by default [INFO] [stderr] = help: consider replacing `for string in strings.nth(0)` with `if let Some(string) = strings.nth(0)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `fdt`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "9f57e972d673d3848d638141cac397733897cf0683f200fd094733b963673b16"` [INFO] running `"docker" "rm" "-f" "9f57e972d673d3848d638141cac397733897cf0683f200fd094733b963673b16"` [INFO] [stdout] 9f57e972d673d3848d638141cac397733897cf0683f200fd094733b963673b16