[INFO] crate qcow2 0.1.2 is already in cache [INFO] extracting crate qcow2 0.1.2 into work/ex/clippy-test-run/sources/stable/reg/qcow2/0.1.2 [INFO] extracting crate qcow2 0.1.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/qcow2/0.1.2 [INFO] validating manifest of qcow2-0.1.2 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 qcow2-0.1.2 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 qcow2-0.1.2 [INFO] finished frobbing qcow2-0.1.2 [INFO] frobbed toml for qcow2-0.1.2 written to work/ex/clippy-test-run/sources/stable/reg/qcow2/0.1.2/Cargo.toml [INFO] started frobbing qcow2-0.1.2 [INFO] finished frobbing qcow2-0.1.2 [INFO] frobbed toml for qcow2-0.1.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/qcow2/0.1.2/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 qcow2-0.1.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/qcow2/0.1.2:/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] bdf688db59fa2bacfab3e7e4affc3ba4cbdc6a233bb3af3899decfe939bc107f [INFO] running `"docker" "start" "-a" "bdf688db59fa2bacfab3e7e4affc3ba4cbdc6a233bb3af3899decfe939bc107f"` [INFO] [stderr] Checking linked-hash-map v0.0.9 [INFO] [stderr] Checking positioned-io v0.2.2 [INFO] [stderr] Checking lru-cache v0.0.7 [INFO] [stderr] Checking qcow2 v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/extension.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/extension.rs:110:25 [INFO] [stderr] | [INFO] [stderr] 110 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/extension.rs:111:25 [INFO] [stderr] | [INFO] [stderr] 111 | bit: bit, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `bit` [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/extension.rs:112:25 [INFO] [stderr] | [INFO] [stderr] 112 | 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/feature.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/feature.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | names: names, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `names` [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/read.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/read.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/read.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | cow: cow, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cow` [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/read.rs:96:17 [INFO] [stderr] | [INFO] [stderr] 96 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/read.rs:105:21 [INFO] [stderr] | [INFO] [stderr] 105 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/read.rs:106:21 [INFO] [stderr] | [INFO] [stderr] 106 | cow: cow, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cow` [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/read.rs:186:21 [INFO] [stderr] | [INFO] [stderr] 186 | Ok(Reader { q: q, l1: l1 }) [INFO] [stderr] | ^^^^ help: replace it with: `q` [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/read.rs:186:27 [INFO] [stderr] | [INFO] [stderr] 186 | Ok(Reader { q: q, l1: l1 }) [INFO] [stderr] | ^^^^^^ help: replace it with: `l1` [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:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | io: io, [INFO] [stderr] | ^^^^^^ help: replace it with: `io` [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/extension.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/extension.rs:110:25 [INFO] [stderr] | [INFO] [stderr] 110 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/extension.rs:111:25 [INFO] [stderr] | [INFO] [stderr] 111 | bit: bit, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `bit` [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/extension.rs:112:25 [INFO] [stderr] | [INFO] [stderr] 112 | 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/feature.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/feature.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | names: names, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `names` [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/read.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/read.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/read.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | cow: cow, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cow` [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/read.rs:96:17 [INFO] [stderr] | [INFO] [stderr] 96 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/read.rs:105:21 [INFO] [stderr] | [INFO] [stderr] 105 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/read.rs:106:21 [INFO] [stderr] | [INFO] [stderr] 106 | cow: cow, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `cow` [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/read.rs:186:21 [INFO] [stderr] | [INFO] [stderr] 186 | Ok(Reader { q: q, l1: l1 }) [INFO] [stderr] | ^^^^ help: replace it with: `q` [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/read.rs:186:27 [INFO] [stderr] | [INFO] [stderr] 186 | Ok(Reader { q: q, l1: l1 }) [INFO] [stderr] | ^^^^^^ help: replace it with: `l1` [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:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | io: io, [INFO] [stderr] | ^^^^^^ help: replace it with: `io` [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/extension.rs:14:46 [INFO] [stderr] | [INFO] [stderr] 14 | pub const EXT_CODE_FEATURE_NAME_TABLE: u32 = 0x6803f857; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x6803_f857` [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/header.rs:21:20 [INFO] [stderr] | [INFO] [stderr] 21 | const MAGIC: u32 = 0x514649fb; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x5146_49fb` [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: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/extension.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/extension.rs:14:46 [INFO] [stderr] | [INFO] [stderr] 14 | pub const EXT_CODE_FEATURE_NAME_TABLE: u32 = 0x6803f857; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x6803_f857` [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/header.rs:21:20 [INFO] [stderr] | [INFO] [stderr] 21 | const MAGIC: u32 = 0x514649fb; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x5146_49fb` [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: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/extension.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ascii::AsciiExt` [INFO] [stderr] --> src/extension.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `byteorder::ReadBytesExt` [INFO] [stderr] --> src/extension.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use byteorder::ReadBytesExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/header.rs:207:21 [INFO] [stderr] | [INFO] [stderr] 207 | let mut ext = self.v3.extension(ext_code); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/read.rs:146:58 [INFO] [stderr] | [INFO] [stderr] 146 | fn guest_read(&self, l1: &T, pos: u64, mut buf: &mut [u8]) -> io::Result { [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/read.rs:193:33 [INFO] [stderr] | [INFO] [stderr] 193 | fn read_at(&self, pos: u64, mut buf: &mut [u8]) -> io::Result { [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/extension.rs:95:33 [INFO] [stderr] | [INFO] [stderr] 95 | let chars = buf.into_iter() [INFO] [stderr] | _________________________________^ [INFO] [stderr] 96 | | .take_while(|&&c| c != 0) [INFO] [stderr] 97 | | .map(|&c| c) [INFO] [stderr] | |____________________________________^ [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] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 95 | let chars = buf.into_iter() [INFO] [stderr] 96 | .take_while(|&&c| c != 0).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/extension.rs:95:37 [INFO] [stderr] | [INFO] [stderr] 95 | let chars = buf.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/header.rs:148:12 [INFO] [stderr] | [INFO] [stderr] 148 | if self.c.l1_size as u64 != self.l1_entries() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.c.l1_size)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/header.rs:194:23 [INFO] [stderr] | [INFO] [stderr] 194 | let len = try!(io.read_u32()) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 194 | let len = u64::from(match $ expr { [INFO] [stderr] 195 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 196 | :: Err ( err ) => { [INFO] [stderr] 197 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 198 | $ crate :: convert :: From :: from ( err ) ) } }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/header.rs:271:12 [INFO] [stderr] | [INFO] [stderr] 271 | if self.v3.header_length as u64 != actual_length { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.v3.header_length)` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/read.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn reader<'a>(&'a self) -> Result> { [INFO] [stderr] 52 | | let offset = self.header.c.l1_table_offset; [INFO] [stderr] 53 | | let reader = try!(Reader::new(self, offset)); [INFO] [stderr] 54 | | Ok(reader) [INFO] [stderr] 55 | | } [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: length comparison to zero [INFO] [stderr] --> src/read.rs:156:15 [INFO] [stderr] | [INFO] [stderr] 156 | while buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buf.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: unused import: `std::ascii::AsciiExt` [INFO] [stderr] --> src/extension.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `byteorder::ReadBytesExt` [INFO] [stderr] --> src/extension.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use byteorder::ReadBytesExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/header.rs:207:21 [INFO] [stderr] | [INFO] [stderr] 207 | let mut ext = self.v3.extension(ext_code); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/read.rs:146:58 [INFO] [stderr] | [INFO] [stderr] 146 | fn guest_read(&self, l1: &T, pos: u64, mut buf: &mut [u8]) -> io::Result { [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/read.rs:193:33 [INFO] [stderr] | [INFO] [stderr] 193 | fn read_at(&self, pos: u64, mut buf: &mut [u8]) -> io::Result { [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/extension.rs:95:33 [INFO] [stderr] | [INFO] [stderr] 95 | let chars = buf.into_iter() [INFO] [stderr] | _________________________________^ [INFO] [stderr] 96 | | .take_while(|&&c| c != 0) [INFO] [stderr] 97 | | .map(|&c| c) [INFO] [stderr] | |____________________________________^ [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] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 95 | let chars = buf.into_iter() [INFO] [stderr] 96 | .take_while(|&&c| c != 0).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/extension.rs:95:37 [INFO] [stderr] | [INFO] [stderr] 95 | let chars = buf.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/header.rs:148:12 [INFO] [stderr] | [INFO] [stderr] 148 | if self.c.l1_size as u64 != self.l1_entries() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.c.l1_size)` [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 u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/header.rs:194:23 [INFO] [stderr] | [INFO] [stderr] 194 | let len = try!(io.read_u32()) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 194 | let len = u64::from(match $ expr { [INFO] [stderr] 195 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 196 | :: Err ( err ) => { [INFO] [stderr] 197 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 198 | $ crate :: convert :: From :: from ( err ) ) } }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/header.rs:271:12 [INFO] [stderr] | [INFO] [stderr] 271 | if self.v3.header_length as u64 != actual_length { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.v3.header_length)` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/read.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn reader<'a>(&'a self) -> Result> { [INFO] [stderr] 52 | | let offset = self.header.c.l1_table_offset; [INFO] [stderr] 53 | | let reader = try!(Reader::new(self, offset)); [INFO] [stderr] 54 | | Ok(reader) [INFO] [stderr] 55 | | } [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: length comparison to zero [INFO] [stderr] --> src/read.rs:156:15 [INFO] [stderr] | [INFO] [stderr] 156 | while buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!buf.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: use of `writeln!(stderr(), ...).unwrap()`. Consider using `eprintln!` instead [INFO] [stderr] --> src/bin/qcow2-dump.rs:12:17 [INFO] [stderr] | [INFO] [stderr] 12 | writeln!(std::io::stderr(), "{} `{}': {}", msg, path, e).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_write)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stderr] [INFO] [stderr] warning: use of `writeln!(stderr(), ...).unwrap()`. Consider using `eprintln!` instead [INFO] [stderr] --> src/bin/qcow2-dump.rs:12:17 [INFO] [stderr] | [INFO] [stderr] 12 | writeln!(std::io::stderr(), "{} `{}': {}", msg, path, e).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_write)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.53s [INFO] running `"docker" "inspect" "bdf688db59fa2bacfab3e7e4affc3ba4cbdc6a233bb3af3899decfe939bc107f"` [INFO] running `"docker" "rm" "-f" "bdf688db59fa2bacfab3e7e4affc3ba4cbdc6a233bb3af3899decfe939bc107f"` [INFO] [stdout] bdf688db59fa2bacfab3e7e4affc3ba4cbdc6a233bb3af3899decfe939bc107f