[INFO] crate capturing-glob 0.1.1 is already in cache [INFO] extracting crate capturing-glob 0.1.1 into work/ex/clippy-test-run/sources/stable/reg/capturing-glob/0.1.1 [INFO] extracting crate capturing-glob 0.1.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/capturing-glob/0.1.1 [INFO] validating manifest of capturing-glob-0.1.1 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 capturing-glob-0.1.1 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 capturing-glob-0.1.1 [INFO] finished frobbing capturing-glob-0.1.1 [INFO] frobbed toml for capturing-glob-0.1.1 written to work/ex/clippy-test-run/sources/stable/reg/capturing-glob/0.1.1/Cargo.toml [INFO] started frobbing capturing-glob-0.1.1 [INFO] finished frobbing capturing-glob-0.1.1 [INFO] frobbed toml for capturing-glob-0.1.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/capturing-glob/0.1.1/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 capturing-glob-0.1.1 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/capturing-glob/0.1.1:/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 -Dclippy::into_iter_on_array" "-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] b954fdc357f871eb41251bbd9b25b01ea231318b920ad52c7fed8b4c8ef89318 [INFO] running `"docker" "start" "-a" "b954fdc357f871eb41251bbd9b25b01ea231318b920ad52c7fed8b4c8ef89318"` [INFO] [stderr] Compiling libc v0.2.48 [INFO] [stderr] Checking capturing-glob v0.1.1 (/opt/crater/workdir) [INFO] [stderr] error[E0602]: unknown lint: `clippy::into_iter_on_array` [INFO] [stderr] | [INFO] [stderr] = note: requested on the command line with `-D clippy::into_iter_on_array` [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:315:9 [INFO] [stderr] | [INFO] [stderr] 315 | dir_patterns: dir_patterns, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dir_patterns` [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:317:9 [INFO] [stderr] | [INFO] [stderr] 317 | require_dir: require_dir, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `require_dir` [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/lib.rs:319:9 [INFO] [stderr] | [INFO] [stderr] 319 | todo: todo, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `todo` [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/lib.rs:801:13 [INFO] [stderr] | [INFO] [stderr] 801 | tokens: tokens, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `tokens` [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/lib.rs:803:13 [INFO] [stderr] | [INFO] [stderr] 803 | is_recursive: is_recursive, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_recursive` [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0602`. [INFO] [stderr] error: Could not compile `libc`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:617:25 [INFO] [stderr] | [INFO] [stderr] 617 | const ERROR_WILDCARDS: &'static str = "wildcards are either regular `*` or recursive `**`"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:618:35 [INFO] [stderr] | [INFO] [stderr] 618 | const ERROR_RECURSIVE_WILDCARDS: &'static str = "recursive wildcards must form a single path \ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/lib.rs:620:29 [INFO] [stderr] | [INFO] [stderr] 620 | const ERROR_INVALID_RANGE: &'static str = "invalid range pattern"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:632:5 [INFO] [stderr] | [INFO] [stderr] 632 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/lib.rs:1148:9 [INFO] [stderr] | [INFO] [stderr] 1148 | return Ok(result) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(result)` [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/lib.rs:1169:9 [INFO] [stderr] | [INFO] [stderr] 1169 | return Some(s); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(s)` [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: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/lib.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ascii::AsciiExt` [INFO] [stderr] --> src/lib.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/lib.rs:227:24 [INFO] [stderr] | [INFO] [stderr] 227 | if txt.starts_with(".") && [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:384:16 [INFO] [stderr] | [INFO] [stderr] 384 | if self.dir_patterns.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.dir_patterns.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: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/lib.rs:626:16 [INFO] [stderr] | [INFO] [stderr] 626 | } else if path::is_separator(c) { [INFO] [stderr] | ________________^ [INFO] [stderr] 627 | | return true; [INFO] [stderr] 628 | | } else { [INFO] [stderr] 629 | | return false; [INFO] [stderr] 630 | | } [INFO] [stderr] | |_________^ help: you can reduce it to: `return path::is_separator(c)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/lib.rs:793:9 [INFO] [stderr] | [INFO] [stderr] 793 | / for (_, i) in captures_stack { [INFO] [stderr] 794 | | return Err(PatternError { [INFO] [stderr] 795 | | pos: i, [INFO] [stderr] 796 | | msg: "Unmatched opening paren", [INFO] [stderr] 797 | | }) [INFO] [stderr] 798 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:866:5 [INFO] [stderr] | [INFO] [stderr] 866 | / pub fn as_str<'a>(&'a self) -> &'a str { [INFO] [stderr] 867 | | &self.original [INFO] [stderr] 868 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: called `map_or(None, f)` on an Option value. This can be done more directly by calling `and_then(f)` instead [INFO] [stderr] --> src/lib.rs:900:9 [INFO] [stderr] | [INFO] [stderr] 900 | path.to_str().map_or(None, |s| self.captures_with(s, options)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using and_then instead: `path.to_str().and_then(|s| self.captures_with(s, options))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_or_none)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_or_none [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/lib.rs:998:5 [INFO] [stderr] | [INFO] [stderr] 998 | / fn captures_from(&self, [INFO] [stderr] 999 | | mut follows_separator: bool, [INFO] [stderr] 1000 | | mut file: std::str::Chars, [INFO] [stderr] 1001 | | i: usize, fname: &str, [INFO] [stderr] ... | [INFO] [stderr] 1100 | | } [INFO] [stderr] 1101 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:1226:24 [INFO] [stderr] | [INFO] [stderr] 1226 | if pattern.tokens.len() > 0 && pattern.tokens[0] == PatternToken::Char('.') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!pattern.tokens.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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `capturing-glob`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "b954fdc357f871eb41251bbd9b25b01ea231318b920ad52c7fed8b4c8ef89318"` [INFO] running `"docker" "rm" "-f" "b954fdc357f871eb41251bbd9b25b01ea231318b920ad52c7fed8b4c8ef89318"` [INFO] [stdout] b954fdc357f871eb41251bbd9b25b01ea231318b920ad52c7fed8b4c8ef89318