[INFO] updating cached repository Tehforsch/twoxel [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Tehforsch/twoxel [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Tehforsch/twoxel" "work/ex/clippy-test-run/sources/stable/gh/Tehforsch/twoxel"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Tehforsch/twoxel'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Tehforsch/twoxel" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tehforsch/twoxel"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tehforsch/twoxel'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 3cab929a4c1cb7911ec3b72b4fa58a857e74c6ca [INFO] sha for GitHub repo Tehforsch/twoxel: 3cab929a4c1cb7911ec3b72b4fa58a857e74c6ca [INFO] validating manifest of Tehforsch/twoxel 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 Tehforsch/twoxel 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 Tehforsch/twoxel [INFO] finished frobbing Tehforsch/twoxel [INFO] frobbed toml for Tehforsch/twoxel written to work/ex/clippy-test-run/sources/stable/gh/Tehforsch/twoxel/Cargo.toml [INFO] started frobbing Tehforsch/twoxel [INFO] finished frobbing Tehforsch/twoxel [INFO] frobbed toml for Tehforsch/twoxel written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Tehforsch/twoxel/Cargo.toml [INFO] crate Tehforsch/twoxel 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 Tehforsch/twoxel 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/Tehforsch/twoxel:/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] ac1bc2e2993001d7e39ccbd987b9a306eda95c32250c5846960f4b28d053e75c [INFO] running `"docker" "start" "-a" "ac1bc2e2993001d7e39ccbd987b9a306eda95c32250c5846960f4b28d053e75c"` [INFO] [stderr] Checking shared_library v0.1.8 [INFO] [stderr] Compiling phf_generator v0.7.21 [INFO] [stderr] Checking tempfile v2.2.0 [INFO] [stderr] Checking gfx_core v0.6.1 [INFO] [stderr] Checking x11-dl v2.17.2 [INFO] [stderr] Compiling glutin v0.7.4 [INFO] [stderr] Compiling gfx_gl v0.3.1 [INFO] [stderr] Checking png v0.6.2 [INFO] [stderr] Checking fs2 v0.2.5 [INFO] [stderr] Checking osmesa-sys v0.1.2 [INFO] [stderr] Compiling phf_codegen v0.7.21 [INFO] [stderr] Checking memmap v0.4.0 [INFO] [stderr] Checking image v0.12.4 [INFO] [stderr] Compiling target_build_utils v0.3.1 [INFO] [stderr] Checking piston2d-opengl_graphics v0.42.1 [INFO] [stderr] Compiling libloading v0.3.4 [INFO] [stderr] Checking dlib v0.3.1 [INFO] [stderr] Checking wayland-sys v0.7.8 [INFO] [stderr] Checking wayland-client v0.7.8 [INFO] [stderr] Checking wayland-window v0.4.4 [INFO] [stderr] Checking wayland-kbd v0.6.3 [INFO] [stderr] Checking winit v0.5.11 [INFO] [stderr] Checking gfx v0.14.1 [INFO] [stderr] Checking gfx_device_gl v0.13.1 [INFO] [stderr] Checking pistoncore-glutin_window v0.35.1 [INFO] [stderr] Checking piston-gfx_texture v0.22.1 [INFO] [stderr] Checking piston2d-gfx_graphics v0.38.0 [INFO] [stderr] Checking piston_window v0.64.0 [INFO] [stderr] Checking twoxel v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/point.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | Point { x:x, y:y } [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/point.rs:37:22 [INFO] [stderr] | [INFO] [stderr] 37 | Point { x:x, 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/simulation/body.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/simulation/body.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | mass: mass, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mass` [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/simulation/body.rs:38:38 [INFO] [stderr] | [INFO] [stderr] 38 | shape: Shape::Circle(Circle{ pos: pos, radius:radius }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/simulation/body.rs:38:48 [INFO] [stderr] | [INFO] [stderr] 38 | shape: Shape::Circle(Circle{ pos: pos, radius:radius }) [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `radius` [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/simulation/body.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/simulation/body.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | mass: mass, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mass` [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/simulation/collisions.rs:138:21 [INFO] [stderr] | [INFO] [stderr] 138 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/simulation/polygon.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/simulation/polygon.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | vertices: vertices, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `vertices` [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/simulation/polygon.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | offsets: offsets [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `offsets` [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/simulation/mod.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | bodies: bodies, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `bodies` [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/simulation/mod.rs:64:44 [INFO] [stderr] | [INFO] [stderr] 64 | bodies.push(body::get_circle(Point{x: x, y: y}, mass, radius)); [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/simulation/mod.rs:64:50 [INFO] [stderr] | [INFO] [stderr] 64 | bodies.push(body::get_circle(Point{x: x, y: y}, mass, radius)); [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/simulation/mod.rs:80:45 [INFO] [stderr] | [INFO] [stderr] 80 | bodies.push(body::get_polygon(Point{x:x, y:y}, points, mass)); [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/simulation/mod.rs:80:50 [INFO] [stderr] | [INFO] [stderr] 80 | bodies.push(body::get_polygon(Point{x:x, y:y}, points, mass)); [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/render/draw.rs:12:13 [INFO] [stderr] | [INFO] [stderr] 12 | color: color, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `color` [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/main.rs:47:37 [INFO] [stderr] | [INFO] [stderr] 47 | body.pos = point::Point{x:x, y:y}; [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/main.rs:47:42 [INFO] [stderr] | [INFO] [stderr] 47 | body.pos = point::Point{x:x, 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/point.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | Point { x:x, y:y } [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/point.rs:37:22 [INFO] [stderr] | [INFO] [stderr] 37 | Point { x:x, 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/simulation/body.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/simulation/body.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | mass: mass, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mass` [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/simulation/body.rs:38:38 [INFO] [stderr] | [INFO] [stderr] 38 | shape: Shape::Circle(Circle{ pos: pos, radius:radius }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/simulation/body.rs:38:48 [INFO] [stderr] | [INFO] [stderr] 38 | shape: Shape::Circle(Circle{ pos: pos, radius:radius }) [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `radius` [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/simulation/body.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/simulation/body.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | mass: mass, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `mass` [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/simulation/collisions.rs:138:21 [INFO] [stderr] | [INFO] [stderr] 138 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/simulation/polygon.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [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/simulation/polygon.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | vertices: vertices, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `vertices` [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/simulation/polygon.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | offsets: offsets [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `offsets` [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/simulation/mod.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | bodies: bodies, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `bodies` [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/simulation/mod.rs:64:44 [INFO] [stderr] | [INFO] [stderr] 64 | bodies.push(body::get_circle(Point{x: x, y: y}, mass, radius)); [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/simulation/mod.rs:64:50 [INFO] [stderr] | [INFO] [stderr] 64 | bodies.push(body::get_circle(Point{x: x, y: y}, mass, radius)); [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/simulation/mod.rs:80:45 [INFO] [stderr] | [INFO] [stderr] 80 | bodies.push(body::get_polygon(Point{x:x, y:y}, points, mass)); [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/simulation/mod.rs:80:50 [INFO] [stderr] | [INFO] [stderr] 80 | bodies.push(body::get_polygon(Point{x:x, y:y}, points, mass)); [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/render/draw.rs:12:13 [INFO] [stderr] | [INFO] [stderr] 12 | color: color, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `color` [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/main.rs:47:37 [INFO] [stderr] | [INFO] [stderr] 47 | body.pos = point::Point{x:x, y:y}; [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/main.rs:47:42 [INFO] [stderr] | [INFO] [stderr] 47 | body.pos = point::Point{x:x, 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: unneeded return statement [INFO] [stderr] --> src/point.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | / return Point{ [INFO] [stderr] 27 | | x: (self.x + p.x) * 0.5, [INFO] [stderr] 28 | | y: (self.y + p.y) * 0.5 [INFO] [stderr] 29 | | } [INFO] [stderr] | |_________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 26 | Point{ [INFO] [stderr] 27 | x: (self.x + p.x) * 0.5, [INFO] [stderr] 28 | y: (self.y + p.y) * 0.5 [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/point.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | return self / self.norm(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self / self.norm()` [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: unused import: `simulation::Simulation` [INFO] [stderr] --> src/simulation/collisions.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use simulation::Simulation; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/simulation/collisions.rs:126:20 [INFO] [stderr] | [INFO] [stderr] 126 | if (i >= polygon1.vertices.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/simulation/collisions.rs:153:5 [INFO] [stderr] | [INFO] [stderr] 153 | return (projection1[1] - projection2[0]).min(projection2[1] - projection1[0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(projection1[1] - projection2[0]).min(projection2[1] - projection1[0])` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/simulation/mod.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | sim [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/simulation/mod.rs:82:19 [INFO] [stderr] | [INFO] [stderr] 82 | let mut sim = Simulation::new(bodies); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/simulation/collisions.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | _ => None [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/render/mod.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | _ => {} [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `circle1` [INFO] [stderr] --> src/simulation/collisions.rs:105:18 [INFO] [stderr] | [INFO] [stderr] 105 | fn circle_circle(circle1: &Circle, circle2: &Circle) -> Option { [INFO] [stderr] | ^^^^^^^ help: consider using `_circle1` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `circle2` [INFO] [stderr] --> src/simulation/collisions.rs:105:36 [INFO] [stderr] | [INFO] [stderr] 105 | fn circle_circle(circle1: &Circle, circle2: &Circle) -> Option { [INFO] [stderr] | ^^^^^^^ help: consider using `_circle2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/simulation/collisions.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | for i in 1..10 { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `Nothing` [INFO] [stderr] --> src/simulation/collisions.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | Nothing => {} [INFO] [stderr] | ^^^^^^^ help: consider using `_Nothing` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/simulation/mod.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | let mut sim = Simulation::new(bodies); [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: method is never used: `find_collisions` [INFO] [stderr] --> src/simulation/collisions.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn find_collisions(&mut self, bodies: &mut Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [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/simulation/collisions.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | / match collision { [INFO] [stderr] 40 | | Some(c) => { self.collisions.push(c); } [INFO] [stderr] 41 | | None => {} [INFO] [stderr] 42 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(c) = collision { self.collisions.push(c); }` [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] [INFO] [stderr] warning: variable `Nothing` should have a snake case name such as `nothing` [INFO] [stderr] --> src/simulation/collisions.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | Nothing => {} [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/simulation/collisions.rs:125:30 [INFO] [stderr] | [INFO] [stderr] 125 | let normal = edge.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*edge` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/simulation/collisions.rs:129:39 [INFO] [stderr] | [INFO] [stderr] 129 | let reversed_normal = match (polygon1.pos - polygon2.pos) * normal < 0.0 { [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 130 | | true => { normal.clone() } [INFO] [stderr] 131 | | false => { -normal.clone() } [INFO] [stderr] 132 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if (polygon1.pos - polygon2.pos) * normal < 0.0 { normal.clone() } else { -normal.clone() }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/simulation/collisions.rs:130:31 [INFO] [stderr] | [INFO] [stderr] 130 | true => { normal.clone() } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `normal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/simulation/collisions.rs:131:33 [INFO] [stderr] | [INFO] [stderr] 131 | false => { -normal.clone() } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `normal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/simulation/collisions.rs:133:37 [INFO] [stderr] | [INFO] [stderr] 133 | let collision_pos = match collision_normal_is_from_polygon1 { [INFO] [stderr] | _____________________________________^ [INFO] [stderr] 134 | | true => { get_collision_pos(polygon2, reversed_normal) } [INFO] [stderr] 135 | | false => { get_collision_pos(polygon1, -reversed_normal) } [INFO] [stderr] 136 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if collision_normal_is_from_polygon1 { get_collision_pos(polygon2, reversed_normal) } else { get_collision_pos(polygon1, -reversed_normal) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/simulation/collisions.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | polygon.vertices.iter().min_by(|&x, &y| ((*x) * normal).partial_cmp(&((*y) * normal)).unwrap()).unwrap().clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*polygon.vertices.iter().min_by(|&x, &y| ((*x) * normal).partial_cmp(&((*y) * normal)).unwrap()).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/simulation/polygon.rs:50:33 [INFO] [stderr] | [INFO] [stderr] 50 | fn center_of_mass(vertices: &Vec) -> Point { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/simulation/polygon.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | assert_eq!(projection[0], 0.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/simulation/polygon.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | assert_eq!(projection[0], 0.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/simulation/polygon.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | assert_eq!(projection[1], 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/simulation/polygon.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | assert_eq!(projection[1], 1.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] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:60:25 [INFO] [stderr] | [INFO] [stderr] 60 | let x = 300.0 + (i as f64) * 100.0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:68:25 [INFO] [stderr] | [INFO] [stderr] 68 | let x = 300.0 + (i as f64) * 300.0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:76:58 [INFO] [stderr] | [INFO] [stderr] 76 | x: x + radius * (2.0 * f64::consts::PI * (i as f64) / (num_vertices as f64)).cos(), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:76:71 [INFO] [stderr] | [INFO] [stderr] 76 | x: x + radius * (2.0 * f64::consts::PI * (i as f64) / (num_vertices as f64)).cos(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(num_vertices)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:77:58 [INFO] [stderr] | [INFO] [stderr] 77 | y: y + radius * (2.0 * f64::consts::PI * (i as f64) / (num_vertices as f64)).sin() [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:77:71 [INFO] [stderr] | [INFO] [stderr] 77 | y: y + radius * (2.0 * f64::consts::PI * (i as f64) / (num_vertices as f64)).sin() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(num_vertices)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/render/draw.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn polygon(vertices: &Vec, color: Color, context: Context, gl: &mut GlGraphics) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/main.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | / match sim.bodies.get_mut(0) { [INFO] [stderr] 46 | | Some(body) => { [INFO] [stderr] 47 | | body.pos = point::Point{x:x, y:y}; [INFO] [stderr] 48 | | } [INFO] [stderr] 49 | | _ => {} [INFO] [stderr] 50 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 45 | if let Some(body) = sim.bodies.get_mut(0) { [INFO] [stderr] 46 | body.pos = point::Point{x:x, y:y}; [INFO] [stderr] 47 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `twoxel`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/point.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | / return Point{ [INFO] [stderr] 27 | | x: (self.x + p.x) * 0.5, [INFO] [stderr] 28 | | y: (self.y + p.y) * 0.5 [INFO] [stderr] 29 | | } [INFO] [stderr] | |_________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 26 | Point{ [INFO] [stderr] 27 | x: (self.x + p.x) * 0.5, [INFO] [stderr] 28 | y: (self.y + p.y) * 0.5 [INFO] [stderr] 29 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/point.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | return self / self.norm(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self / self.norm()` [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: unused import: `simulation::Simulation` [INFO] [stderr] --> src/simulation/collisions.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use simulation::Simulation; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/simulation/collisions.rs:126:20 [INFO] [stderr] | [INFO] [stderr] 126 | if (i >= polygon1.vertices.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/simulation/collisions.rs:153:5 [INFO] [stderr] | [INFO] [stderr] 153 | return (projection1[1] - projection2[0]).min(projection2[1] - projection1[0]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(projection1[1] - projection2[0]).min(projection2[1] - projection1[0])` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/simulation/mod.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | sim [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/simulation/mod.rs:82:19 [INFO] [stderr] | [INFO] [stderr] 82 | let mut sim = Simulation::new(bodies); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/simulation/collisions.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | _ => None [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/render/mod.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | _ => {} [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `circle1` [INFO] [stderr] --> src/simulation/collisions.rs:105:18 [INFO] [stderr] | [INFO] [stderr] 105 | fn circle_circle(circle1: &Circle, circle2: &Circle) -> Option { [INFO] [stderr] | ^^^^^^^ help: consider using `_circle1` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `circle2` [INFO] [stderr] --> src/simulation/collisions.rs:105:36 [INFO] [stderr] | [INFO] [stderr] 105 | fn circle_circle(circle1: &Circle, circle2: &Circle) -> Option { [INFO] [stderr] | ^^^^^^^ help: consider using `_circle2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/simulation/collisions.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | for i in 1..10 { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `Nothing` [INFO] [stderr] --> src/simulation/collisions.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | Nothing => {} [INFO] [stderr] | ^^^^^^^ help: consider using `_Nothing` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/simulation/mod.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | let mut sim = Simulation::new(bodies); [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: method is never used: `find_collisions` [INFO] [stderr] --> src/simulation/collisions.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn find_collisions(&mut self, bodies: &mut Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [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/simulation/collisions.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | / match collision { [INFO] [stderr] 40 | | Some(c) => { self.collisions.push(c); } [INFO] [stderr] 41 | | None => {} [INFO] [stderr] 42 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(c) = collision { self.collisions.push(c); }` [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] [INFO] [stderr] warning: variable `Nothing` should have a snake case name such as `nothing` [INFO] [stderr] --> src/simulation/collisions.rs:58:25 [INFO] [stderr] | [INFO] [stderr] 58 | Nothing => {} [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/simulation/collisions.rs:125:30 [INFO] [stderr] | [INFO] [stderr] 125 | let normal = edge.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*edge` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/simulation/collisions.rs:129:39 [INFO] [stderr] | [INFO] [stderr] 129 | let reversed_normal = match (polygon1.pos - polygon2.pos) * normal < 0.0 { [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 130 | | true => { normal.clone() } [INFO] [stderr] 131 | | false => { -normal.clone() } [INFO] [stderr] 132 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if (polygon1.pos - polygon2.pos) * normal < 0.0 { normal.clone() } else { -normal.clone() }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/simulation/collisions.rs:130:31 [INFO] [stderr] | [INFO] [stderr] 130 | true => { normal.clone() } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `normal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/simulation/collisions.rs:131:33 [INFO] [stderr] | [INFO] [stderr] 131 | false => { -normal.clone() } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `normal` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/simulation/collisions.rs:133:37 [INFO] [stderr] | [INFO] [stderr] 133 | let collision_pos = match collision_normal_is_from_polygon1 { [INFO] [stderr] | _____________________________________^ [INFO] [stderr] 134 | | true => { get_collision_pos(polygon2, reversed_normal) } [INFO] [stderr] 135 | | false => { get_collision_pos(polygon1, -reversed_normal) } [INFO] [stderr] 136 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if collision_normal_is_from_polygon1 { get_collision_pos(polygon2, reversed_normal) } else { get_collision_pos(polygon1, -reversed_normal) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/simulation/collisions.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | polygon.vertices.iter().min_by(|&x, &y| ((*x) * normal).partial_cmp(&((*y) * normal)).unwrap()).unwrap().clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*polygon.vertices.iter().min_by(|&x, &y| ((*x) * normal).partial_cmp(&((*y) * normal)).unwrap()).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/simulation/polygon.rs:50:33 [INFO] [stderr] | [INFO] [stderr] 50 | fn center_of_mass(vertices: &Vec) -> Point { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:60:25 [INFO] [stderr] | [INFO] [stderr] 60 | let x = 300.0 + (i as f64) * 100.0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:68:25 [INFO] [stderr] | [INFO] [stderr] 68 | let x = 300.0 + (i as f64) * 300.0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:76:58 [INFO] [stderr] | [INFO] [stderr] 76 | x: x + radius * (2.0 * f64::consts::PI * (i as f64) / (num_vertices as f64)).cos(), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:76:71 [INFO] [stderr] | [INFO] [stderr] 76 | x: x + radius * (2.0 * f64::consts::PI * (i as f64) / (num_vertices as f64)).cos(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(num_vertices)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:77:58 [INFO] [stderr] | [INFO] [stderr] 77 | y: y + radius * (2.0 * f64::consts::PI * (i as f64) / (num_vertices as f64)).sin() [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/simulation/mod.rs:77:71 [INFO] [stderr] | [INFO] [stderr] 77 | y: y + radius * (2.0 * f64::consts::PI * (i as f64) / (num_vertices as f64)).sin() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(num_vertices)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/render/draw.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn polygon(vertices: &Vec, color: Color, context: Context, gl: &mut GlGraphics) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Point]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/main.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | / match sim.bodies.get_mut(0) { [INFO] [stderr] 46 | | Some(body) => { [INFO] [stderr] 47 | | body.pos = point::Point{x:x, y:y}; [INFO] [stderr] 48 | | } [INFO] [stderr] 49 | | _ => {} [INFO] [stderr] 50 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 45 | if let Some(body) = sim.bodies.get_mut(0) { [INFO] [stderr] 46 | body.pos = point::Point{x:x, y:y}; [INFO] [stderr] 47 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "ac1bc2e2993001d7e39ccbd987b9a306eda95c32250c5846960f4b28d053e75c"` [INFO] running `"docker" "rm" "-f" "ac1bc2e2993001d7e39ccbd987b9a306eda95c32250c5846960f4b28d053e75c"` [INFO] [stdout] ac1bc2e2993001d7e39ccbd987b9a306eda95c32250c5846960f4b28d053e75c