[INFO] crate dl_api 0.2.0 is already in cache [INFO] extracting crate dl_api 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/dl_api/0.2.0 [INFO] extracting crate dl_api 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dl_api/0.2.0 [INFO] validating manifest of dl_api-0.2.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 dl_api-0.2.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 dl_api-0.2.0 [INFO] finished frobbing dl_api-0.2.0 [INFO] frobbed toml for dl_api-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/dl_api/0.2.0/Cargo.toml [INFO] started frobbing dl_api-0.2.0 [INFO] finished frobbing dl_api-0.2.0 [INFO] frobbed toml for dl_api-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dl_api/0.2.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 dl_api-0.2.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/dl_api/0.2.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] 8ca6ebab8bb8c798149556c0cef83579e4bb46735126b9c4a6fa0f58791d7734 [INFO] running `"docker" "start" "-a" "8ca6ebab8bb8c798149556c0cef83579e4bb46735126b9c4a6fa0f58791d7734"` [INFO] [stderr] Checking dl_api v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/library/common.rs:49:4 [INFO] [stderr] | [INFO] [stderr] 49 | return Err(Error::NullSymbol); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::NullSymbol)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/library/common.rs:49:4 [INFO] [stderr] | [INFO] [stderr] 49 | return Err(Error::NullSymbol); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(Error::NullSymbol)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/library/unix.rs:49:16 [INFO] [stderr] | [INFO] [stderr] 49 | let cstr = if name.len() > 0 && name.as_bytes()[name.len() - 1] == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!name.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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:29:3 [INFO] [stderr] | [INFO] [stderr] 29 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 30 | | &Error::NullCharacter(_) => "String had a null character", [INFO] [stderr] 31 | | &Error::OpeningLibraryError(_) => "Could not open library", [INFO] [stderr] 32 | | &Error::SymbolGettingError(_) => "Could not obtain symbol from the library", [INFO] [stderr] 33 | | &Error::NullSymbol => "The symbol is NULL", [INFO] [stderr] 34 | | } [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] 29 | match *self { [INFO] [stderr] 30 | Error::NullCharacter(_) => "String had a null character", [INFO] [stderr] 31 | Error::OpeningLibraryError(_) => "Could not open library", [INFO] [stderr] 32 | Error::SymbolGettingError(_) => "Could not obtain symbol from the library", [INFO] [stderr] 33 | Error::NullSymbol => "The symbol is NULL", [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:38:3 [INFO] [stderr] | [INFO] [stderr] 38 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 39 | | &Error::NullCharacter(ref val) => Some(val), [INFO] [stderr] 40 | | &Error::OpeningLibraryError(_) | &Error::SymbolGettingError(_) | &Error::NullSymbol => { [INFO] [stderr] 41 | | None [INFO] [stderr] 42 | | } [INFO] [stderr] 43 | | } [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] 38 | match *self { [INFO] [stderr] 39 | Error::NullCharacter(ref val) => Some(val), [INFO] [stderr] 40 | Error::OpeningLibraryError(_) | Error::SymbolGettingError(_) | Error::NullSymbol => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:50:3 [INFO] [stderr] | [INFO] [stderr] 50 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 51 | | &Error::OpeningLibraryError(ref msg) => { [INFO] [stderr] 52 | | f.write_str(": ")?; [INFO] [stderr] 53 | | msg.fmt(f) [INFO] [stderr] ... | [INFO] [stderr] 59 | | &Error::NullSymbol | &Error::NullCharacter(_) => Ok(()), [INFO] [stderr] 60 | | } [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] 50 | match *self { [INFO] [stderr] 51 | Error::OpeningLibraryError(ref msg) => { [INFO] [stderr] 52 | f.write_str(": ")?; [INFO] [stderr] 53 | msg.fmt(f) [INFO] [stderr] 54 | } [INFO] [stderr] 55 | Error::SymbolGettingError(ref msg) => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/library/unix.rs:49:16 [INFO] [stderr] | [INFO] [stderr] 49 | let cstr = if name.len() > 0 && name.as_bytes()[name.len() - 1] == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!name.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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:29:3 [INFO] [stderr] | [INFO] [stderr] 29 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 30 | | &Error::NullCharacter(_) => "String had a null character", [INFO] [stderr] 31 | | &Error::OpeningLibraryError(_) => "Could not open library", [INFO] [stderr] 32 | | &Error::SymbolGettingError(_) => "Could not obtain symbol from the library", [INFO] [stderr] 33 | | &Error::NullSymbol => "The symbol is NULL", [INFO] [stderr] 34 | | } [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] 29 | match *self { [INFO] [stderr] 30 | Error::NullCharacter(_) => "String had a null character", [INFO] [stderr] 31 | Error::OpeningLibraryError(_) => "Could not open library", [INFO] [stderr] 32 | Error::SymbolGettingError(_) => "Could not obtain symbol from the library", [INFO] [stderr] 33 | Error::NullSymbol => "The symbol is NULL", [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:38:3 [INFO] [stderr] | [INFO] [stderr] 38 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 39 | | &Error::NullCharacter(ref val) => Some(val), [INFO] [stderr] 40 | | &Error::OpeningLibraryError(_) | &Error::SymbolGettingError(_) | &Error::NullSymbol => { [INFO] [stderr] 41 | | None [INFO] [stderr] 42 | | } [INFO] [stderr] 43 | | } [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] 38 | match *self { [INFO] [stderr] 39 | Error::NullCharacter(ref val) => Some(val), [INFO] [stderr] 40 | Error::OpeningLibraryError(_) | Error::SymbolGettingError(_) | Error::NullSymbol => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:50:3 [INFO] [stderr] | [INFO] [stderr] 50 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 51 | | &Error::OpeningLibraryError(ref msg) => { [INFO] [stderr] 52 | | f.write_str(": ")?; [INFO] [stderr] 53 | | msg.fmt(f) [INFO] [stderr] ... | [INFO] [stderr] 59 | | &Error::NullSymbol | &Error::NullCharacter(_) => Ok(()), [INFO] [stderr] 60 | | } [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] 50 | match *self { [INFO] [stderr] 51 | Error::OpeningLibraryError(ref msg) => { [INFO] [stderr] 52 | f.write_str(": ")?; [INFO] [stderr] 53 | msg.fmt(f) [INFO] [stderr] 54 | } [INFO] [stderr] 55 | Error::SymbolGettingError(ref msg) => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.98s [INFO] running `"docker" "inspect" "8ca6ebab8bb8c798149556c0cef83579e4bb46735126b9c4a6fa0f58791d7734"` [INFO] running `"docker" "rm" "-f" "8ca6ebab8bb8c798149556c0cef83579e4bb46735126b9c4a6fa0f58791d7734"` [INFO] [stdout] 8ca6ebab8bb8c798149556c0cef83579e4bb46735126b9c4a6fa0f58791d7734