[INFO] updating cached repository samfoo/trees [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/samfoo/trees [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/samfoo/trees" "work/ex/clippy-test-run/sources/stable/gh/samfoo/trees"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/samfoo/trees'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/samfoo/trees" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/samfoo/trees"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/samfoo/trees'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] e5a1dedf47be273d4cd153ee6281b31dfb8a4c60 [INFO] sha for GitHub repo samfoo/trees: e5a1dedf47be273d4cd153ee6281b31dfb8a4c60 [INFO] validating manifest of samfoo/trees 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 samfoo/trees 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 samfoo/trees [INFO] finished frobbing samfoo/trees [INFO] frobbed toml for samfoo/trees written to work/ex/clippy-test-run/sources/stable/gh/samfoo/trees/Cargo.toml [INFO] started frobbing samfoo/trees [INFO] finished frobbing samfoo/trees [INFO] frobbed toml for samfoo/trees written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/samfoo/trees/Cargo.toml [INFO] crate samfoo/trees has a lockfile. skipping [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 samfoo/trees against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/samfoo/trees:/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] b2c72a693afec019139fecee9e53d7cf9606a288ccab393914f2b8b057193c38 [INFO] running `"docker" "start" "-a" "b2c72a693afec019139fecee9e53d7cf9606a288ccab393914f2b8b057193c38"` [INFO] [stderr] Compiling cairo-rs v0.1.3 [INFO] [stderr] Checking bitflags v0.5.0 [INFO] [stderr] Compiling glib-sys v0.3.4 [INFO] [stderr] Compiling gobject-sys v0.3.4 [INFO] [stderr] Compiling cairo-sys-rs v0.3.4 [INFO] [stderr] Checking num-complex v0.1.38 [INFO] [stderr] Checking ndarray v0.9.1 [INFO] [stderr] Checking glib v0.1.3 [INFO] [stderr] Checking ndarray-rand v0.5.0 [INFO] [stderr] Checking trees v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/tree.rs:58:48 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn new(x: f64, y: f64, r: f64, a: f64, d: f64, s: f64) -> Tree { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/tree.rs:58:56 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn new(x: f64, y: f64, r: f64, a: f64, d: f64, s: f64) -> Tree { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tree.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/tree.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [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/tree.rs:101:25 [INFO] [stderr] | [INFO] [stderr] 101 | x: x, y: y, angle: a, radius: r, iteration: 0, diminish: self.diminish, size: self.size [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/tree.rs:101:31 [INFO] [stderr] | [INFO] [stderr] 101 | x: x, y: y, angle: a, radius: r, iteration: 0, diminish: self.diminish, size: self.size [INFO] [stderr] | ^^^^ help: replace it with: `y` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/main.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | let r = b.radius; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/tree.rs:58:48 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn new(x: f64, y: f64, r: f64, a: f64, d: f64, s: f64) -> Tree { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/tree.rs:58:56 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn new(x: f64, y: f64, r: f64, a: f64, d: f64, s: f64) -> Tree { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tree.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/tree.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [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/tree.rs:101:25 [INFO] [stderr] | [INFO] [stderr] 101 | x: x, y: y, angle: a, radius: r, iteration: 0, diminish: self.diminish, size: self.size [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/tree.rs:101:31 [INFO] [stderr] | [INFO] [stderr] 101 | x: x, y: y, angle: a, radius: r, iteration: 0, diminish: self.diminish, size: self.size [INFO] [stderr] | ^^^^ help: replace it with: `y` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/main.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | let r = b.radius; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | return Tree { init_x: x, init_y: y, init_radius: r, init_angle: a, iteration: 0, diminish: d, branches: bs, size: s } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Tree { init_x: x, init_y: y, init_radius: r, init_angle: a, iteration: 0, diminish: d, branches: bs, size: s }` [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: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | return Tree { init_x: x, init_y: y, init_radius: r, init_angle: a, iteration: 0, diminish: d, branches: bs, size: s } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Tree { init_x: x, init_y: y, init_radius: r, init_angle: a, iteration: 0, diminish: d, branches: bs, size: s }` [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: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ra` [INFO] [stderr] --> src/tree.rs:97:25 [INFO] [stderr] | [INFO] [stderr] 97 | let ra = 0.3 * PI * rng.next_f64() * l_or_r; [INFO] [stderr] | ^^ help: consider using `_ra` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | let mut output = File::create(output()).unwrap(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tree.rs:96:39 [INFO] [stderr] | [INFO] [stderr] 96 | let l_or_r: f64 = (-1 as i32).pow(rng.next_u32() % 2) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((-1 as i32).pow(rng.next_u32() % 2))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: The function/method `::new` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:123:39 [INFO] [stderr] | [INFO] [stderr] 123 | let mut ctx = cairo::Context::new(&mut surface); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:130:11 [INFO] [stderr] | [INFO] [stderr] 130 | while t.branches.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!t.branches.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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | for ref b in t.branches.iter() { [INFO] [stderr] | ^^^^^ ----------------- help: try: `let b = &t.branches.iter();` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | surface.write_to_png(&mut f); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ra` [INFO] [stderr] --> src/tree.rs:97:25 [INFO] [stderr] | [INFO] [stderr] 97 | let ra = 0.3 * PI * rng.next_f64() * l_or_r; [INFO] [stderr] | ^^ help: consider using `_ra` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | let mut output = File::create(output()).unwrap(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/tree.rs:96:39 [INFO] [stderr] | [INFO] [stderr] 96 | let l_or_r: f64 = (-1 as i32).pow(rng.next_u32() % 2) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((-1 as i32).pow(rng.next_u32() % 2))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: The function/method `::new` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:123:39 [INFO] [stderr] | [INFO] [stderr] 123 | let mut ctx = cairo::Context::new(&mut surface); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:130:11 [INFO] [stderr] | [INFO] [stderr] 130 | while t.branches.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!t.branches.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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | for ref b in t.branches.iter() { [INFO] [stderr] | ^^^^^ ----------------- help: try: `let b = &t.branches.iter();` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | surface.write_to_png(&mut f); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 14.76s [INFO] running `"docker" "inspect" "b2c72a693afec019139fecee9e53d7cf9606a288ccab393914f2b8b057193c38"` [INFO] running `"docker" "rm" "-f" "b2c72a693afec019139fecee9e53d7cf9606a288ccab393914f2b8b057193c38"` [INFO] [stdout] b2c72a693afec019139fecee9e53d7cf9606a288ccab393914f2b8b057193c38