[INFO] updating cached repository quote27/paperboids-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/quote27/paperboids-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/quote27/paperboids-rs" "work/ex/clippy-test-run/sources/stable/gh/quote27/paperboids-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/quote27/paperboids-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/quote27/paperboids-rs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/quote27/paperboids-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/quote27/paperboids-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] b7fc599b9cc4b21c181c2efc7ca36a8d7771cdfd [INFO] sha for GitHub repo quote27/paperboids-rs: b7fc599b9cc4b21c181c2efc7ca36a8d7771cdfd [INFO] validating manifest of quote27/paperboids-rs 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 quote27/paperboids-rs 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 quote27/paperboids-rs [INFO] finished frobbing quote27/paperboids-rs [INFO] frobbed toml for quote27/paperboids-rs written to work/ex/clippy-test-run/sources/stable/gh/quote27/paperboids-rs/Cargo.toml [INFO] started frobbing quote27/paperboids-rs [INFO] finished frobbing quote27/paperboids-rs [INFO] frobbed toml for quote27/paperboids-rs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/quote27/paperboids-rs/Cargo.toml [INFO] crate quote27/paperboids-rs 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 quote27/paperboids-rs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/quote27/paperboids-rs:/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] dcd79d325e1181323684846f4e61eafd0947047c1850d2aeadaa7a7e9d82a8f1 [INFO] running `"docker" "start" "-a" "dcd79d325e1181323684846f4e61eafd0947047c1850d2aeadaa7a7e9d82a8f1"` [INFO] [stderr] Checking tobj v0.1.6 [INFO] [stderr] Checking num_cpus v1.7.0 [INFO] [stderr] Checking num-complex v0.1.41 [INFO] [stderr] Checking semver v0.2.3 [INFO] [stderr] Compiling gl_generator v0.7.0 [INFO] [stderr] Checking num-bigint v0.1.41 [INFO] [stderr] Checking cgmath v0.15.0 [INFO] [stderr] Compiling glfw-sys v3.2.2 [INFO] [stderr] Checking rayon-core v1.3.0 [INFO] [stderr] Checking rayon v0.8.2 [INFO] [stderr] Compiling gl v0.7.0 [INFO] [stderr] Checking num-rational v0.1.40 [INFO] [stderr] Checking num v0.1.41 [INFO] [stderr] Checking glfw v0.20.0 [INFO] [stderr] Checking jpeg-decoder v0.1.13 [INFO] [stderr] Checking image v0.18.0 [INFO] [stderr] Checking paperboids v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shaders.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | ty: ty, [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/shaders.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | s: s, [INFO] [stderr] | ^^^^ help: replace it with: `s` [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/shaders.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | ty: ty, [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/shaders.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | s: s, [INFO] [stderr] | ^^^^ help: replace it with: `s` [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/mesh.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | gl_type: gl_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `gl_type` [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/octree.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | parent: parent, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `parent` [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/octree.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | bbox: bbox, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `bbox` [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/octree.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | bbox: bbox, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `bbox` [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:981:9 [INFO] [stderr] | [INFO] [stderr] 981 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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:982:9 [INFO] [stderr] | [INFO] [stderr] 982 | octree: octree, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `octree` [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:983:9 [INFO] [stderr] | [INFO] [stderr] 983 | look_radius: look_radius, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `look_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/main.rs:984:9 [INFO] [stderr] | [INFO] [stderr] 984 | look_radius2: look_radius2, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `look_radius2` [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:985:9 [INFO] [stderr] | [INFO] [stderr] 985 | collide_radius2: collide_radius2, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `collide_radius2` [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/shaders.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | ty: ty, [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/shaders.rs:51:13 [INFO] [stderr] | [INFO] [stderr] 51 | s: s, [INFO] [stderr] | ^^^^ help: replace it with: `s` [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/shaders.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | ty: ty, [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/shaders.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | s: s, [INFO] [stderr] | ^^^^ help: replace it with: `s` [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/mesh.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | gl_type: gl_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `gl_type` [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/octree.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | parent: parent, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `parent` [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/octree.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | bbox: bbox, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `bbox` [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/octree.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | bbox: bbox, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `bbox` [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:981:9 [INFO] [stderr] | [INFO] [stderr] 981 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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:982:9 [INFO] [stderr] | [INFO] [stderr] 982 | octree: octree, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `octree` [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:983:9 [INFO] [stderr] | [INFO] [stderr] 983 | look_radius: look_radius, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `look_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/main.rs:984:9 [INFO] [stderr] | [INFO] [stderr] 984 | look_radius2: look_radius2, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `look_radius2` [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:985:9 [INFO] [stderr] | [INFO] [stderr] 985 | collide_radius2: collide_radius2, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `collide_radius2` [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: function is never used: `load_file` [INFO] [stderr] --> src/shaders.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | fn load_file(file_src: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `shader_str` [INFO] [stderr] --> src/shaders.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | shader_str: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `from_file` [INFO] [stderr] --> src/shaders.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn from_file(ty: GLenum, file_src: &str) -> Shader { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `delete` [INFO] [stderr] --> src/shaders.rs:160:5 [INFO] [stderr] | [INFO] [stderr] 160 | pub fn delete(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `upload_v4f` [INFO] [stderr] --> src/shaders.rs:182:5 [INFO] [stderr] | [INFO] [stderr] 182 | pub fn upload_v4f(&self, v: &Vector4) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `upload_3f` [INFO] [stderr] --> src/shaders.rs:187:5 [INFO] [stderr] | [INFO] [stderr] 187 | pub fn upload_3f(&self, a: f32, b: f32, c: f32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `upload_1i` [INFO] [stderr] --> src/shaders.rs:197:5 [INFO] [stderr] | [INFO] [stderr] 197 | pub fn upload_1i(&self, a: i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `stats` [INFO] [stderr] --> src/octree.rs:241:5 [INFO] [stderr] | [INFO] [stderr] 241 | pub fn stats(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `gl_error` [INFO] [stderr] --> src/main.rs:681:1 [INFO] [stderr] | [INFO] [stderr] 681 | fn gl_error() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `gen_square_mesh` [INFO] [stderr] --> src/main.rs:721:1 [INFO] [stderr] | [INFO] [stderr] 721 | fn gen_square_mesh() -> Mesh { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shaders.rs:77:30 [INFO] [stderr] | [INFO] [stderr] 77 | let mut status = gl::FALSE as GLint; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::FALSE)` [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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shaders.rs:83:26 [INFO] [stderr] | [INFO] [stderr] 83 | if status != (gl::TRUE as GLint) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::TRUE)` [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/shaders.rs:107:29 [INFO] [stderr] | [INFO] [stderr] 107 | pub fn new(shader_list: &Vec) -> Program { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Shader]` [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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shaders.rs:115:30 [INFO] [stderr] | [INFO] [stderr] 115 | let mut status = gl::FALSE as GLint; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::FALSE)` [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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shaders.rs:121:26 [INFO] [stderr] | [INFO] [stderr] 121 | if status != (gl::TRUE as GLint) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::TRUE)` [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: transmute from a reference to a pointer [INFO] [stderr] --> src/shaders.rs:179:56 [INFO] [stderr] | [INFO] [stderr] 179 | unsafe { gl::UniformMatrix4fv(u, 1, gl::FALSE, mem::transmute(m)); } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `m as *const cgmath::Matrix4 as *const f32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/shaders.rs:184:39 [INFO] [stderr] | [INFO] [stderr] 184 | unsafe { gl::Uniform4fv(u, 4, mem::transmute(v)); } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `v as *const cgmath::Vector4 as *const f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mesh.rs:73:107 [INFO] [stderr] | [INFO] [stderr] 73 | gl::BufferData(gl::ARRAY_BUFFER, (self.vertices.len() * mem::size_of::()) as GLsizeiptr, mem::transmute(&self.vertices[0]), gl::STATIC_DRAW); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.vertices[0] as *const f32 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mesh.rs:77:115 [INFO] [stderr] | [INFO] [stderr] 77 | gl::BufferData(gl::ELEMENT_ARRAY_BUFFER, (self.elements.len() * mem::size_of::()) as GLsizeiptr, mem::transmute(&self.elements[0]), gl::STATIC_DRAW); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.elements[0] as *const u32 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from an integer to a pointer [INFO] [stderr] --> src/mesh.rs:84:124 [INFO] [stderr] | [INFO] [stderr] 84 | gl::VertexAttribPointer(color_a, 3, gl::FLOAT, gl::FALSE, (self.vertex_size * mem::size_of::()) as GLint, mem::transmute(3 * mem::size_of::())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(3 * mem::size_of::()) as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from an integer to a pointer [INFO] [stderr] --> src/mesh.rs:97:100 [INFO] [stderr] | [INFO] [stderr] 97 | gl::VertexAttribPointer(model_inst_a + 1, 4, gl::FLOAT, gl::FALSE, mat4_size as GLint, mem::transmute(vec4_size)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `vec4_size as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from an integer to a pointer [INFO] [stderr] --> src/mesh.rs:99:100 [INFO] [stderr] | [INFO] [stderr] 99 | gl::VertexAttribPointer(model_inst_a + 2, 4, gl::FLOAT, gl::FALSE, mat4_size as GLint, mem::transmute(vec4_size * 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(vec4_size * 2) as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from an integer to a pointer [INFO] [stderr] --> src/mesh.rs:101:100 [INFO] [stderr] | [INFO] [stderr] 101 | gl::VertexAttribPointer(model_inst_a + 3, 4, gl::FLOAT, gl::FALSE, mat4_size as GLint, mem::transmute(vec4_size * 3)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(vec4_size * 3) as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [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/mesh.rs:114:47 [INFO] [stderr] | [INFO] [stderr] 114 | pub fn update_inst(&mut self, model_inst: &Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Matrix4]` [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: transmute from a reference to a pointer [INFO] [stderr] --> src/mesh.rs:120:77 [INFO] [stderr] | [INFO] [stderr] 120 | gl::BufferData(gl::ARRAY_BUFFER, model_inst_size as GLsizeiptr, mem::transmute(&model_inst[0]), gl::STREAM_DRAW); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&model_inst[0] as *const cgmath::Matrix4 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mesh.rs:132:107 [INFO] [stderr] | [INFO] [stderr] 132 | gl::BufferData(gl::ARRAY_BUFFER, (self.vertices.len() * mem::size_of::()) as GLsizeiptr, mem::transmute(&self.vertices[0]), gl::DYNAMIC_DRAW); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.vertices[0] as *const f32 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mesh.rs:143:115 [INFO] [stderr] | [INFO] [stderr] 143 | gl::BufferData(gl::ELEMENT_ARRAY_BUFFER, (self.elements.len() * mem::size_of::()) as GLsizeiptr, mem::transmute(&self.elements[0]), gl::STATIC_DRAW); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.elements[0] as *const u32 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/timer.rs:168:9 [INFO] [stderr] | [INFO] [stderr] 168 | write!(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] = 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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/timer.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | write!(f, " {}: {:.4},", k, v); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [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: manual implementation of an assign operation [INFO] [stderr] --> src/aabb.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | self.h = self.h + *trans; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.h += *trans` [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: manual implementation of an assign operation [INFO] [stderr] --> src/aabb.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | self.l = self.l + *trans; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.l += *trans` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/boids.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | self.vel = self.vel + self.acc * dt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.vel += self.acc * dt` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/boids.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | self.vel = self.vel * (max_speed / curr_speed); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.vel *= (max_speed / curr_speed)` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/boids.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | self.vel = self.vel * (min_speed / curr_speed); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.vel *= (min_speed / curr_speed)` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/boids.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | self.pos = self.pos + self.vel * dt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.pos += self.vel * dt` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/octree.rs:95:34 [INFO] [stderr] | [INFO] [stderr] 95 | pub fn update(&mut self, bs: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/octree.rs:101:52 [INFO] [stderr] | [INFO] [stderr] 101 | fn update_recur(&mut self, curr_id: usize, bs: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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/octree.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | / match child_state { [INFO] [stderr] 118 | | OctnodeState::Node => self.update_recur(child_id, bs), [INFO] [stderr] 119 | | _ => { } [INFO] [stderr] 120 | | } [INFO] [stderr] | |_________________________^ help: try this: `if let OctnodeState::Node = child_state { self.update_recur(child_id, bs) }` [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: manual implementation of an assign operation [INFO] [stderr] --> src/octree.rs:123:25 [INFO] [stderr] | [INFO] [stderr] 123 | c = c + o.c; [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `c += o.c` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/octree.rs:124:25 [INFO] [stderr] | [INFO] [stderr] 124 | v = v + o.v; [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `v += o.v` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/octree.rs:129:17 [INFO] [stderr] | [INFO] [stderr] 129 | c = c / (active_children as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `c /= (active_children as f32)` [INFO] [stderr] | [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/octree.rs:129:25 [INFO] [stderr] | [INFO] [stderr] 129 | c = c / (active_children as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(active_children)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/octree.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | v = v / (active_children as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `v /= (active_children as f32)` [INFO] [stderr] | [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/octree.rs:130:25 [INFO] [stderr] | [INFO] [stderr] 130 | v = v / (active_children as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(active_children)` [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/octree.rs:146:34 [INFO] [stderr] | [INFO] [stderr] 146 | pub fn insert(&mut self, bs: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/octree.rs:156:70 [INFO] [stderr] | [INFO] [stderr] 156 | fn insert_recur(&mut self, curr_id: usize, parent_id: usize, bs: &Vec, boid_id: usize, bbox: &AABB, recur: usize) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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: the function has a cyclomatic complexity of 58 [INFO] [stderr] --> src/main.rs:58:1 [INFO] [stderr] | [INFO] [stderr] 58 | / fn main() { [INFO] [stderr] 59 | | println!("paperboids begin"); [INFO] [stderr] 60 | | let mut glfw = glfw::init(glfw::FAIL_ON_ERRORS).unwrap(); [INFO] [stderr] 61 | | [INFO] [stderr] ... | [INFO] [stderr] 678 | | println!("paperboids end"); [INFO] [stderr] 679 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:104:24 [INFO] [stderr] | [INFO] [stderr] 104 | let mut fly_bbox = world_bounds.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `world_bounds` [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:289:25 [INFO] [stderr] | [INFO] [stderr] 289 | horiz_view_angle = horiz_view_angle + Deg(2.0 * xoff); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `horiz_view_angle += Deg(2.0 * xoff)` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:294:25 [INFO] [stderr] | [INFO] [stderr] 294 | vert_view_height = vert_view_height + 0.5 * (world_bounds.xlen() / 10.0) * yoff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vert_view_height += 0.5 * (world_bounds.xlen() / 10.0) * yoff` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:309:21 [INFO] [stderr] | [INFO] [stderr] 309 | vert_view_height = vert_view_height + 0.5 * (world_bounds.xlen() / 10.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vert_view_height += 0.5 * (world_bounds.xlen() / 10.0)` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:313:21 [INFO] [stderr] | [INFO] [stderr] 313 | vert_view_height = vert_view_height - 0.5 * (world_bounds.xlen() / 10.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vert_view_height -= 0.5 * (world_bounds.xlen() / 10.0)` [INFO] [stderr] | [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: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:320:60 [INFO] [stderr] | [INFO] [stderr] 320 | let msmi: &mut Vec> = mem::transmute(&*shared_model_inst.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(&*shared_model_inst.clone() as *const std::vec::Vec> as *mut std::vec::Vec>)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:321:51 [INFO] [stderr] | [INFO] [stderr] 321 | let mbs: &mut Vec = mem::transmute(&*shared_bs.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(&*shared_bs.clone() as *const std::vec::Vec as *mut std::vec::Vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:340:55 [INFO] [stderr] | [INFO] [stderr] 340 | let mbs: &mut Vec = mem::transmute(&*shared_bs.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(&*shared_bs.clone() as *const std::vec::Vec as *mut std::vec::Vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:341:64 [INFO] [stderr] | [INFO] [stderr] 341 | let msmi: &mut Vec> = mem::transmute(&*shared_model_inst.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(&*shared_model_inst.clone() as *const std::vec::Vec> as *mut std::vec::Vec>)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:394:52 [INFO] [stderr] | [INFO] [stderr] 394 | let octree: &mut Octree = unsafe { mem::transmute(&*shared_octree) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(&*shared_octree as *const octree::Octree as *mut octree::Octree)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:443:48 [INFO] [stderr] | [INFO] [stderr] 443 | let m: &mut Matrix4 = mem::transmute(m); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `&mut *(m as *const cgmath::Matrix4 as *mut cgmath::Matrix4)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:481:33 [INFO] [stderr] | [INFO] [stderr] 481 | rules[0] = rules[0] * weights[0]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rules[0] *= weights[0]` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:511:33 [INFO] [stderr] | [INFO] [stderr] 511 | acc = acc + r; [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `acc += r` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:516:29 [INFO] [stderr] | [INFO] [stderr] 516 | acc = acc + *r; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `acc += *r` [INFO] [stderr] | [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: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:522:48 [INFO] [stderr] | [INFO] [stderr] 522 | let b: &mut Boid = mem::transmute(b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `&mut *(b as *const boids::Boid as *mut boids::Boid)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:527:21 [INFO] [stderr] | [INFO] [stderr] 527 | thread_tx.send(0u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:532:17 [INFO] [stderr] | [INFO] [stderr] 532 | rx.recv(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:559:48 [INFO] [stderr] | [INFO] [stderr] 559 | let b: &mut Boid = mem::transmute(b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `&mut *(b as *const boids::Boid as *mut boids::Boid)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:563:56 [INFO] [stderr] | [INFO] [stderr] 563 | let m: &mut Matrix4 = mem::transmute(m); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `&mut *(m as *const cgmath::Matrix4 as *mut cgmath::Matrix4)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:568:21 [INFO] [stderr] | [INFO] [stderr] 568 | thread_tx.send(0u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:573:17 [INFO] [stderr] | [INFO] [stderr] 573 | rx.recv(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `bs` [INFO] [stderr] --> src/main.rs:580:26 [INFO] [stderr] | [INFO] [stderr] 580 | for i in 0..bs.len() { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 580 | for (i, ) in bs.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [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/main.rs:910:19 [INFO] [stderr] | [INFO] [stderr] 910 | fn calc_rules(bs: &Vec, bi: usize, look_radius2: f32, collide_radius2: f32) -> (Vector3, Vector3, Vector3) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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: the loop variable `j` is used to index `bs` [INFO] [stderr] --> src/main.rs:918:14 [INFO] [stderr] | [INFO] [stderr] 918 | for j in 0..bs.len() { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 918 | for (j, ) in bs.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:930:13 [INFO] [stderr] | [INFO] [stderr] 930 | r2 = r2 + o.pos; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `r2 += o.pos` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:933:13 [INFO] [stderr] | [INFO] [stderr] 933 | r3 = r3 + o.vel; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `r3 += o.vel` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:938:17 [INFO] [stderr] | [INFO] [stderr] 938 | r1 = r1 - (disp / dist2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `r1 -= (disp / dist2)` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:978:26 [INFO] [stderr] | [INFO] [stderr] 978 | fn calc_rules_octree(bs: &Vec, boid_id: usize, octree: &Octree, look_radius: f32, look_radius2: f32, collide_radius2: f32) -> (Vector3, Vector3, Vector3) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:1050:9 [INFO] [stderr] | [INFO] [stderr] 1050 | tr.r2 = tr.r2 + o.c; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `tr.r2 += o.c` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:1051:9 [INFO] [stderr] | [INFO] [stderr] 1051 | tr.r3 = tr.r3 + o.v; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `tr.r3 += o.v` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:1055:13 [INFO] [stderr] | [INFO] [stderr] 1055 | tr.r1 = tr.r1 - dv / d2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tr.r1 -= dv / d2` [INFO] [stderr] | [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: function is never used: `load_file` [INFO] [stderr] --> src/shaders.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | fn load_file(file_src: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `shader_str` [INFO] [stderr] --> src/shaders.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | shader_str: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `from_file` [INFO] [stderr] --> src/shaders.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn from_file(ty: GLenum, file_src: &str) -> Shader { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `delete` [INFO] [stderr] --> src/shaders.rs:160:5 [INFO] [stderr] | [INFO] [stderr] 160 | pub fn delete(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `upload_v4f` [INFO] [stderr] --> src/shaders.rs:182:5 [INFO] [stderr] | [INFO] [stderr] 182 | pub fn upload_v4f(&self, v: &Vector4) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `upload_3f` [INFO] [stderr] --> src/shaders.rs:187:5 [INFO] [stderr] | [INFO] [stderr] 187 | pub fn upload_3f(&self, a: f32, b: f32, c: f32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `upload_1i` [INFO] [stderr] --> src/shaders.rs:197:5 [INFO] [stderr] | [INFO] [stderr] 197 | pub fn upload_1i(&self, a: i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `stats` [INFO] [stderr] --> src/octree.rs:241:5 [INFO] [stderr] | [INFO] [stderr] 241 | pub fn stats(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `gl_error` [INFO] [stderr] --> src/main.rs:681:1 [INFO] [stderr] | [INFO] [stderr] 681 | fn gl_error() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `gen_square_mesh` [INFO] [stderr] --> src/main.rs:721:1 [INFO] [stderr] | [INFO] [stderr] 721 | fn gen_square_mesh() -> Mesh { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shaders.rs:77:30 [INFO] [stderr] | [INFO] [stderr] 77 | let mut status = gl::FALSE as GLint; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::FALSE)` [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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shaders.rs:83:26 [INFO] [stderr] | [INFO] [stderr] 83 | if status != (gl::TRUE as GLint) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::TRUE)` [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/shaders.rs:107:29 [INFO] [stderr] | [INFO] [stderr] 107 | pub fn new(shader_list: &Vec) -> Program { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Shader]` [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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shaders.rs:115:30 [INFO] [stderr] | [INFO] [stderr] 115 | let mut status = gl::FALSE as GLint; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::FALSE)` [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 u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/shaders.rs:121:26 [INFO] [stderr] | [INFO] [stderr] 121 | if status != (gl::TRUE as GLint) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(gl::TRUE)` [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: transmute from a reference to a pointer [INFO] [stderr] --> src/shaders.rs:179:56 [INFO] [stderr] | [INFO] [stderr] 179 | unsafe { gl::UniformMatrix4fv(u, 1, gl::FALSE, mem::transmute(m)); } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `m as *const cgmath::Matrix4 as *const f32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/shaders.rs:184:39 [INFO] [stderr] | [INFO] [stderr] 184 | unsafe { gl::Uniform4fv(u, 4, mem::transmute(v)); } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `v as *const cgmath::Vector4 as *const f32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mesh.rs:73:107 [INFO] [stderr] | [INFO] [stderr] 73 | gl::BufferData(gl::ARRAY_BUFFER, (self.vertices.len() * mem::size_of::()) as GLsizeiptr, mem::transmute(&self.vertices[0]), gl::STATIC_DRAW); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.vertices[0] as *const f32 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mesh.rs:77:115 [INFO] [stderr] | [INFO] [stderr] 77 | gl::BufferData(gl::ELEMENT_ARRAY_BUFFER, (self.elements.len() * mem::size_of::()) as GLsizeiptr, mem::transmute(&self.elements[0]), gl::STATIC_DRAW); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.elements[0] as *const u32 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from an integer to a pointer [INFO] [stderr] --> src/mesh.rs:84:124 [INFO] [stderr] | [INFO] [stderr] 84 | gl::VertexAttribPointer(color_a, 3, gl::FLOAT, gl::FALSE, (self.vertex_size * mem::size_of::()) as GLint, mem::transmute(3 * mem::size_of::())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(3 * mem::size_of::()) as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from an integer to a pointer [INFO] [stderr] --> src/mesh.rs:97:100 [INFO] [stderr] | [INFO] [stderr] 97 | gl::VertexAttribPointer(model_inst_a + 1, 4, gl::FLOAT, gl::FALSE, mat4_size as GLint, mem::transmute(vec4_size)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `vec4_size as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from an integer to a pointer [INFO] [stderr] --> src/mesh.rs:99:100 [INFO] [stderr] | [INFO] [stderr] 99 | gl::VertexAttribPointer(model_inst_a + 2, 4, gl::FLOAT, gl::FALSE, mat4_size as GLint, mem::transmute(vec4_size * 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(vec4_size * 2) as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from an integer to a pointer [INFO] [stderr] --> src/mesh.rs:101:100 [INFO] [stderr] | [INFO] [stderr] 101 | gl::VertexAttribPointer(model_inst_a + 3, 4, gl::FLOAT, gl::FALSE, mat4_size as GLint, mem::transmute(vec4_size * 3)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(vec4_size * 3) as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [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/mesh.rs:114:47 [INFO] [stderr] | [INFO] [stderr] 114 | pub fn update_inst(&mut self, model_inst: &Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Matrix4]` [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: transmute from a reference to a pointer [INFO] [stderr] --> src/mesh.rs:120:77 [INFO] [stderr] | [INFO] [stderr] 120 | gl::BufferData(gl::ARRAY_BUFFER, model_inst_size as GLsizeiptr, mem::transmute(&model_inst[0]), gl::STREAM_DRAW); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&model_inst[0] as *const cgmath::Matrix4 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mesh.rs:132:107 [INFO] [stderr] | [INFO] [stderr] 132 | gl::BufferData(gl::ARRAY_BUFFER, (self.vertices.len() * mem::size_of::()) as GLsizeiptr, mem::transmute(&self.vertices[0]), gl::DYNAMIC_DRAW); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.vertices[0] as *const f32 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/mesh.rs:143:115 [INFO] [stderr] | [INFO] [stderr] 143 | gl::BufferData(gl::ELEMENT_ARRAY_BUFFER, (self.elements.len() * mem::size_of::()) as GLsizeiptr, mem::transmute(&self.elements[0]), gl::STATIC_DRAW); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.elements[0] as *const u32 as *const std::ffi::c_void` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/timer.rs:168:9 [INFO] [stderr] | [INFO] [stderr] 168 | write!(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] = 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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/timer.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | write!(f, " {}: {:.4},", k, v); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [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: manual implementation of an assign operation [INFO] [stderr] --> src/aabb.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | self.h = self.h + *trans; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.h += *trans` [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: manual implementation of an assign operation [INFO] [stderr] --> src/aabb.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | self.l = self.l + *trans; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.l += *trans` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/boids.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | self.vel = self.vel + self.acc * dt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.vel += self.acc * dt` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/boids.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | self.vel = self.vel * (max_speed / curr_speed); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.vel *= (max_speed / curr_speed)` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/boids.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | self.vel = self.vel * (min_speed / curr_speed); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.vel *= (min_speed / curr_speed)` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/boids.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | self.pos = self.pos + self.vel * dt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.pos += self.vel * dt` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/octree.rs:95:34 [INFO] [stderr] | [INFO] [stderr] 95 | pub fn update(&mut self, bs: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/octree.rs:101:52 [INFO] [stderr] | [INFO] [stderr] 101 | fn update_recur(&mut self, curr_id: usize, bs: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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/octree.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | / match child_state { [INFO] [stderr] 118 | | OctnodeState::Node => self.update_recur(child_id, bs), [INFO] [stderr] 119 | | _ => { } [INFO] [stderr] 120 | | } [INFO] [stderr] | |_________________________^ help: try this: `if let OctnodeState::Node = child_state { self.update_recur(child_id, bs) }` [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: manual implementation of an assign operation [INFO] [stderr] --> src/octree.rs:123:25 [INFO] [stderr] | [INFO] [stderr] 123 | c = c + o.c; [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `c += o.c` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/octree.rs:124:25 [INFO] [stderr] | [INFO] [stderr] 124 | v = v + o.v; [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `v += o.v` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/octree.rs:129:17 [INFO] [stderr] | [INFO] [stderr] 129 | c = c / (active_children as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `c /= (active_children as f32)` [INFO] [stderr] | [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/octree.rs:129:25 [INFO] [stderr] | [INFO] [stderr] 129 | c = c / (active_children as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(active_children)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/octree.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | v = v / (active_children as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `v /= (active_children as f32)` [INFO] [stderr] | [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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/octree.rs:130:25 [INFO] [stderr] | [INFO] [stderr] 130 | v = v / (active_children as f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(active_children)` [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/octree.rs:146:34 [INFO] [stderr] | [INFO] [stderr] 146 | pub fn insert(&mut self, bs: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/octree.rs:156:70 [INFO] [stderr] | [INFO] [stderr] 156 | fn insert_recur(&mut self, curr_id: usize, parent_id: usize, bs: &Vec, boid_id: usize, bbox: &AABB, recur: usize) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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: the function has a cyclomatic complexity of 58 [INFO] [stderr] --> src/main.rs:58:1 [INFO] [stderr] | [INFO] [stderr] 58 | / fn main() { [INFO] [stderr] 59 | | println!("paperboids begin"); [INFO] [stderr] 60 | | let mut glfw = glfw::init(glfw::FAIL_ON_ERRORS).unwrap(); [INFO] [stderr] 61 | | [INFO] [stderr] ... | [INFO] [stderr] 678 | | println!("paperboids end"); [INFO] [stderr] 679 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:104:24 [INFO] [stderr] | [INFO] [stderr] 104 | let mut fly_bbox = world_bounds.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `world_bounds` [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:289:25 [INFO] [stderr] | [INFO] [stderr] 289 | horiz_view_angle = horiz_view_angle + Deg(2.0 * xoff); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `horiz_view_angle += Deg(2.0 * xoff)` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:294:25 [INFO] [stderr] | [INFO] [stderr] 294 | vert_view_height = vert_view_height + 0.5 * (world_bounds.xlen() / 10.0) * yoff; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vert_view_height += 0.5 * (world_bounds.xlen() / 10.0) * yoff` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:309:21 [INFO] [stderr] | [INFO] [stderr] 309 | vert_view_height = vert_view_height + 0.5 * (world_bounds.xlen() / 10.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vert_view_height += 0.5 * (world_bounds.xlen() / 10.0)` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:313:21 [INFO] [stderr] | [INFO] [stderr] 313 | vert_view_height = vert_view_height - 0.5 * (world_bounds.xlen() / 10.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vert_view_height -= 0.5 * (world_bounds.xlen() / 10.0)` [INFO] [stderr] | [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: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:320:60 [INFO] [stderr] | [INFO] [stderr] 320 | let msmi: &mut Vec> = mem::transmute(&*shared_model_inst.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(&*shared_model_inst.clone() as *const std::vec::Vec> as *mut std::vec::Vec>)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:321:51 [INFO] [stderr] | [INFO] [stderr] 321 | let mbs: &mut Vec = mem::transmute(&*shared_bs.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(&*shared_bs.clone() as *const std::vec::Vec as *mut std::vec::Vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:340:55 [INFO] [stderr] | [INFO] [stderr] 340 | let mbs: &mut Vec = mem::transmute(&*shared_bs.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(&*shared_bs.clone() as *const std::vec::Vec as *mut std::vec::Vec)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:341:64 [INFO] [stderr] | [INFO] [stderr] 341 | let msmi: &mut Vec> = mem::transmute(&*shared_model_inst.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(&*shared_model_inst.clone() as *const std::vec::Vec> as *mut std::vec::Vec>)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:394:52 [INFO] [stderr] | [INFO] [stderr] 394 | let octree: &mut Octree = unsafe { mem::transmute(&*shared_octree) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut *(&*shared_octree as *const octree::Octree as *mut octree::Octree)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:443:48 [INFO] [stderr] | [INFO] [stderr] 443 | let m: &mut Matrix4 = mem::transmute(m); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `&mut *(m as *const cgmath::Matrix4 as *mut cgmath::Matrix4)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:481:33 [INFO] [stderr] | [INFO] [stderr] 481 | rules[0] = rules[0] * weights[0]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rules[0] *= weights[0]` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:511:33 [INFO] [stderr] | [INFO] [stderr] 511 | acc = acc + r; [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `acc += r` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:516:29 [INFO] [stderr] | [INFO] [stderr] 516 | acc = acc + *r; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `acc += *r` [INFO] [stderr] | [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: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:522:48 [INFO] [stderr] | [INFO] [stderr] 522 | let b: &mut Boid = mem::transmute(b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `&mut *(b as *const boids::Boid as *mut boids::Boid)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:527:21 [INFO] [stderr] | [INFO] [stderr] 527 | thread_tx.send(0u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:532:17 [INFO] [stderr] | [INFO] [stderr] 532 | rx.recv(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:559:48 [INFO] [stderr] | [INFO] [stderr] 559 | let b: &mut Boid = mem::transmute(b); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `&mut *(b as *const boids::Boid as *mut boids::Boid)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/main.rs:563:56 [INFO] [stderr] | [INFO] [stderr] 563 | let m: &mut Matrix4 = mem::transmute(m); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `&mut *(m as *const cgmath::Matrix4 as *mut cgmath::Matrix4)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:568:21 [INFO] [stderr] | [INFO] [stderr] 568 | thread_tx.send(0u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:573:17 [INFO] [stderr] | [INFO] [stderr] 573 | rx.recv(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `bs` [INFO] [stderr] --> src/main.rs:580:26 [INFO] [stderr] | [INFO] [stderr] 580 | for i in 0..bs.len() { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 580 | for (i, ) in bs.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [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/main.rs:910:19 [INFO] [stderr] | [INFO] [stderr] 910 | fn calc_rules(bs: &Vec, bi: usize, look_radius2: f32, collide_radius2: f32) -> (Vector3, Vector3, Vector3) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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: the loop variable `j` is used to index `bs` [INFO] [stderr] --> src/main.rs:918:14 [INFO] [stderr] | [INFO] [stderr] 918 | for j in 0..bs.len() { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 918 | for (j, ) in bs.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:930:13 [INFO] [stderr] | [INFO] [stderr] 930 | r2 = r2 + o.pos; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `r2 += o.pos` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:933:13 [INFO] [stderr] | [INFO] [stderr] 933 | r3 = r3 + o.vel; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `r3 += o.vel` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:938:17 [INFO] [stderr] | [INFO] [stderr] 938 | r1 = r1 - (disp / dist2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `r1 -= (disp / dist2)` [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:978:26 [INFO] [stderr] | [INFO] [stderr] 978 | fn calc_rules_octree(bs: &Vec, boid_id: usize, octree: &Octree, look_radius: f32, look_radius2: f32, collide_radius2: f32) -> (Vector3, Vector3, Vector3) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Boid]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:1050:9 [INFO] [stderr] | [INFO] [stderr] 1050 | tr.r2 = tr.r2 + o.c; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `tr.r2 += o.c` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:1051:9 [INFO] [stderr] | [INFO] [stderr] 1051 | tr.r3 = tr.r3 + o.v; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `tr.r3 += o.v` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:1055:13 [INFO] [stderr] | [INFO] [stderr] 1055 | tr.r1 = tr.r1 - dv / d2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tr.r1 -= dv / d2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 27.97s [INFO] running `"docker" "inspect" "dcd79d325e1181323684846f4e61eafd0947047c1850d2aeadaa7a7e9d82a8f1"` [INFO] running `"docker" "rm" "-f" "dcd79d325e1181323684846f4e61eafd0947047c1850d2aeadaa7a7e9d82a8f1"` [INFO] [stdout] dcd79d325e1181323684846f4e61eafd0947047c1850d2aeadaa7a7e9d82a8f1