[INFO] crate slr_config 0.0.17 is already in cache [INFO] extracting crate slr_config 0.0.17 into work/ex/clippy-test-run/sources/stable/reg/slr_config/0.0.17 [INFO] extracting crate slr_config 0.0.17 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/slr_config/0.0.17 [INFO] validating manifest of slr_config-0.0.17 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 slr_config-0.0.17 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 slr_config-0.0.17 [INFO] removed 0 missing examples [INFO] removed path dependency slr_parser from slr_config-0.0.17 [INFO] finished frobbing slr_config-0.0.17 [INFO] frobbed toml for slr_config-0.0.17 written to work/ex/clippy-test-run/sources/stable/reg/slr_config/0.0.17/Cargo.toml [INFO] started frobbing slr_config-0.0.17 [INFO] removed 0 missing examples [INFO] removed path dependency slr_parser from slr_config-0.0.17 [INFO] finished frobbing slr_config-0.0.17 [INFO] frobbed toml for slr_config-0.0.17 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/slr_config/0.0.17/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 slr_config-0.0.17 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/slr_config/0.0.17:/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] e6d04f618dd90540dfa214c273fcd3325b8c6f3e8175a7daa26464088f1a4b0f [INFO] running `"docker" "start" "-a" "e6d04f618dd90540dfa214c273fcd3325b8c6f3e8175a7daa26464088f1a4b0f"` [INFO] [stderr] Checking slr_parser v0.0.17 [INFO] [stderr] Checking slr_config v0.0.17 (/opt/crater/workdir) [INFO] [stderr] warning: impl for `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/element_repr.rs:191:93 [INFO] [stderr] | [INFO] [stderr] 191 | impl ElementRepr for HashMap [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 191 | impl ElementRepr for HashMap [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/config_element.rs:77:2 [INFO] [stderr] | [INFO] [stderr] 77 | pub fn from_str(src: &str) -> Result [INFO] [stderr] | _____^ [INFO] [stderr] 78 | | { [INFO] [stderr] 79 | | ConfigElement::from_source(&mut Source::new(&Path::new(""), src)) [INFO] [stderr] 80 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/config_element.rs:86:39 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn from_source_with_init<'l, 'm>(&mut self, source: &'m mut Source<'l>) -> Result<(), Error> [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/config_element.rs:97:28 [INFO] [stderr] | [INFO] [stderr] 97 | pub fn from_str_with_init(&mut self, src: &str) -> Result<(), Error> [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [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/config_element.rs:218:6 [INFO] [stderr] | [INFO] [stderr] 218 | match v.kind [INFO] [stderr] | _____________________^ [INFO] [stderr] 219 | | { [INFO] [stderr] 220 | | Table(ref table) => [INFO] [stderr] 221 | | { [INFO] [stderr] ... | [INFO] [stderr] 228 | | _ => (), [INFO] [stderr] 229 | | } [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] 218 | if let Table(ref table) = v.kind { [INFO] [stderr] 219 | if !table.is_empty() [INFO] [stderr] 220 | { [INFO] [stderr] 221 | one_line = false; [INFO] [stderr] 222 | break; [INFO] [stderr] 223 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/config_element.rs:354:22 [INFO] [stderr] | [INFO] [stderr] 354 | found_element = table.get(&name).map(|v| v.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `table.get(&name).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/config_element.rs:358:22 [INFO] [stderr] | [INFO] [stderr] 358 | found_element = ::from_str(&name).ok().and_then(|idx| array.get(idx)).map(|v| v.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `::from_str(&name).ok().and_then(|idx| array.get(idx)).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: impl for `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/element_repr.rs:191:93 [INFO] [stderr] | [INFO] [stderr] 191 | impl ElementRepr for HashMap [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 191 | impl ElementRepr for HashMap [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: defining a method called `from_str` on this type; consider implementing the `std::str::FromStr` trait or choosing a less ambiguous name [INFO] [stderr] --> src/config_element.rs:77:2 [INFO] [stderr] | [INFO] [stderr] 77 | pub fn from_str(src: &str) -> Result [INFO] [stderr] | _____^ [INFO] [stderr] 78 | | { [INFO] [stderr] 79 | | ConfigElement::from_source(&mut Source::new(&Path::new(""), src)) [INFO] [stderr] 80 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/config_element.rs:86:39 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn from_source_with_init<'l, 'm>(&mut self, source: &'m mut Source<'l>) -> Result<(), Error> [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/config_element.rs:97:28 [INFO] [stderr] | [INFO] [stderr] 97 | pub fn from_str_with_init(&mut self, src: &str) -> Result<(), Error> [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [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/config_element.rs:218:6 [INFO] [stderr] | [INFO] [stderr] 218 | match v.kind [INFO] [stderr] | _____________________^ [INFO] [stderr] 219 | | { [INFO] [stderr] 220 | | Table(ref table) => [INFO] [stderr] 221 | | { [INFO] [stderr] ... | [INFO] [stderr] 228 | | _ => (), [INFO] [stderr] 229 | | } [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] 218 | if let Table(ref table) = v.kind { [INFO] [stderr] 219 | if !table.is_empty() [INFO] [stderr] 220 | { [INFO] [stderr] 221 | one_line = false; [INFO] [stderr] 222 | break; [INFO] [stderr] 223 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/config_element.rs:354:22 [INFO] [stderr] | [INFO] [stderr] 354 | found_element = table.get(&name).map(|v| v.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `table.get(&name).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/config_element.rs:358:22 [INFO] [stderr] | [INFO] [stderr] 358 | found_element = ::from_str(&name).ok().and_then(|idx| array.get(idx)).map(|v| v.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `::from_str(&name).ok().and_then(|idx| array.get(idx)).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/test.rs:180:2 [INFO] [stderr] | [INFO] [stderr] 180 | assert_eq!(val.1, 2.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/test.rs:180:2 [INFO] [stderr] | [INFO] [stderr] 180 | assert_eq!(val.1, 2.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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: strict comparison of f32 or f64 [INFO] [stderr] --> src/test.rs:186:2 [INFO] [stderr] | [INFO] [stderr] 186 | assert_eq!(val[&1], 2.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/test.rs:186:2 [INFO] [stderr] | [INFO] [stderr] 186 | assert_eq!(val[&1], 2.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [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 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `slr_config`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "e6d04f618dd90540dfa214c273fcd3325b8c6f3e8175a7daa26464088f1a4b0f"` [INFO] running `"docker" "rm" "-f" "e6d04f618dd90540dfa214c273fcd3325b8c6f3e8175a7daa26464088f1a4b0f"` [INFO] [stdout] e6d04f618dd90540dfa214c273fcd3325b8c6f3e8175a7daa26464088f1a4b0f