[INFO] updating cached repository benfrankel/brownian-demo [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/benfrankel/brownian-demo [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/benfrankel/brownian-demo" "work/ex/clippy-test-run/sources/stable/gh/benfrankel/brownian-demo"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/benfrankel/brownian-demo'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/benfrankel/brownian-demo" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/benfrankel/brownian-demo"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/benfrankel/brownian-demo'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 3718938c9841e2bfcb19163de3346633a6a531fe [INFO] sha for GitHub repo benfrankel/brownian-demo: 3718938c9841e2bfcb19163de3346633a6a531fe [INFO] validating manifest of benfrankel/brownian-demo 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 benfrankel/brownian-demo 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 benfrankel/brownian-demo [INFO] finished frobbing benfrankel/brownian-demo [INFO] frobbed toml for benfrankel/brownian-demo written to work/ex/clippy-test-run/sources/stable/gh/benfrankel/brownian-demo/Cargo.toml [INFO] started frobbing benfrankel/brownian-demo [INFO] finished frobbing benfrankel/brownian-demo [INFO] frobbed toml for benfrankel/brownian-demo written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/benfrankel/brownian-demo/Cargo.toml [INFO] crate benfrankel/brownian-demo 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 benfrankel/brownian-demo 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/gh/benfrankel/brownian-demo:/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] 1d3109feafa7e0206f2c5280e27205ae0bad4555cc2648f3ce8a30c3c0a8c970 [INFO] running `"docker" "start" "-a" "1d3109feafa7e0206f2c5280e27205ae0bad4555cc2648f3ce8a30c3c0a8c970"` [INFO] [stderr] Compiling cgmath v0.16.0 [INFO] [stderr] Checking rusttype v0.3.0 [INFO] [stderr] Checking wayland-window v0.13.2 [INFO] [stderr] Checking winit v0.10.0 [INFO] [stderr] Checking piston2d-graphics v0.25.0 [INFO] [stderr] Checking piston2d-opengl_graphics v0.51.0 [INFO] [stderr] Checking glutin v0.12.2 [INFO] [stderr] Checking pistoncore-glutin_window v0.44.0 [INFO] [stderr] Checking brownian_demo v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/model.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | other.velocity = other.velocity - 2.0 * self.mass / mass * dv.dot(dx) / dx.magnitude2() * dx; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `other.velocity -= 2.0 * self.mass / mass * dv.dot(dx) / dx.magnitude2() * dx` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:44:22 [INFO] [stderr] | [INFO] [stderr] 44 | let disk_w = (args.width as f64) * 0.9; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(args.width)` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:45:22 [INFO] [stderr] | [INFO] [stderr] 45 | let disk_h = (args.height as f64) * 0.9; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(args.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:46:23 [INFO] [stderr] | [INFO] [stderr] 46 | let disk_x = ((args.width as f64) - disk_w) / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(args.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:47:23 [INFO] [stderr] | [INFO] [stderr] 47 | let disk_y = ((args.height as f64) - disk_h) / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(args.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:75:32 [INFO] [stderr] | [INFO] [stderr] 75 | fn update(&mut self, args: &UpdateArgs) { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `UpdateArgs` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | / if let &Button::Keyboard(key) = button { [INFO] [stderr] 81 | | match key { [INFO] [stderr] 82 | | Key::Return => self.reset(), [INFO] [stderr] 83 | | Key::Plus | Key::NumPadPlus | Key::Equals => self.pool.speed *= 1.1, [INFO] [stderr] ... | [INFO] [stderr] 86 | | } [INFO] [stderr] 87 | | } [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] 80 | if let Button::Keyboard(key) = *button { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/model.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | other.velocity = other.velocity - 2.0 * self.mass / mass * dv.dot(dx) / dx.magnitude2() * dx; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `other.velocity -= 2.0 * self.mass / mass * dv.dot(dx) / dx.magnitude2() * dx` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:44:22 [INFO] [stderr] | [INFO] [stderr] 44 | let disk_w = (args.width as f64) * 0.9; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(args.width)` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:45:22 [INFO] [stderr] | [INFO] [stderr] 45 | let disk_h = (args.height as f64) * 0.9; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(args.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:46:23 [INFO] [stderr] | [INFO] [stderr] 46 | let disk_x = ((args.width as f64) - disk_w) / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(args.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:47:23 [INFO] [stderr] | [INFO] [stderr] 47 | let disk_y = ((args.height as f64) - disk_h) / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(args.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:75:32 [INFO] [stderr] | [INFO] [stderr] 75 | fn update(&mut self, args: &UpdateArgs) { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `UpdateArgs` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | / if let &Button::Keyboard(key) = button { [INFO] [stderr] 81 | | match key { [INFO] [stderr] 82 | | Key::Return => self.reset(), [INFO] [stderr] 83 | | Key::Plus | Key::NumPadPlus | Key::Equals => self.pool.speed *= 1.1, [INFO] [stderr] ... | [INFO] [stderr] 86 | | } [INFO] [stderr] 87 | | } [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] 80 | if let Button::Keyboard(key) = *button { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 20.72s [INFO] running `"docker" "inspect" "1d3109feafa7e0206f2c5280e27205ae0bad4555cc2648f3ce8a30c3c0a8c970"` [INFO] running `"docker" "rm" "-f" "1d3109feafa7e0206f2c5280e27205ae0bad4555cc2648f3ce8a30c3c0a8c970"` [INFO] [stdout] 1d3109feafa7e0206f2c5280e27205ae0bad4555cc2648f3ce8a30c3c0a8c970