[INFO] crate parsimonious 0.0.8 is already in cache [INFO] extracting crate parsimonious 0.0.8 into work/ex/clippy-test-run/sources/stable/reg/parsimonious/0.0.8 [INFO] extracting crate parsimonious 0.0.8 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/parsimonious/0.0.8 [INFO] validating manifest of parsimonious-0.0.8 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 parsimonious-0.0.8 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 parsimonious-0.0.8 [INFO] finished frobbing parsimonious-0.0.8 [INFO] frobbed toml for parsimonious-0.0.8 written to work/ex/clippy-test-run/sources/stable/reg/parsimonious/0.0.8/Cargo.toml [INFO] started frobbing parsimonious-0.0.8 [INFO] finished frobbing parsimonious-0.0.8 [INFO] frobbed toml for parsimonious-0.0.8 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/parsimonious/0.0.8/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 parsimonious-0.0.8 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/parsimonious/0.0.8:/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] 577c58cbb28da145cd87a0b2c5328445e1ee84747ff41b18c756767b3c758a8a [INFO] running `"docker" "start" "-a" "577c58cbb28da145cd87a0b2c5328445e1ee84747ff41b18c756767b3c758a8a"` [INFO] [stderr] Compiling pulldown-cmark v0.0.3 [INFO] [stderr] Checking skeptic v0.4.0 [INFO] [stderr] Compiling parsimonious v0.0.8 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:1442:23 [INFO] [stderr] | [INFO] [stderr] 1442 | Peekable{ iter: iter, peeked: None } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `iter` [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:1442:23 [INFO] [stderr] | [INFO] [stderr] 1442 | Peekable{ iter: iter, peeked: None } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `iter` [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: unnecessary parentheses around function argument [INFO] [stderr] --> src/lib.rs:1591:54 [INFO] [stderr] | [INFO] [stderr] 1591 | let mut iter = parser.parse(impls::Peekable::new((1..3))).unAbort(); [INFO] [stderr] | ^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/lib.rs:1591:54 [INFO] [stderr] | [INFO] [stderr] 1591 | let mut iter = parser.parse(impls::Peekable::new((1..3))).unAbort(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/lib.rs:1595:64 [INFO] [stderr] | [INFO] [stderr] 1595 | let (mut iter, result) = parser.parse(impls::Peekable::new((0..3))).unCommit().unDone(); [INFO] [stderr] | ^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/lib.rs:1595:64 [INFO] [stderr] | [INFO] [stderr] 1595 | let (mut iter, result) = parser.parse(impls::Peekable::new((0..3))).unCommit().unDone(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:829:31 [INFO] [stderr] | [INFO] [stderr] 829 | fn apply(&self, args: ((((S1,S2),S3),S4),S5)) -> T { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:1236:27 [INFO] [stderr] | [INFO] [stderr] 1236 | fn cant_happen(&self) -> T { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: use as_ref() instead [INFO] [stderr] --> src/lib.rs:1449:13 [INFO] [stderr] | [INFO] [stderr] 1449 | / match self.peeked { [INFO] [stderr] 1450 | | Some(ref value) => Some(value), [INFO] [stderr] 1451 | | None => None, [INFO] [stderr] 1452 | | } [INFO] [stderr] | |_____________^ help: try this: `self.peeked.as_ref()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_as_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_as_ref [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:829:31 [INFO] [stderr] | [INFO] [stderr] 829 | fn apply(&self, args: ((((S1,S2),S3),S4),S5)) -> T { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:1236:27 [INFO] [stderr] | [INFO] [stderr] 1236 | fn cant_happen(&self) -> T { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: use as_ref() instead [INFO] [stderr] --> src/lib.rs:1449:13 [INFO] [stderr] | [INFO] [stderr] 1449 | / match self.peeked { [INFO] [stderr] 1450 | | Some(ref value) => Some(value), [INFO] [stderr] 1451 | | None => None, [INFO] [stderr] 1452 | | } [INFO] [stderr] | |_____________^ help: try this: `self.peeked.as_ref()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_as_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_as_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:1589:21 [INFO] [stderr] | [INFO] [stderr] 1589 | fn is_zero(num: &usize) -> bool { *num == 0 } [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `usize` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [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:1816:5 [INFO] [stderr] | [INFO] [stderr] 1816 | fn mk_id<'a>(string: Cow<'a,str>) -> Token { Token::Identifier(string.into_owned()) } [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:1817:5 [INFO] [stderr] | [INFO] [stderr] 1817 | fn mk_num<'a>(string: Cow<'a,str>) -> Token { Token::Number(usize::from_str_radix(string.borrow(),10).unwrap()) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> /opt/crater/target/debug/build/parsimonious-5da0ae5c98b85268/out/skeptic-tests.rs:4:9 [INFO] [stderr] | [INFO] [stderr] 4 | let ref s = format!("{}", r#"extern crate parsimonious; [INFO] [stderr] | _____- ^^^^^ [INFO] [stderr] 5 | | use parsimonious::{character,Parser,Uncommitted,Committed,Stateful}; [INFO] [stderr] 6 | | use parsimonious::ParseResult::{Done,Continue}; [INFO] [stderr] 7 | | #[allow(non_snake_case)] [INFO] [stderr] ... | [INFO] [stderr] 29 | | } [INFO] [stderr] 30 | | "#); [INFO] [stderr] | |____- help: try: `let s = &$ crate :: fmt :: format ( format_args ! ( $ ( $ arg ) * ) );` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> /opt/crater/target/debug/build/parsimonious-5da0ae5c98b85268/out/skeptic-tests.rs:4:17 [INFO] [stderr] | [INFO] [stderr] 4 | let ref s = format!("{}", r#"extern crate parsimonious; [INFO] [stderr] | _________________^ [INFO] [stderr] 5 | | use parsimonious::{character,Parser,Uncommitted,Committed,Stateful}; [INFO] [stderr] 6 | | use parsimonious::ParseResult::{Done,Continue}; [INFO] [stderr] 7 | | #[allow(non_snake_case)] [INFO] [stderr] ... | [INFO] [stderr] 29 | | } [INFO] [stderr] 30 | | "#); [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] help: consider using .to_string() [INFO] [stderr] | [INFO] [stderr] 2 | $ crate :: fmt :: format ( r#"extern crate parsimonious; [INFO] [stderr] 3 | use parsimonious::{character,Parser,Uncommitted,Committed,Stateful}; [INFO] [stderr] 4 | use parsimonious::ParseResult::{Done,Continue}; [INFO] [stderr] 5 | #[allow(non_snake_case)] [INFO] [stderr] 6 | fn main() { [INFO] [stderr] 7 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 7.64s [INFO] running `"docker" "inspect" "577c58cbb28da145cd87a0b2c5328445e1ee84747ff41b18c756767b3c758a8a"` [INFO] running `"docker" "rm" "-f" "577c58cbb28da145cd87a0b2c5328445e1ee84747ff41b18c756767b3c758a8a"` [INFO] [stdout] 577c58cbb28da145cd87a0b2c5328445e1ee84747ff41b18c756767b3c758a8a