[INFO] crate dlopen 0.1.5 is already in cache [INFO] extracting crate dlopen 0.1.5 into work/ex/clippy-test-run/sources/stable/reg/dlopen/0.1.5 [INFO] extracting crate dlopen 0.1.5 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dlopen/0.1.5 [INFO] validating manifest of dlopen-0.1.5 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 dlopen-0.1.5 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 dlopen-0.1.5 [INFO] removed 5 missing examples [INFO] finished frobbing dlopen-0.1.5 [INFO] frobbed toml for dlopen-0.1.5 written to work/ex/clippy-test-run/sources/stable/reg/dlopen/0.1.5/Cargo.toml [INFO] started frobbing dlopen-0.1.5 [INFO] removed 5 missing examples [INFO] finished frobbing dlopen-0.1.5 [INFO] frobbed toml for dlopen-0.1.5 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dlopen/0.1.5/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 dlopen-0.1.5 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/dlopen/0.1.5:/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] d543135c139851f91c0ff9e91287d51d0d6fc08288004b7dc030ea158ed3169a [INFO] running `"docker" "start" "-a" "d543135c139851f91c0ff9e91287d51d0d6fc08288004b7dc030ea158ed3169a"` [INFO] [stderr] warning: An explicit [[example]] section is specified in Cargo.toml which currently [INFO] [stderr] disables Cargo from automatically inferring other example targets. [INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following [INFO] [stderr] files will be included as a example target: [INFO] [stderr] [INFO] [stderr] * /opt/crater/workdir/examples/symbor_api.rs [INFO] [stderr] * /opt/crater/workdir/examples/symbor.rs [INFO] [stderr] * /opt/crater/workdir/examples/raw.rs [INFO] [stderr] * /opt/crater/workdir/examples/wrapper_multi_api.rs [INFO] [stderr] * /opt/crater/workdir/examples/wrapper_api.rs [INFO] [stderr] [INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be [INFO] [stderr] ready to be compiled as a example target today. You can future-proof yourself [INFO] [stderr] and disable this warning by adding `autoexamples = false` to your [package] [INFO] [stderr] section. You may also move the files to a location where Cargo would not [INFO] [stderr] automatically infer them to be a target, such as in subfolders. [INFO] [stderr] [INFO] [stderr] For more information on this warning you can consult [INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330 [INFO] [stderr] Checking const-cstr v0.1.0 [INFO] [stderr] Checking example_dylib v0.1.0 [INFO] [stderr] Compiling dlopen_derive v0.1.3 [INFO] [stderr] Checking dlopen v0.1.5 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/symbor/ptr_or_null.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | pointer: pointer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pointer` [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/symbor/ptr_or_null_mut.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | pointer: pointer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pointer` [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/symbor/symbol.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | symbol: symbol, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `symbol` [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/symbor/reference.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | reference: reference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference` [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/symbor/reference_mut.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | reference: reference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference` [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/symbor/container.rs:63:19 [INFO] [stderr] | [INFO] [stderr] 63 | Ok(Self { api: api, lib: lib }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `api` [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/symbor/container.rs:63:29 [INFO] [stderr] | [INFO] [stderr] 63 | Ok(Self { api: api, lib: lib }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lib` [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/wrapper/container.rs:70:19 [INFO] [stderr] | [INFO] [stderr] 70 | Ok(Self { lib: lib, api: api }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lib` [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/wrapper/container.rs:70:29 [INFO] [stderr] | [INFO] [stderr] 70 | Ok(Self { lib: lib, api: api }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `api` [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/wrapper/optional.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | lib: lib, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lib` [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/wrapper/optional.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | api: api, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `api` [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/wrapper/optional.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | optional: optional, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `optional` [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/symbor/ptr_or_null.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | pointer: pointer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pointer` [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/symbor/ptr_or_null_mut.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | pointer: pointer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pointer` [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/symbor/symbol.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | symbol: symbol, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `symbol` [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/symbor/reference.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | reference: reference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference` [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/symbor/reference_mut.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | reference: reference, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `reference` [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/symbor/container.rs:63:19 [INFO] [stderr] | [INFO] [stderr] 63 | Ok(Self { api: api, lib: lib }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `api` [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/symbor/container.rs:63:29 [INFO] [stderr] | [INFO] [stderr] 63 | Ok(Self { api: api, lib: lib }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lib` [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/wrapper/container.rs:70:19 [INFO] [stderr] | [INFO] [stderr] 70 | Ok(Self { lib: lib, api: api }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lib` [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/wrapper/container.rs:70:29 [INFO] [stderr] | [INFO] [stderr] 70 | Ok(Self { lib: lib, api: api }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `api` [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/wrapper/optional.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | lib: lib, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lib` [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/wrapper/optional.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | api: api, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `api` [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/wrapper/optional.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | optional: optional, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `optional` [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: unneeded return statement [INFO] [stderr] --> src/raw/common.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | 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/symbor/symbol.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | return &self.symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.symbol` [INFO] [stderr] | [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/symbor/symbol.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | return &mut self.symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&mut self.symbol` [INFO] [stderr] | [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/wrapper/optional.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | return &self.optional; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.optional` [INFO] [stderr] | [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/wrapper/optional.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | return &mut self.optional; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&mut self.optional` [INFO] [stderr] | [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/raw/common.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | 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/symbor/symbol.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | return &self.symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.symbol` [INFO] [stderr] | [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/symbor/symbol.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | return &mut self.symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&mut self.symbol` [INFO] [stderr] | [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/wrapper/optional.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | return &self.optional; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.optional` [INFO] [stderr] | [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/wrapper/optional.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | return &mut self.optional; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&mut self.optional` [INFO] [stderr] | [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/raw/unix.rs:43:19 [INFO] [stderr] | [INFO] [stderr] 43 | 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: transmute from a pointer type (`*const ()`) to a reference type (`&'lib T`) [INFO] [stderr] --> src/symbor/reference.rs:30:32 [INFO] [stderr] | [INFO] [stderr] 30 | reference: transmute(*ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `&*(*ptr as *const T)` [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 (`*const ()`) to a reference type (`&'lib mut T`) [INFO] [stderr] --> src/symbor/reference_mut.rs:30:32 [INFO] [stderr] | [INFO] [stderr] 30 | reference: transmute(*ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `&mut *(*ptr as *mut T)` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/err.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / match self { [INFO] [stderr] 24 | | &Error::NullCharacter(_) => "String had a null character", [INFO] [stderr] 25 | | &Error::OpeningLibraryError(_) => "Could not open library", [INFO] [stderr] 26 | | &Error::SymbolGettingError(_) => "Could not obtain symbol from the library", [INFO] [stderr] 27 | | &Error::NullSymbol => "The symbol is NULL", [INFO] [stderr] 28 | | } [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] 23 | match *self { [INFO] [stderr] 24 | Error::NullCharacter(_) => "String had a null character", [INFO] [stderr] 25 | Error::OpeningLibraryError(_) => "Could not open library", [INFO] [stderr] 26 | Error::SymbolGettingError(_) => "Could not obtain symbol from the library", [INFO] [stderr] 27 | 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/err.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / match self { [INFO] [stderr] 33 | | &Error::NullCharacter(ref val) => Some(val), [INFO] [stderr] 34 | | &Error::OpeningLibraryError(_) | &Error::SymbolGettingError(_) | &Error::NullSymbol => { [INFO] [stderr] 35 | | None [INFO] [stderr] 36 | | } [INFO] [stderr] 37 | | } [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] 32 | match *self { [INFO] [stderr] 33 | Error::NullCharacter(ref val) => Some(val), [INFO] [stderr] 34 | 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/err.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | / match self { [INFO] [stderr] 45 | | &Error::OpeningLibraryError(ref msg) => { [INFO] [stderr] 46 | | f.write_str(": ")?; [INFO] [stderr] 47 | | msg.fmt(f) [INFO] [stderr] ... | [INFO] [stderr] 53 | | &Error::NullSymbol | &Error::NullCharacter(_) => Ok(()), [INFO] [stderr] 54 | | } [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] 44 | match *self { [INFO] [stderr] 45 | Error::OpeningLibraryError(ref msg) => { [INFO] [stderr] 46 | f.write_str(": ")?; [INFO] [stderr] 47 | msg.fmt(f) [INFO] [stderr] 48 | } [INFO] [stderr] 49 | Error::SymbolGettingError(ref msg) => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/raw/unix.rs:43:19 [INFO] [stderr] | [INFO] [stderr] 43 | 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: transmute from a pointer type (`*const ()`) to a reference type (`&'lib T`) [INFO] [stderr] --> src/symbor/reference.rs:30:32 [INFO] [stderr] | [INFO] [stderr] 30 | reference: transmute(*ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `&*(*ptr as *const T)` [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 (`*const ()`) to a reference type (`&'lib mut T`) [INFO] [stderr] --> src/symbor/reference_mut.rs:30:32 [INFO] [stderr] | [INFO] [stderr] 30 | reference: transmute(*ptr), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `&mut *(*ptr as *mut T)` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/err.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / match self { [INFO] [stderr] 24 | | &Error::NullCharacter(_) => "String had a null character", [INFO] [stderr] 25 | | &Error::OpeningLibraryError(_) => "Could not open library", [INFO] [stderr] 26 | | &Error::SymbolGettingError(_) => "Could not obtain symbol from the library", [INFO] [stderr] 27 | | &Error::NullSymbol => "The symbol is NULL", [INFO] [stderr] 28 | | } [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] 23 | match *self { [INFO] [stderr] 24 | Error::NullCharacter(_) => "String had a null character", [INFO] [stderr] 25 | Error::OpeningLibraryError(_) => "Could not open library", [INFO] [stderr] 26 | Error::SymbolGettingError(_) => "Could not obtain symbol from the library", [INFO] [stderr] 27 | 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/err.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / match self { [INFO] [stderr] 33 | | &Error::NullCharacter(ref val) => Some(val), [INFO] [stderr] 34 | | &Error::OpeningLibraryError(_) | &Error::SymbolGettingError(_) | &Error::NullSymbol => { [INFO] [stderr] 35 | | None [INFO] [stderr] 36 | | } [INFO] [stderr] 37 | | } [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] 32 | match *self { [INFO] [stderr] 33 | Error::NullCharacter(ref val) => Some(val), [INFO] [stderr] 34 | 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/err.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | / match self { [INFO] [stderr] 45 | | &Error::OpeningLibraryError(ref msg) => { [INFO] [stderr] 46 | | f.write_str(": ")?; [INFO] [stderr] 47 | | msg.fmt(f) [INFO] [stderr] ... | [INFO] [stderr] 53 | | &Error::NullSymbol | &Error::NullCharacter(_) => Ok(()), [INFO] [stderr] 54 | | } [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] 44 | match *self { [INFO] [stderr] 45 | Error::OpeningLibraryError(ref msg) => { [INFO] [stderr] 46 | f.write_str(": ")?; [INFO] [stderr] 47 | msg.fmt(f) [INFO] [stderr] 48 | } [INFO] [stderr] 49 | Error::SymbolGettingError(ref msg) => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> tests/commons/mod.rs:24:55 [INFO] [stderr] | [INFO] [stderr] 24 | let entry = lib_path.read_dir().unwrap().find(|e| match e { [INFO] [stderr] | _______________________________________________________^ [INFO] [stderr] 25 | | &Ok(ref entry) => file_regex.is_match(entry.file_name().to_str().unwrap()), [INFO] [stderr] 26 | | &Err(ref err) => panic!("Could not read cargo debug directory: {}", err), [INFO] [stderr] 27 | | }); [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] 24 | let entry = lib_path.read_dir().unwrap().find(|e| match *e { [INFO] [stderr] 25 | Ok(ref entry) => file_regex.is_match(entry.file_name().to_str().unwrap()), [INFO] [stderr] 26 | Err(ref err) => panic!("Could not read cargo debug directory: {}", err), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> tests/commons/mod.rs:24:55 [INFO] [stderr] | [INFO] [stderr] 24 | let entry = lib_path.read_dir().unwrap().find(|e| match e { [INFO] [stderr] | _______________________________________________________^ [INFO] [stderr] 25 | | &Ok(ref entry) => file_regex.is_match(entry.file_name().to_str().unwrap()), [INFO] [stderr] 26 | | &Err(ref err) => panic!("Could not read cargo debug directory: {}", err), [INFO] [stderr] 27 | | }); [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] 24 | let entry = lib_path.read_dir().unwrap().find(|e| match *e { [INFO] [stderr] 25 | Ok(ref entry) => file_regex.is_match(entry.file_name().to_str().unwrap()), [INFO] [stderr] 26 | Err(ref err) => panic!("Could not read cargo debug directory: {}", err), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> tests/commons/mod.rs:24:55 [INFO] [stderr] | [INFO] [stderr] 24 | let entry = lib_path.read_dir().unwrap().find(|e| match e { [INFO] [stderr] | _______________________________________________________^ [INFO] [stderr] 25 | | &Ok(ref entry) => file_regex.is_match(entry.file_name().to_str().unwrap()), [INFO] [stderr] 26 | | &Err(ref err) => panic!("Could not read cargo debug directory: {}", err), [INFO] [stderr] 27 | | }); [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] 24 | let entry = lib_path.read_dir().unwrap().find(|e| match *e { [INFO] [stderr] 25 | Ok(ref entry) => file_regex.is_match(entry.file_name().to_str().unwrap()), [INFO] [stderr] 26 | Err(ref err) => panic!("Could not read cargo debug directory: {}", err), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> tests/commons/mod.rs:24:55 [INFO] [stderr] | [INFO] [stderr] 24 | let entry = lib_path.read_dir().unwrap().find(|e| match e { [INFO] [stderr] | _______________________________________________________^ [INFO] [stderr] 25 | | &Ok(ref entry) => file_regex.is_match(entry.file_name().to_str().unwrap()), [INFO] [stderr] 26 | | &Err(ref err) => panic!("Could not read cargo debug directory: {}", err), [INFO] [stderr] 27 | | }); [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] 24 | let entry = lib_path.read_dir().unwrap().find(|e| match *e { [INFO] [stderr] 25 | Ok(ref entry) => file_regex.is_match(entry.file_name().to_str().unwrap()), [INFO] [stderr] 26 | Err(ref err) => panic!("Could not read cargo debug directory: {}", err), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.66s [INFO] running `"docker" "inspect" "d543135c139851f91c0ff9e91287d51d0d6fc08288004b7dc030ea158ed3169a"` [INFO] running `"docker" "rm" "-f" "d543135c139851f91c0ff9e91287d51d0d6fc08288004b7dc030ea158ed3169a"` [INFO] [stdout] d543135c139851f91c0ff9e91287d51d0d6fc08288004b7dc030ea158ed3169a