[INFO] crate metaflac 0.1.8 is already in cache [INFO] extracting crate metaflac 0.1.8 into work/ex/clippy-test-run/sources/stable/reg/metaflac/0.1.8 [INFO] extracting crate metaflac 0.1.8 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/metaflac/0.1.8 [INFO] validating manifest of metaflac-0.1.8 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 metaflac-0.1.8 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 metaflac-0.1.8 [INFO] finished frobbing metaflac-0.1.8 [INFO] frobbed toml for metaflac-0.1.8 written to work/ex/clippy-test-run/sources/stable/reg/metaflac/0.1.8/Cargo.toml [INFO] started frobbing metaflac-0.1.8 [INFO] finished frobbing metaflac-0.1.8 [INFO] frobbed toml for metaflac-0.1.8 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/metaflac/0.1.8/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 metaflac-0.1.8 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/metaflac/0.1.8:/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] 29c58651a77a958ae9af1f99722212bea266639d5dd0d214c74210ec04721106 [INFO] running `"docker" "start" "-a" "29c58651a77a958ae9af1f99722212bea266639d5dd0d214c74210ec04721106"` [INFO] [stderr] Checking metaflac v0.1.8 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/error.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | Error { kind: kind, description: description } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/error.rs:34:29 [INFO] [stderr] | [INFO] [stderr] 34 | Error { kind: kind, description: description } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `description` [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/error.rs:34:17 [INFO] [stderr] | [INFO] [stderr] 34 | Error { kind: kind, description: description } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/error.rs:34:29 [INFO] [stderr] | [INFO] [stderr] 34 | Error { kind: kind, description: description } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `description` [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: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/block.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/tag.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/block.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/tag.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ascii::AsciiExt` [INFO] [stderr] --> src/block.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ascii::AsciiExt` [INFO] [stderr] --> src/tag.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ascii::AsciiExt` [INFO] [stderr] --> src/block.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ascii::AsciiExt` [INFO] [stderr] --> src/tag.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:46:38 [INFO] [stderr] | [INFO] [stderr] 46 | BlockType::Unknown(n) => n as u64 [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(n)` [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/block.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | reader.take(length as u64).read_to_end(&mut data).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:169:56 [INFO] [stderr] | [INFO] [stderr] 169 | try!(writer.write_all(&::util::u64_to_be_bytes(header as u64, 4)[..])); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(header)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::StreamInfo` [INFO] [stderr] --> src/block.rs:240:5 [INFO] [stderr] | [INFO] [stderr] 240 | / pub fn new() -> StreamInfo { [INFO] [stderr] 241 | | StreamInfo { [INFO] [stderr] 242 | | min_block_size: 0, max_block_size: 0, min_frame_size: 0, [INFO] [stderr] 243 | | max_frame_size: 0, sample_rate: 0, num_channels: 0, [INFO] [stderr] 244 | | bits_per_sample: 0, total_samples: 0, md5: Vec::new() [INFO] [stderr] 245 | | } [INFO] [stderr] 246 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 211 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:265:96 [INFO] [stderr] | [INFO] [stderr] 265 | streaminfo.sample_rate = ((::util::bytes_to_be_u64(&bytes[i..i + 2]) as u32) << 4) | ((bytes[i + 2] as u32 & 0xF0) >> 4); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(bytes[i + 2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:273:38 [INFO] [stderr] | [INFO] [stderr] 273 | streaminfo.total_samples = ((bytes[i] as u64 & 0x0F) << 32) | ::util::bytes_to_be_u64(&bytes[i + 1..i + 1 + 4]) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[i])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:285:46 [INFO] [stderr] | [INFO] [stderr] 285 | bytes.extend(::util::u64_to_be_bytes(self.min_block_size as u64, 2).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.min_block_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:286:46 [INFO] [stderr] | [INFO] [stderr] 286 | bytes.extend(::util::u64_to_be_bytes(self.max_block_size as u64, 2).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.max_block_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:287:46 [INFO] [stderr] | [INFO] [stderr] 287 | bytes.extend(::util::u64_to_be_bytes(self.min_frame_size as u64, 3).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.min_frame_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:288:46 [INFO] [stderr] | [INFO] [stderr] 288 | bytes.extend(::util::u64_to_be_bytes(self.max_frame_size as u64, 3).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.max_frame_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:289:46 [INFO] [stderr] | [INFO] [stderr] 289 | bytes.extend(::util::u64_to_be_bytes((self.sample_rate >> 4) as u64, 2).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.sample_rate >> 4)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::Application` [INFO] [stderr] --> src/block.rs:323:5 [INFO] [stderr] | [INFO] [stderr] 323 | / pub fn new() -> Application { [INFO] [stderr] 324 | | Application { id: Vec::new(), data: Vec::new() } [INFO] [stderr] 325 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 308 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:46:38 [INFO] [stderr] | [INFO] [stderr] 46 | BlockType::Unknown(n) => n as u64 [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(n)` [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: you should consider deriving a `Default` implementation for `block::CueSheetTrackIndex` [INFO] [stderr] --> src/block.rs:365:5 [INFO] [stderr] | [INFO] [stderr] 365 | / pub fn new() -> CueSheetTrackIndex { [INFO] [stderr] 366 | | CueSheetTrackIndex { offset: 0, point_num: 0 } [INFO] [stderr] 367 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 356 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::CueSheetTrack` [INFO] [stderr] --> src/block.rs:391:5 [INFO] [stderr] | [INFO] [stderr] 391 | / pub fn new() -> CueSheetTrack { [INFO] [stderr] 392 | | CueSheetTrack { [INFO] [stderr] 393 | | offset: 0, number: 0, isrc: String::new(), is_audio: true, pre_emphasis: false, [INFO] [stderr] 394 | | indices: Vec::new() [INFO] [stderr] 395 | | } [INFO] [stderr] 396 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 372 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::CueSheet` [INFO] [stderr] --> src/block.rs:414:5 [INFO] [stderr] | [INFO] [stderr] 414 | / pub fn new() -> CueSheet { [INFO] [stderr] 415 | | CueSheet { [INFO] [stderr] 416 | | catalog_num: String::new(), num_leadin: 0, is_cd: true, tracks: Vec::new() [INFO] [stderr] 417 | | } [INFO] [stderr] 418 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 401 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | reader.take(length as u64).read_to_end(&mut data).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:169:56 [INFO] [stderr] | [INFO] [stderr] 169 | try!(writer.write_all(&::util::u64_to_be_bytes(header as u64, 4)[..])); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u64::from(header)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::StreamInfo` [INFO] [stderr] --> src/block.rs:240:5 [INFO] [stderr] | [INFO] [stderr] 240 | / pub fn new() -> StreamInfo { [INFO] [stderr] 241 | | StreamInfo { [INFO] [stderr] 242 | | min_block_size: 0, max_block_size: 0, min_frame_size: 0, [INFO] [stderr] 243 | | max_frame_size: 0, sample_rate: 0, num_channels: 0, [INFO] [stderr] 244 | | bits_per_sample: 0, total_samples: 0, md5: Vec::new() [INFO] [stderr] 245 | | } [INFO] [stderr] 246 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 211 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:265:96 [INFO] [stderr] | [INFO] [stderr] 265 | streaminfo.sample_rate = ((::util::bytes_to_be_u64(&bytes[i..i + 2]) as u32) << 4) | ((bytes[i + 2] as u32 & 0xF0) >> 4); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(bytes[i + 2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:273:38 [INFO] [stderr] | [INFO] [stderr] 273 | streaminfo.total_samples = ((bytes[i] as u64 & 0x0F) << 32) | ::util::bytes_to_be_u64(&bytes[i + 1..i + 1 + 4]) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[i])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:285:46 [INFO] [stderr] | [INFO] [stderr] 285 | bytes.extend(::util::u64_to_be_bytes(self.min_block_size as u64, 2).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.min_block_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:286:46 [INFO] [stderr] | [INFO] [stderr] 286 | bytes.extend(::util::u64_to_be_bytes(self.max_block_size as u64, 2).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.max_block_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:287:46 [INFO] [stderr] | [INFO] [stderr] 287 | bytes.extend(::util::u64_to_be_bytes(self.min_frame_size as u64, 3).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.min_frame_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:288:46 [INFO] [stderr] | [INFO] [stderr] 288 | bytes.extend(::util::u64_to_be_bytes(self.max_frame_size as u64, 3).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.max_frame_size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:289:46 [INFO] [stderr] | [INFO] [stderr] 289 | bytes.extend(::util::u64_to_be_bytes((self.sample_rate >> 4) as u64, 2).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.sample_rate >> 4)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::Application` [INFO] [stderr] --> src/block.rs:323:5 [INFO] [stderr] | [INFO] [stderr] 323 | / pub fn new() -> Application { [INFO] [stderr] 324 | | Application { id: Vec::new(), data: Vec::new() } [INFO] [stderr] 325 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 308 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `block::Picture` [INFO] [stderr] --> src/block.rs:629:5 [INFO] [stderr] | [INFO] [stderr] 629 | / pub fn new() -> Picture { [INFO] [stderr] 630 | | Picture { [INFO] [stderr] 631 | | picture_type: PictureType::Other, mime_type: String::new(), [INFO] [stderr] 632 | | description: String::new(), width: 0, height: 0, depth: 0, [INFO] [stderr] 633 | | num_colors: 0, data: Vec::new() [INFO] [stderr] 634 | | } [INFO] [stderr] 635 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 627 | impl Default for block::Picture { [INFO] [stderr] 628 | fn default() -> Self { [INFO] [stderr] 629 | Self::new() [INFO] [stderr] 630 | } [INFO] [stderr] 631 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::CueSheetTrackIndex` [INFO] [stderr] --> src/block.rs:365:5 [INFO] [stderr] | [INFO] [stderr] 365 | / pub fn new() -> CueSheetTrackIndex { [INFO] [stderr] 366 | | CueSheetTrackIndex { offset: 0, point_num: 0 } [INFO] [stderr] 367 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 356 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::CueSheetTrack` [INFO] [stderr] --> src/block.rs:391:5 [INFO] [stderr] | [INFO] [stderr] 391 | / pub fn new() -> CueSheetTrack { [INFO] [stderr] 392 | | CueSheetTrack { [INFO] [stderr] 393 | | offset: 0, number: 0, isrc: String::new(), is_audio: true, pre_emphasis: false, [INFO] [stderr] 394 | | indices: Vec::new() [INFO] [stderr] 395 | | } [INFO] [stderr] 396 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 372 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::CueSheet` [INFO] [stderr] --> src/block.rs:414:5 [INFO] [stderr] | [INFO] [stderr] 414 | / pub fn new() -> CueSheet { [INFO] [stderr] 415 | | CueSheet { [INFO] [stderr] 416 | | catalog_num: String::new(), num_leadin: 0, is_cd: true, tracks: Vec::new() [INFO] [stderr] 417 | | } [INFO] [stderr] 418 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 401 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:698:46 [INFO] [stderr] | [INFO] [stderr] 698 | bytes.extend(::util::u64_to_be_bytes(self.width as u64, 4).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:699:46 [INFO] [stderr] | [INFO] [stderr] 699 | bytes.extend(::util::u64_to_be_bytes(self.height as u64, 4).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:700:46 [INFO] [stderr] | [INFO] [stderr] 700 | bytes.extend(::util::u64_to_be_bytes(self.depth as u64, 4).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.depth)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:701:46 [INFO] [stderr] | [INFO] [stderr] 701 | bytes.extend(::util::u64_to_be_bytes(self.num_colors as u64, 4).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.num_colors)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::SeekPoint` [INFO] [stderr] --> src/block.rs:729:5 [INFO] [stderr] | [INFO] [stderr] 729 | / pub fn new() -> SeekPoint { [INFO] [stderr] 730 | | SeekPoint { sample_number: 0, offset: 0, num_samples: 0 } [INFO] [stderr] 731 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 716 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:755:46 [INFO] [stderr] | [INFO] [stderr] 755 | bytes.extend(::util::u64_to_be_bytes(self.num_samples as u64 , 2).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.num_samples)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::SeekTable` [INFO] [stderr] --> src/block.rs:771:5 [INFO] [stderr] | [INFO] [stderr] 771 | / pub fn new() -> SeekTable { [INFO] [stderr] 772 | | SeekTable { seekpoints: Vec::new() } [INFO] [stderr] 773 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 764 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::VorbisComment` [INFO] [stderr] --> src/block.rs:815:5 [INFO] [stderr] | [INFO] [stderr] 815 | / pub fn new() -> VorbisComment { [INFO] [stderr] 816 | | VorbisComment { vendor_string: String::new(), comments: HashMap::new() } [INFO] [stderr] 817 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 806 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/block.rs:845:13 [INFO] [stderr] | [INFO] [stderr] 845 | / if vorbis.comments.contains_key(&key) { [INFO] [stderr] 846 | | vorbis.comments.get_mut(&key).unwrap().push(value); [INFO] [stderr] 847 | | } else { [INFO] [stderr] 848 | | vorbis.comments.insert(key, vec!(value)); [INFO] [stderr] 849 | | } [INFO] [stderr] | |_____________^ help: consider using: `vorbis.comments.entry(key)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `block::Picture` [INFO] [stderr] --> src/block.rs:629:5 [INFO] [stderr] | [INFO] [stderr] 629 | / pub fn new() -> Picture { [INFO] [stderr] 630 | | Picture { [INFO] [stderr] 631 | | picture_type: PictureType::Other, mime_type: String::new(), [INFO] [stderr] 632 | | description: String::new(), width: 0, height: 0, depth: 0, [INFO] [stderr] 633 | | num_colors: 0, data: Vec::new() [INFO] [stderr] 634 | | } [INFO] [stderr] 635 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 627 | impl Default for block::Picture { [INFO] [stderr] 628 | fn default() -> Self { [INFO] [stderr] 629 | Self::new() [INFO] [stderr] 630 | } [INFO] [stderr] 631 | } [INFO] [stderr] | [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/block.rs:896:9 [INFO] [stderr] | [INFO] [stderr] 896 | / match self.comments.get_mut(key) { [INFO] [stderr] 897 | | Some(list) => list.retain(|s| &s[..] != value), [INFO] [stderr] 898 | | None => {} [INFO] [stderr] 899 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(list) = self.comments.get_mut(key) { list.retain(|s| &s[..] != value) }` [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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:698:46 [INFO] [stderr] | [INFO] [stderr] 698 | bytes.extend(::util::u64_to_be_bytes(self.width as u64, 4).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:699:46 [INFO] [stderr] | [INFO] [stderr] 699 | bytes.extend(::util::u64_to_be_bytes(self.height as u64, 4).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:700:46 [INFO] [stderr] | [INFO] [stderr] 700 | bytes.extend(::util::u64_to_be_bytes(self.depth as u64, 4).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.depth)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:701:46 [INFO] [stderr] | [INFO] [stderr] 701 | bytes.extend(::util::u64_to_be_bytes(self.num_colors as u64, 4).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.num_colors)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::SeekPoint` [INFO] [stderr] --> src/block.rs:729:5 [INFO] [stderr] | [INFO] [stderr] 729 | / pub fn new() -> SeekPoint { [INFO] [stderr] 730 | | SeekPoint { sample_number: 0, offset: 0, num_samples: 0 } [INFO] [stderr] 731 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 716 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/block.rs:985:49 [INFO] [stderr] | [INFO] [stderr] 985 | self.get("TRACKNUMBER").and_then(|s| if s.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.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: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:755:46 [INFO] [stderr] | [INFO] [stderr] 755 | bytes.extend(::util::u64_to_be_bytes(self.num_samples as u64 , 2).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(self.num_samples)` [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: length comparison to zero [INFO] [stderr] --> src/block.rs:1004:49 [INFO] [stderr] | [INFO] [stderr] 1004 | self.get("TOTALTRACKS").and_then(|s| if s.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.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 should consider deriving a `Default` implementation for `block::SeekTable` [INFO] [stderr] --> src/block.rs:771:5 [INFO] [stderr] | [INFO] [stderr] 771 | / pub fn new() -> SeekTable { [INFO] [stderr] 772 | | SeekTable { seekpoints: Vec::new() } [INFO] [stderr] 773 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 764 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:13:14 [INFO] [stderr] | [INFO] [stderr] 13 | n += (*b as u64) << shift; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(*b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `block::VorbisComment` [INFO] [stderr] --> src/block.rs:815:5 [INFO] [stderr] | [INFO] [stderr] 815 | / pub fn new() -> VorbisComment { [INFO] [stderr] 816 | | VorbisComment { vendor_string: String::new(), comments: HashMap::new() } [INFO] [stderr] 817 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 806 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/util.rs:21:14 [INFO] [stderr] | [INFO] [stderr] 21 | for i in 1..(nbytes + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `1..=nbytes` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:30:24 [INFO] [stderr] | [INFO] [stderr] 30 | n = (n << 8) | *b as u64; [INFO] [stderr] | ^^^^^^^^^ help: try: `u64::from(*b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `tag::Tag` [INFO] [stderr] --> src/tag.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn new() -> Tag { [INFO] [stderr] 27 | | Tag { path: None, blocks: Vec::new(), length: 0 } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 15 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/block.rs:845:13 [INFO] [stderr] | [INFO] [stderr] 845 | / if vorbis.comments.contains_key(&key) { [INFO] [stderr] 846 | | vorbis.comments.get_mut(&key).unwrap().push(value); [INFO] [stderr] 847 | | } else { [INFO] [stderr] 848 | | vorbis.comments.insert(key, vec!(value)); [INFO] [stderr] 849 | | } [INFO] [stderr] | |_____________^ help: consider using: `vorbis.comments.entry(key)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [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/tag.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | / match *block { [INFO] [stderr] 86 | | Block::VorbisComment(ref comm) => return Some(comm), [INFO] [stderr] 87 | | _ => {} [INFO] [stderr] 88 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Block::VorbisComment(ref comm) = *block { return Some(comm) }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/tag.rs:118:17 [INFO] [stderr] | [INFO] [stderr] 118 | / match *self.blocks.as_mut_ptr().offset(i as isize) { [INFO] [stderr] 119 | | Block::VorbisComment(ref mut comm) => return comm, [INFO] [stderr] 120 | | _ => {} [INFO] [stderr] 121 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Block::VorbisComment(ref mut comm) = *self.blocks.as_mut_ptr().offset(i as isize) { return comm }` [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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/tag.rs:118:24 [INFO] [stderr] | [INFO] [stderr] 118 | match *self.blocks.as_mut_ptr().offset(i as isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.blocks.as_mut_ptr().add(i)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [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/block.rs:896:9 [INFO] [stderr] | [INFO] [stderr] 896 | / match self.comments.get_mut(key) { [INFO] [stderr] 897 | | Some(list) => list.retain(|s| &s[..] != value), [INFO] [stderr] 898 | | None => {} [INFO] [stderr] 899 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(list) = self.comments.get_mut(key) { list.retain(|s| &s[..] != value) }` [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/tag.rs:233:13 [INFO] [stderr] | [INFO] [stderr] 233 | / match *block { [INFO] [stderr] 234 | | Block::Picture(ref picture) => pictures.push(picture), [INFO] [stderr] 235 | | _ => {} [INFO] [stderr] 236 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Block::Picture(ref picture) = *block { pictures.push(picture) }` [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: length comparison to zero [INFO] [stderr] --> src/block.rs:985:49 [INFO] [stderr] | [INFO] [stderr] 985 | self.get("TRACKNUMBER").and_then(|s| if s.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.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] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/tag.rs:313:17 [INFO] [stderr] | [INFO] [stderr] 313 | / match $action { [INFO] [stderr] 314 | | Ok(bytes) => bytes, [INFO] [stderr] 315 | | Err(_) => { [INFO] [stderr] 316 | | match $reader.seek(SeekFrom::Start(0)) { [INFO] [stderr] ... | [INFO] [stderr] 326 | | } [INFO] [stderr] 327 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] ... [INFO] [stderr] 332 | try_io!(reader, reader.read(&mut ident)); [INFO] [stderr] | ----------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/block.rs:1004:49 [INFO] [stderr] | [INFO] [stderr] 1004 | self.get("TOTALTRACKS").and_then(|s| if s.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!s.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: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/tag.rs:342:63 [INFO] [stderr] | [INFO] [stderr] 342 | try_io!(reader, reader.seek(SeekFrom::Current(length as i64))); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/tag.rs:358:17 [INFO] [stderr] | [INFO] [stderr] 358 | / match $action { [INFO] [stderr] 359 | | Ok(result) => result, [INFO] [stderr] 360 | | Err(_) => return false [INFO] [stderr] 361 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] ... [INFO] [stderr] 366 | try_or_false!(reader.read(&mut ident)); [INFO] [stderr] | --------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:13:14 [INFO] [stderr] | [INFO] [stderr] 13 | n += (*b as u64) << shift; [INFO] [stderr] --> src/tag.rs:376:9 [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(*b)` [INFO] [stderr] | [INFO] [stderr] 376 | try!(reader.read(&mut ident)); [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] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/util.rs:21:14 [INFO] [stderr] | [INFO] [stderr] 21 | for i in 1..(nbytes + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `1..=nbytes` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/tag.rs:395:9 [INFO] [stderr] | [INFO] [stderr] 395 | try!(writer.write(b"fLaC")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/util.rs:30:24 [INFO] [stderr] | [INFO] [stderr] 30 | n = (n << 8) | *b as u64; [INFO] [stderr] | ^^^^^^^^^ help: try: `u64::from(*b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `tag::Tag` [INFO] [stderr] --> src/tag.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | / pub fn new() -> Tag { [INFO] [stderr] 27 | | Tag { path: None, blocks: Vec::new(), length: 0 } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 15 | #[derive(Default)] [INFO] [stderr] | [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/tag.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | / match *block { [INFO] [stderr] 86 | | Block::VorbisComment(ref comm) => return Some(comm), [INFO] [stderr] 87 | | _ => {} [INFO] [stderr] 88 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Block::VorbisComment(ref comm) = *block { return Some(comm) }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/tag.rs:118:17 [INFO] [stderr] | [INFO] [stderr] 118 | / match *self.blocks.as_mut_ptr().offset(i as isize) { [INFO] [stderr] 119 | | Block::VorbisComment(ref mut comm) => return comm, [INFO] [stderr] 120 | | _ => {} [INFO] [stderr] 121 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Block::VorbisComment(ref mut comm) = *self.blocks.as_mut_ptr().offset(i as isize) { return comm }` [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: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/tag.rs:118:24 [INFO] [stderr] | [INFO] [stderr] 118 | match *self.blocks.as_mut_ptr().offset(i as isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.blocks.as_mut_ptr().add(i)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [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/tag.rs:233:13 [INFO] [stderr] | [INFO] [stderr] 233 | / match *block { [INFO] [stderr] 234 | | Block::Picture(ref picture) => pictures.push(picture), [INFO] [stderr] 235 | | _ => {} [INFO] [stderr] 236 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Block::Picture(ref picture) = *block { pictures.push(picture) }` [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/tag.rs:430:17 [INFO] [stderr] | [INFO] [stderr] 430 | try!(file.write(&bytes[..])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/tag.rs:449:13 [INFO] [stderr] | [INFO] [stderr] 449 | try!(file.write(b"fLaC")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/tag.rs:452:17 [INFO] [stderr] | [INFO] [stderr] 452 | try!(file.write(&bytes[..])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/tag.rs:461:13 [INFO] [stderr] | [INFO] [stderr] 461 | / match data_opt { [INFO] [stderr] 462 | | Some(data) => try!(file.write_all(&data[..])), [INFO] [stderr] 463 | | None => {} [INFO] [stderr] 464 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(data) = data_opt { try!(file.write_all(&data[..])) }` [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] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/tag.rs:313:17 [INFO] [stderr] | [INFO] [stderr] 313 | / match $action { [INFO] [stderr] 314 | | Ok(bytes) => bytes, [INFO] [stderr] 315 | | Err(_) => { [INFO] [stderr] 316 | | match $reader.seek(SeekFrom::Start(0)) { [INFO] [stderr] ... | [INFO] [stderr] 326 | | } [INFO] [stderr] 327 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] ... [INFO] [stderr] 332 | try_io!(reader, reader.read(&mut ident)); [INFO] [stderr] | ----------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/tag.rs:342:63 [INFO] [stderr] | [INFO] [stderr] 342 | try_io!(reader, reader.seek(SeekFrom::Current(length as i64))); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/tag.rs:358:17 [INFO] [stderr] | [INFO] [stderr] 358 | / match $action { [INFO] [stderr] 359 | | Ok(result) => result, [INFO] [stderr] 360 | | Err(_) => return false [INFO] [stderr] 361 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] ... [INFO] [stderr] 366 | try_or_false!(reader.read(&mut ident)); [INFO] [stderr] | --------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/tag.rs:376:9 [INFO] [stderr] | [INFO] [stderr] 376 | try!(reader.read(&mut ident)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/tag.rs:395:9 [INFO] [stderr] | [INFO] [stderr] 395 | try!(writer.write(b"fLaC")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: aborting due to 7 previous errors [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/tag.rs:430:17 [INFO] [stderr] | [INFO] [stderr] 430 | try!(file.write(&bytes[..])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/tag.rs:449:13 [INFO] [stderr] | [INFO] [stderr] 449 | try!(file.write(b"fLaC")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/tag.rs:452:17 [INFO] [stderr] | [INFO] [stderr] 452 | try!(file.write(&bytes[..])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/tag.rs:461:13 [INFO] [stderr] | [INFO] [stderr] 461 | / match data_opt { [INFO] [stderr] 462 | | Some(data) => try!(file.write_all(&data[..])), [INFO] [stderr] 463 | | None => {} [INFO] [stderr] 464 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Some(data) = data_opt { try!(file.write_all(&data[..])) }` [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] error: Could not compile `metaflac`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: aborting due to 7 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `metaflac`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "29c58651a77a958ae9af1f99722212bea266639d5dd0d214c74210ec04721106"` [INFO] running `"docker" "rm" "-f" "29c58651a77a958ae9af1f99722212bea266639d5dd0d214c74210ec04721106"` [INFO] [stdout] 29c58651a77a958ae9af1f99722212bea266639d5dd0d214c74210ec04721106