[INFO] crate vorbis 0.1.0 is already in cache [INFO] extracting crate vorbis 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/vorbis/0.1.0 [INFO] extracting crate vorbis 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/vorbis/0.1.0 [INFO] validating manifest of vorbis-0.1.0 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 vorbis-0.1.0 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 vorbis-0.1.0 [INFO] finished frobbing vorbis-0.1.0 [INFO] frobbed toml for vorbis-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/vorbis/0.1.0/Cargo.toml [INFO] started frobbing vorbis-0.1.0 [INFO] finished frobbing vorbis-0.1.0 [INFO] frobbed toml for vorbis-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/vorbis/0.1.0/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 vorbis-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/vorbis/0.1.0:/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] b6d1707deb8be2a80eb4d95190faeee99f7a3cb12e99d371918cedc7324d1076 [INFO] running `"docker" "start" "-a" "b6d1707deb8be2a80eb4d95190faeee99f7a3cb12e99d371918cedc7324d1076"` [INFO] [stderr] Compiling ogg-sys v0.0.9 [INFO] [stderr] Compiling vorbis-sys v0.0.8 [INFO] [stderr] Compiling vorbisfile-sys v0.0.8 [INFO] [stderr] Compiling vorbis-encoder v0.1.4 [INFO] [stderr] Checking vorbis v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/lib.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | / match self { [INFO] [stderr] 37 | | &VorbisError::ReadError(_) => "A read from media returned an error", [INFO] [stderr] 38 | | &VorbisError::NotVorbis => "Bitstream does not contain any Vorbis data", [INFO] [stderr] 39 | | &VorbisError::VersionMismatch => "Vorbis version mismatch", [INFO] [stderr] ... | [INFO] [stderr] 43 | | &VorbisError::Unimplemented => "Unimplemented mode; unable to comply with quality level request.", [INFO] [stderr] 44 | | } [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] 36 | match *self { [INFO] [stderr] 37 | VorbisError::ReadError(_) => "A read from media returned an error", [INFO] [stderr] 38 | VorbisError::NotVorbis => "Bitstream does not contain any Vorbis data", [INFO] [stderr] 39 | VorbisError::VersionMismatch => "Vorbis version mismatch", [INFO] [stderr] 40 | VorbisError::BadHeader => "Invalid Vorbis bitstream header", [INFO] [stderr] 41 | VorbisError::InvalidSetup => "Invalid setup request, eg, out of range argument or initial file headers are corrupt", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | / match self { [INFO] [stderr] 49 | | &VorbisError::ReadError(ref err) => Some(err as &std::error::Error), [INFO] [stderr] 50 | | _ => None [INFO] [stderr] 51 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 48 | match *self { [INFO] [stderr] 49 | VorbisError::ReadError(ref err) => Some(err as &std::error::Error), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&mut DecoderData`) [INFO] [stderr] --> src/lib.rs:108:54 [INFO] [stderr] | [INFO] [stderr] 108 | let data: &mut DecoderData = unsafe { std::mem::transmute(datasource) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(datasource as *mut DecoderData)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&mut DecoderData`) [INFO] [stderr] --> src/lib.rs:127:54 [INFO] [stderr] | [INFO] [stderr] 127 | let data: &mut DecoderData = unsafe { std::mem::transmute(datasource) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(datasource as *mut DecoderData)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&mut DecoderData`) [INFO] [stderr] --> src/lib.rs:145:54 [INFO] [stderr] | [INFO] [stderr] 145 | let data: &mut DecoderData = unsafe { std::mem::transmute(datasource) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(datasource as *mut DecoderData)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut vorbis_sys::vorbis_info`) to a reference type (`&vorbis_sys::vorbis_info`) [INFO] [stderr] --> src/lib.rs:226:64 [INFO] [stderr] | [INFO] [stderr] 226 | let infos: &vorbis_sys::vorbis_info = unsafe { std::mem::transmute(infos) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*infos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:313:51 [INFO] [stderr] | [INFO] [stderr] 313 | e: match vorbis_encoder::Encoder::new(channels as u32, rate, quality) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(channels)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:326:36 [INFO] [stderr] | [INFO] [stderr] 326 | pub fn encode(&mut self, data: &Vec) -> Result, VorbisError> { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i16]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | / match self { [INFO] [stderr] 37 | | &VorbisError::ReadError(_) => "A read from media returned an error", [INFO] [stderr] 38 | | &VorbisError::NotVorbis => "Bitstream does not contain any Vorbis data", [INFO] [stderr] 39 | | &VorbisError::VersionMismatch => "Vorbis version mismatch", [INFO] [stderr] ... | [INFO] [stderr] 43 | | &VorbisError::Unimplemented => "Unimplemented mode; unable to comply with quality level request.", [INFO] [stderr] 44 | | } [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] 36 | match *self { [INFO] [stderr] 37 | VorbisError::ReadError(_) => "A read from media returned an error", [INFO] [stderr] 38 | VorbisError::NotVorbis => "Bitstream does not contain any Vorbis data", [INFO] [stderr] 39 | VorbisError::VersionMismatch => "Vorbis version mismatch", [INFO] [stderr] 40 | VorbisError::BadHeader => "Invalid Vorbis bitstream header", [INFO] [stderr] 41 | VorbisError::InvalidSetup => "Invalid setup request, eg, out of range argument or initial file headers are corrupt", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | / match self { [INFO] [stderr] 49 | | &VorbisError::ReadError(ref err) => Some(err as &std::error::Error), [INFO] [stderr] 50 | | _ => None [INFO] [stderr] 51 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 48 | match *self { [INFO] [stderr] 49 | VorbisError::ReadError(ref err) => Some(err as &std::error::Error), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&mut DecoderData`) [INFO] [stderr] --> src/lib.rs:108:54 [INFO] [stderr] | [INFO] [stderr] 108 | let data: &mut DecoderData = unsafe { std::mem::transmute(datasource) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(datasource as *mut DecoderData)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&mut DecoderData`) [INFO] [stderr] --> src/lib.rs:127:54 [INFO] [stderr] | [INFO] [stderr] 127 | let data: &mut DecoderData = unsafe { std::mem::transmute(datasource) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(datasource as *mut DecoderData)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&mut DecoderData`) [INFO] [stderr] --> src/lib.rs:145:54 [INFO] [stderr] | [INFO] [stderr] 145 | let data: &mut DecoderData = unsafe { std::mem::transmute(datasource) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(datasource as *mut DecoderData)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut vorbis_sys::vorbis_info`) to a reference type (`&vorbis_sys::vorbis_info`) [INFO] [stderr] --> src/lib.rs:226:64 [INFO] [stderr] | [INFO] [stderr] 226 | let infos: &vorbis_sys::vorbis_info = unsafe { std::mem::transmute(infos) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*infos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:313:51 [INFO] [stderr] | [INFO] [stderr] 313 | e: match vorbis_encoder::Encoder::new(channels as u32, rate, quality) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(channels)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:326:36 [INFO] [stderr] | [INFO] [stderr] 326 | pub fn encode(&mut self, data: &Vec) -> Result, VorbisError> { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i16]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> examples/decode-encode.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | / match p { [INFO] [stderr] 30 | | Ok(packet) => { [INFO] [stderr] 31 | | channels = packet.channels; [INFO] [stderr] 32 | | rate = packet.rate; [INFO] [stderr] ... | [INFO] [stderr] 48 | | _ => {} [INFO] [stderr] 49 | | } [INFO] [stderr] | |_________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 29 | if let Ok(packet) = p { [INFO] [stderr] 30 | channels = packet.channels; [INFO] [stderr] 31 | rate = packet.rate; [INFO] [stderr] 32 | bitrate_upper = packet.bitrate_upper; [INFO] [stderr] 33 | bitrate_nominal = packet.bitrate_nominal; [INFO] [stderr] 34 | bitrate_lower = packet.bitrate_lower; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> examples/decode-encode.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | pcm_file.write(&file_data[..]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> examples/decode-encode.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | out_file.write(encoder.encode(&data).expect("Error in encoding.").as_slice()).expect("Error in writing"); [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] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> examples/decode-encode.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | out_file.write(encoder.flush().expect("Error in flushing.").as_slice()).expect("Error in writing"); [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] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `vorbis`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "b6d1707deb8be2a80eb4d95190faeee99f7a3cb12e99d371918cedc7324d1076"` [INFO] running `"docker" "rm" "-f" "b6d1707deb8be2a80eb4d95190faeee99f7a3cb12e99d371918cedc7324d1076"` [INFO] [stdout] b6d1707deb8be2a80eb4d95190faeee99f7a3cb12e99d371918cedc7324d1076