[INFO] crate processing 0.2.0 is already in cache [INFO] extracting crate processing 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/processing/0.2.0 [INFO] extracting crate processing 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/processing/0.2.0 [INFO] validating manifest of processing-0.2.0 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 processing-0.2.0 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 processing-0.2.0 [INFO] finished frobbing processing-0.2.0 [INFO] frobbed toml for processing-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/processing/0.2.0/Cargo.toml [INFO] started frobbing processing-0.2.0 [INFO] finished frobbing processing-0.2.0 [INFO] frobbed toml for processing-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/processing/0.2.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting processing-0.2.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/processing/0.2.0:/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] 6ab83338c4db2666960baf124f67c728d6e699c93896b9d92d48e6d56cac81cd [INFO] running `"docker" "start" "-a" "6ab83338c4db2666960baf124f67c728d6e699c93896b9d92d48e6d56cac81cd"` [INFO] [stderr] Checking smallvec v0.4.5 [INFO] [stderr] Compiling glium v0.18.1 [INFO] [stderr] Checking nalgebra v0.13.1 [INFO] [stderr] Checking wayland-protocols v0.9.10 [INFO] [stderr] Checking wayland-kbd v0.9.1 [INFO] [stderr] Checking wayland-window v0.8.0 [INFO] [stderr] Checking winit v0.8.3 [INFO] [stderr] Checking glutin v0.10.1 [INFO] [stderr] Checking processing v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/screen.rs:120:17 [INFO] [stderr] | [INFO] [stderr] 120 | depthtexture: depthtexture, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `depthtexture` [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/screen.rs:263:13 [INFO] [stderr] | [INFO] [stderr] 263 | FBTexture: FBTexture, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `FBTexture` [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/screen.rs:264:13 [INFO] [stderr] | [INFO] [stderr] 264 | fb_shape_buffer: fb_shape_buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fb_shape_buffer` [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/screen.rs:265:13 [INFO] [stderr] | [INFO] [stderr] 265 | fb_index_buffer: fb_index_buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fb_index_buffer` [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/screen.rs:266:13 [INFO] [stderr] | [INFO] [stderr] 266 | display: display, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `display` [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/screen.rs:267:13 [INFO] [stderr] | [INFO] [stderr] 267 | events_loop: events_loop, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `events_loop` [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/screen.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | draw_params: draw_params, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `draw_params` [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/screen.rs:276:13 [INFO] [stderr] | [INFO] [stderr] 276 | shader_bank: shader_bank, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `shader_bank` [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/screen.rs:278:13 [INFO] [stderr] | [INFO] [stderr] 278 | aspectRatio: aspectRatio, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `aspectRatio` [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/screen.rs:279:13 [INFO] [stderr] | [INFO] [stderr] 279 | preserveAspectRatio: preserveAspectRatio, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `preserveAspectRatio` [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/screen.rs:280:13 [INFO] [stderr] | [INFO] [stderr] 280 | fbSize: fbSize, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fbSize` [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/screen.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | fontFace: fontFace, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `fontFace` [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/screen.rs:284:13 [INFO] [stderr] | [INFO] [stderr] 284 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [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/screen.rs:285:13 [INFO] [stderr] | [INFO] [stderr] 285 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [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/screen.rs:305:13 [INFO] [stderr] | [INFO] [stderr] 305 | GlslVersion: GlslVersion, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `GlslVersion` [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:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | uniforms: uniforms, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `uniforms` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/shapes/ellipse.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | let p = start + diff * i as f64 * step; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/shapes/ellipse.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | let p = start + diff * (numSlices - 1.) * step; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shapes/mould.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | shape: shape, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `shape` [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/shapes/mould.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | shader: shader, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `shader` [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/screen.rs:120:17 [INFO] [stderr] | [INFO] [stderr] 120 | depthtexture: depthtexture, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `depthtexture` [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/screen.rs:263:13 [INFO] [stderr] | [INFO] [stderr] 263 | FBTexture: FBTexture, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `FBTexture` [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/screen.rs:264:13 [INFO] [stderr] | [INFO] [stderr] 264 | fb_shape_buffer: fb_shape_buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fb_shape_buffer` [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/screen.rs:265:13 [INFO] [stderr] | [INFO] [stderr] 265 | fb_index_buffer: fb_index_buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `fb_index_buffer` [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/screen.rs:266:13 [INFO] [stderr] | [INFO] [stderr] 266 | display: display, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `display` [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/screen.rs:267:13 [INFO] [stderr] | [INFO] [stderr] 267 | events_loop: events_loop, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `events_loop` [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/screen.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | draw_params: draw_params, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `draw_params` [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/screen.rs:276:13 [INFO] [stderr] | [INFO] [stderr] 276 | shader_bank: shader_bank, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `shader_bank` [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/screen.rs:278:13 [INFO] [stderr] | [INFO] [stderr] 278 | aspectRatio: aspectRatio, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `aspectRatio` [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/screen.rs:279:13 [INFO] [stderr] | [INFO] [stderr] 279 | preserveAspectRatio: preserveAspectRatio, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `preserveAspectRatio` [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/screen.rs:280:13 [INFO] [stderr] | [INFO] [stderr] 280 | fbSize: fbSize, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `fbSize` [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/screen.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | fontFace: fontFace, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `fontFace` [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/screen.rs:284:13 [INFO] [stderr] | [INFO] [stderr] 284 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [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/screen.rs:285:13 [INFO] [stderr] | [INFO] [stderr] 285 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [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/screen.rs:305:13 [INFO] [stderr] | [INFO] [stderr] 305 | GlslVersion: GlslVersion, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `GlslVersion` [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:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | uniforms: uniforms, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `uniforms` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/shapes/ellipse.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | let p = start + diff * i as f64 * step; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/shapes/ellipse.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | let p = start + diff * (numSlices - 1.) * step; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shapes/mould.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | shape: shape, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `shape` [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/shapes/mould.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | shader: shader, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `shader` [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: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/lib.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/screen.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/screen.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `shapes::ShapeVertex` [INFO] [stderr] --> src/screen.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use shapes::ShapeVertex; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `shaders::ShaderInfo` [INFO] [stderr] --> src/screen.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use shaders::ShaderInfo; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium` [INFO] [stderr] --> src/color.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use glium; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `shapes::ShapeVertex` [INFO] [stderr] --> src/color.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use shapes::ShapeVertex; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium` [INFO] [stderr] --> src/shapes/draw.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use glium; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/shapes/rect.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/shapes/ellipse.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/shapes/point.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/shapes/point.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | / return Point { [INFO] [stderr] 100 | | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 101 | | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 102 | | fill_index_buffer: IndexType::NoBuffer { [INFO] [stderr] ... | [INFO] [stderr] 107 | | }, [INFO] [stderr] 108 | | }; [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] 99 | Point { [INFO] [stderr] 100 | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 101 | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 102 | fill_index_buffer: IndexType::NoBuffer { [INFO] [stderr] 103 | ind: glium::index::NoIndices(glium::index::PrimitiveType::Points), [INFO] [stderr] 104 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/shapes/line.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `load_colors` [INFO] [stderr] --> src/shapes/line.rs:8:45 [INFO] [stderr] | [INFO] [stderr] 8 | use shapes::{Shape, ShapeVertex, IndexType, load_colors}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/shapes/line.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | / return Line { [INFO] [stderr] 148 | | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 149 | | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 150 | | fill_index_buffer: IndexType::NoBuffer { [INFO] [stderr] ... | [INFO] [stderr] 155 | | }, [INFO] [stderr] 156 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 147 | Line { [INFO] [stderr] 148 | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 149 | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 150 | fill_index_buffer: IndexType::NoBuffer { [INFO] [stderr] 151 | ind: glium::index::NoIndices(glium::index::PrimitiveType::LinesList), [INFO] [stderr] 152 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/shapes/triangle.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium` [INFO] [stderr] --> src/shapes/mould.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use glium; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `IndexType` [INFO] [stderr] --> src/shapes/mould.rs:5:21 [INFO] [stderr] | [INFO] [stderr] 5 | use shapes::{Shape, IndexType}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/image.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ImageBuffer` [INFO] [stderr] --> src/image.rs:7:31 [INFO] [stderr] | [INFO] [stderr] 7 | use image_ext::{GenericImage, ImageBuffer}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Key`, `MouseButton` [INFO] [stderr] --> src/input.rs:3:14 [INFO] [stderr] | [INFO] [stderr] 3 | use {Screen, Key, MouseButton}; [INFO] [stderr] | ^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/input.rs:11:21 [INFO] [stderr] | [INFO] [stderr] 11 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:13:21 [INFO] [stderr] | [INFO] [stderr] 13 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:17:17 [INFO] [stderr] | [INFO] [stderr] 17 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:30:33 [INFO] [stderr] | [INFO] [stderr] 30 | return glutin::ControlFlow::Break; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `glutin::ControlFlow::Break` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:32:34 [INFO] [stderr] | [INFO] [stderr] 32 | _ => return glutin::ControlFlow::Continue, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `glutin::ControlFlow::Continue` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:35:26 [INFO] [stderr] | [INFO] [stderr] 35 | _ => return glutin::ControlFlow::Continue, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `glutin::ControlFlow::Continue` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:38:18 [INFO] [stderr] | [INFO] [stderr] 38 | _ => return glutin::ControlFlow::Continue, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `glutin::ControlFlow::Continue` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:47:21 [INFO] [stderr] | [INFO] [stderr] 47 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:65:21 [INFO] [stderr] | [INFO] [stderr] 65 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: `std::collections::HashMap` [INFO] [stderr] --> src/lib.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/screen.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/screen.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `shapes::ShapeVertex` [INFO] [stderr] --> src/screen.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use shapes::ShapeVertex; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `shaders::ShaderInfo` [INFO] [stderr] --> src/screen.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use shaders::ShaderInfo; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium` [INFO] [stderr] --> src/color.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use glium; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `shapes::ShapeVertex` [INFO] [stderr] --> src/color.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use shapes::ShapeVertex; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium` [INFO] [stderr] --> src/shapes/draw.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use glium; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/shapes/rect.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/shapes/ellipse.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/shapes/point.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/shapes/point.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | / return Point { [INFO] [stderr] 100 | | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 101 | | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 102 | | fill_index_buffer: IndexType::NoBuffer { [INFO] [stderr] ... | [INFO] [stderr] 107 | | }, [INFO] [stderr] 108 | | }; [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] 99 | Point { [INFO] [stderr] 100 | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 101 | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 102 | fill_index_buffer: IndexType::NoBuffer { [INFO] [stderr] 103 | ind: glium::index::NoIndices(glium::index::PrimitiveType::Points), [INFO] [stderr] 104 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/shapes/line.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `load_colors` [INFO] [stderr] --> src/shapes/line.rs:8:45 [INFO] [stderr] | [INFO] [stderr] 8 | use shapes::{Shape, ShapeVertex, IndexType, load_colors}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/shapes/line.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | / return Line { [INFO] [stderr] 148 | | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 149 | | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 150 | | fill_index_buffer: IndexType::NoBuffer { [INFO] [stderr] ... | [INFO] [stderr] 155 | | }, [INFO] [stderr] 156 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [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] 147 | Line { [INFO] [stderr] 148 | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 149 | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] 150 | fill_index_buffer: IndexType::NoBuffer { [INFO] [stderr] 151 | ind: glium::index::NoIndices(glium::index::PrimitiveType::LinesList), [INFO] [stderr] 152 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium::uniforms::Uniforms` [INFO] [stderr] --> src/shapes/triangle.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use glium::uniforms::Uniforms; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `glium` [INFO] [stderr] --> src/shapes/mould.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use glium; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `IndexType` [INFO] [stderr] --> src/shapes/mould.rs:5:21 [INFO] [stderr] | [INFO] [stderr] 5 | use shapes::{Shape, IndexType}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/image.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ImageBuffer` [INFO] [stderr] --> src/image.rs:7:31 [INFO] [stderr] | [INFO] [stderr] 7 | use image_ext::{GenericImage, ImageBuffer}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Key`, `MouseButton` [INFO] [stderr] --> src/input.rs:3:14 [INFO] [stderr] | [INFO] [stderr] 3 | use {Screen, Key, MouseButton}; [INFO] [stderr] | ^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/input.rs:11:21 [INFO] [stderr] | [INFO] [stderr] 11 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:13:21 [INFO] [stderr] | [INFO] [stderr] 13 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:17:17 [INFO] [stderr] | [INFO] [stderr] 17 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:30:33 [INFO] [stderr] | [INFO] [stderr] 30 | return glutin::ControlFlow::Break; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `glutin::ControlFlow::Break` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:32:34 [INFO] [stderr] | [INFO] [stderr] 32 | _ => return glutin::ControlFlow::Continue, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `glutin::ControlFlow::Continue` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:35:26 [INFO] [stderr] | [INFO] [stderr] 35 | _ => return glutin::ControlFlow::Continue, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `glutin::ControlFlow::Continue` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:38:18 [INFO] [stderr] | [INFO] [stderr] 38 | _ => return glutin::ControlFlow::Continue, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `glutin::ControlFlow::Continue` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:47:21 [INFO] [stderr] | [INFO] [stderr] 47 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:49:21 [INFO] [stderr] | [INFO] [stderr] 49 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:65:21 [INFO] [stderr] | [INFO] [stderr] 65 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unneeded return statement [INFO] [stderr] --> src/input.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: `GenericImage` [INFO] [stderr] --> src/image.rs:7:17 [INFO] [stderr] | [INFO] [stderr] 7 | use image_ext::{GenericImage, ImageBuffer}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `GenericImage` [INFO] [stderr] --> src/image.rs:7:17 [INFO] [stderr] | [INFO] [stderr] 7 | use image_ext::{GenericImage, ImageBuffer}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `idx` [INFO] [stderr] --> src/shapes/mod.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | let idx = c * 4; [INFO] [stderr] | ^^^ help: consider using `_idx` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ztopleft` [INFO] [stderr] --> src/shapes/rect.rs:56:17 [INFO] [stderr] | [INFO] [stderr] 56 | let mut ztopleft = ztoplefti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^ help: consider using `_ztopleft` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/shapes/rect.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | for x in 1..x1.len() { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `zc` [INFO] [stderr] --> src/shapes/arc.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_zc` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `zc` [INFO] [stderr] --> src/shapes/ellipse.rs:52:17 [INFO] [stderr] | [INFO] [stderr] 52 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_zc` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z` [INFO] [stderr] --> src/shapes/point.rs:44:17 [INFO] [stderr] | [INFO] [stderr] 44 | let mut z: Vec = zi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^ help: consider using `_z` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z1` [INFO] [stderr] --> src/shapes/line.rs:52:17 [INFO] [stderr] | [INFO] [stderr] 52 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z2` [INFO] [stderr] --> src/shapes/line.rs:55:17 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `idx` [INFO] [stderr] --> src/shapes/line.rs:120:25 [INFO] [stderr] | [INFO] [stderr] 120 | let idx = c * 4; [INFO] [stderr] | ^^^ help: consider using `_idx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z1` [INFO] [stderr] --> src/shapes/quad.rs:60:17 [INFO] [stderr] | [INFO] [stderr] 60 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z2` [INFO] [stderr] --> src/shapes/quad.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z3` [INFO] [stderr] --> src/shapes/quad.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z3` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z4` [INFO] [stderr] --> src/shapes/quad.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | let mut z4 = z4i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z4` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/shapes/quad.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | for x in 1..x1.len() { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z1` [INFO] [stderr] --> src/shapes/triangle.rs:55:17 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z2` [INFO] [stderr] --> src/shapes/triangle.rs:58:17 [INFO] [stderr] | [INFO] [stderr] 58 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z3` [INFO] [stderr] --> src/shapes/triangle.rs:61:17 [INFO] [stderr] | [INFO] [stderr] 61 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z3` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/framebuffers.rs:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | let t = glium::draw_parameters::DrawParameters { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `b` [INFO] [stderr] --> src/environment.rs:40:50 [INFO] [stderr] | [INFO] [stderr] 40 | glutin::WindowEvent::Focused(b) => { [INFO] [stderr] | ^ help: consider using `_b` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/screen.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | let mut GlslVersion; [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: unused variable: `idx` [INFO] [stderr] --> src/shapes/mod.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | let idx = c * 4; [INFO] [stderr] | ^^^ help: consider using `_idx` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ztopleft` [INFO] [stderr] --> src/shapes/rect.rs:56:17 [INFO] [stderr] | [INFO] [stderr] 56 | let mut ztopleft = ztoplefti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^ help: consider using `_ztopleft` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/shapes/rect.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | for x in 1..x1.len() { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `zc` [INFO] [stderr] --> src/shapes/arc.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_zc` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `zc` [INFO] [stderr] --> src/shapes/ellipse.rs:52:17 [INFO] [stderr] | [INFO] [stderr] 52 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_zc` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z` [INFO] [stderr] --> src/shapes/point.rs:44:17 [INFO] [stderr] | [INFO] [stderr] 44 | let mut z: Vec = zi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^ help: consider using `_z` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z1` [INFO] [stderr] --> src/shapes/line.rs:52:17 [INFO] [stderr] | [INFO] [stderr] 52 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z2` [INFO] [stderr] --> src/shapes/line.rs:55:17 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `idx` [INFO] [stderr] --> src/shapes/line.rs:120:25 [INFO] [stderr] | [INFO] [stderr] 120 | let idx = c * 4; [INFO] [stderr] | ^^^ help: consider using `_idx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z1` [INFO] [stderr] --> src/shapes/quad.rs:60:17 [INFO] [stderr] | [INFO] [stderr] 60 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z2` [INFO] [stderr] --> src/shapes/quad.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z3` [INFO] [stderr] --> src/shapes/quad.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z3` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z4` [INFO] [stderr] --> src/shapes/quad.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | let mut z4 = z4i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z4` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/shapes/quad.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | for x in 1..x1.len() { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z1` [INFO] [stderr] --> src/shapes/triangle.rs:55:17 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z2` [INFO] [stderr] --> src/shapes/triangle.rs:58:17 [INFO] [stderr] | [INFO] [stderr] 58 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `z3` [INFO] [stderr] --> src/shapes/triangle.rs:61:17 [INFO] [stderr] | [INFO] [stderr] 61 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^ help: consider using `_z3` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/framebuffers.rs:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | let t = glium::draw_parameters::DrawParameters { [INFO] [stderr] | ^ help: consider using `_t` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `b` [INFO] [stderr] --> src/environment.rs:40:50 [INFO] [stderr] | [INFO] [stderr] 40 | glutin::WindowEvent::Focused(b) => { [INFO] [stderr] | ^ help: consider using `_b` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/screen.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | let mut GlslVersion; [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: variable does not need to be mutable [INFO] [stderr] --> src/shapes/rect.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | let mut ztopleft = ztoplefti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/arc.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/ellipse.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/point.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | let mut z: Vec = zi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/line.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/line.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/rect.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | let mut ztopleft = ztoplefti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/quad.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/quad.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/quad.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/quad.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | let mut z4 = z4i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/arc.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/triangle.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/triangle.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/triangle.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/ellipse.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/point.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | let mut z: Vec = zi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/line.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/line.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/image.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | let mut data = vec![0f32; self.fbSize[0] as usize * self.fbSize[1] as usize * 4 * 4]; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/quad.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/quad.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/quad.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/quad.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | let mut z4 = z4i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/triangle.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/triangle.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/shapes/triangle.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `DrawType` [INFO] [stderr] --> src/shaders.rs:63:1 [INFO] [stderr] | [INFO] [stderr] 63 | enum DrawType { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `GL_TEXTURE_MAX_ANISOTROPY_EXT` [INFO] [stderr] --> src/textures.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | const GL_TEXTURE_MAX_ANISOTROPY_EXT: u32 = 0x84FE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `bgCol` [INFO] [stderr] --> src/lib.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | bgCol: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `tintCol` [INFO] [stderr] --> src/lib.rs:99:5 [INFO] [stderr] | [INFO] [stderr] 99 | tintCol: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `drawTexture` [INFO] [stderr] --> src/lib.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | drawTexture: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `strokeWeight` [INFO] [stderr] --> src/lib.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | strokeWeight: f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `fontFace` [INFO] [stderr] --> src/lib.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | fontFace: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `textSize` [INFO] [stderr] --> src/lib.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | textSize: f32, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `left` [INFO] [stderr] --> src/lib.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | left: f32, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `right` [INFO] [stderr] --> src/lib.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | right: f32, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `top` [INFO] [stderr] --> src/lib.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | top: f32, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `bottom` [INFO] [stderr] --> src/lib.rs:113:5 [INFO] [stderr] | [INFO] [stderr] 113 | bottom: f32, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `title` [INFO] [stderr] --> src/lib.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | title: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `fontsInitialized` [INFO] [stderr] --> src/lib.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | fontsInitialized: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `CurrTexture` [INFO] [stderr] --> src/lib.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | CurrTexture: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `drew_points` [INFO] [stderr] --> src/lib.rs:130:5 [INFO] [stderr] | [INFO] [stderr] 130 | drew_points: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/image.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | let mut data = vec![0f32; self.fbSize[0] as usize * self.fbSize[1] as usize * 4 * 4]; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable `preserveAspectRatio` should have a snake case name such as `preserve_aspect_ratio` [INFO] [stderr] --> src/screen.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | preserveAspectRatio: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/screen.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / let window; [INFO] [stderr] 34 | | if fullscreen { [INFO] [stderr] 35 | | let m = events_loop.get_primary_monitor(); [INFO] [stderr] 36 | | let wh = m.get_dimensions(); [INFO] [stderr] ... | [INFO] [stderr] 49 | | .with_dimensions(w, h); [INFO] [stderr] 50 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 33 | let window = if fullscreen { ..; glutin::WindowBuilder::new() [INFO] [stderr] 34 | .with_title("Processing-rs") [INFO] [stderr] 35 | .with_visibility(true) [INFO] [stderr] 36 | .with_fullscreen(Some(m)) [INFO] [stderr] 37 | .with_decorations(false) [INFO] [stderr] 38 | .with_dimensions(w, h) } else { glutin::WindowBuilder::new() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: variable `GlslVersion` should have a snake case name such as `glsl_version` [INFO] [stderr] --> src/screen.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | let mut GlslVersion; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `aspectRatio` should have a snake case name such as `aspect_ratio` [INFO] [stderr] --> src/screen.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | let aspectRatio = w as f32 / h as f32; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `fbSize` should have a snake case name such as `fb_size` [INFO] [stderr] --> src/screen.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | let fbSize = vec![w, h]; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `FBTexture` should have a snake case name such as `fbtexture` [INFO] [stderr] --> src/screen.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | let FBTexture = glium::texture::Texture2d::empty_with_format( [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `FBTexture` should have a snake case name such as `fbtexture` [INFO] [stderr] --> src/screen.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | let FBTexture = unsafe { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `fontFace` should have a snake case name such as `font_face` [INFO] [stderr] --> src/screen.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | let mut fontFace = "".to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^ [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/screen.rs:336:46 [INFO] [stderr] | [INFO] [stderr] 336 | self.events_loop.poll_events(|event| match event { [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 337 | | glutin::Event::WindowEvent { event, .. } => { [INFO] [stderr] 338 | | match event { [INFO] [stderr] 339 | | glutin::WindowEvent::Closed => panic!("need a smoother way to quit..."), [INFO] [stderr] ... | [INFO] [stderr] 369 | | _ => (), [INFO] [stderr] 370 | | }); [INFO] [stderr] | |_________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 336 | self.events_loop.poll_events(|event| if let glutin::Event::WindowEvent { event, .. } = event { [INFO] [stderr] 337 | match event { [INFO] [stderr] 338 | glutin::WindowEvent::Closed => panic!("need a smoother way to quit..."), [INFO] [stderr] 339 | glutin::WindowEvent::KeyboardInput { input, .. } [INFO] [stderr] 340 | if glutin::ElementState::Pressed == input.state => { [INFO] [stderr] 341 | match input.virtual_keycode { [INFO] [stderr] ... [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/screen.rs:342:25 [INFO] [stderr] | [INFO] [stderr] 342 | / match input.virtual_keycode { [INFO] [stderr] 343 | | Some(b) => { [INFO] [stderr] 344 | | kp = Some(b); [INFO] [stderr] 345 | | } [INFO] [stderr] 346 | | _ => (), [INFO] [stderr] 347 | | } [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] 342 | if let Some(b) = input.virtual_keycode { [INFO] [stderr] 343 | kp = Some(b); [INFO] [stderr] 344 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variable `GlslVersion` should have a snake case name such as `glsl_version` [INFO] [stderr] --> src/screen.rs:394:47 [INFO] [stderr] | [INFO] [stderr] 394 | pub fn init_shaders(display: &glium::Display, GlslVersion: &str) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:398:17 [INFO] [stderr] | [INFO] [stderr] 398 | let vshBS = " [INFO] [stderr] | _________________^ [INFO] [stderr] 399 | | #version " [INFO] [stderr] 400 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `vshBS` should have a snake case name such as `vsh_bs` [INFO] [stderr] --> src/screen.rs:398:9 [INFO] [stderr] | [INFO] [stderr] 398 | let vshBS = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:418:17 [INFO] [stderr] | [INFO] [stderr] 418 | let fshBS = " [INFO] [stderr] | _________________^ [INFO] [stderr] 419 | | #version " [INFO] [stderr] 420 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `fshBS` should have a snake case name such as `fsh_bs` [INFO] [stderr] --> src/screen.rs:418:9 [INFO] [stderr] | [INFO] [stderr] 418 | let fshBS = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:449:17 [INFO] [stderr] | [INFO] [stderr] 449 | let vshTS = " [INFO] [stderr] | _________________^ [INFO] [stderr] 450 | | #version " [INFO] [stderr] 451 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `vshTS` should have a snake case name such as `vsh_ts` [INFO] [stderr] --> src/screen.rs:449:9 [INFO] [stderr] | [INFO] [stderr] 449 | let vshTS = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:473:17 [INFO] [stderr] | [INFO] [stderr] 473 | let fshTS = " [INFO] [stderr] | _________________^ [INFO] [stderr] 474 | | #version " [INFO] [stderr] 475 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `fshTS` should have a snake case name such as `fsh_ts` [INFO] [stderr] --> src/screen.rs:473:9 [INFO] [stderr] | [INFO] [stderr] 473 | let fshTS = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:508:17 [INFO] [stderr] | [INFO] [stderr] 508 | let vshFD = " [INFO] [stderr] | _________________^ [INFO] [stderr] 509 | | #version " [INFO] [stderr] 510 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `vshFD` should have a snake case name such as `vsh_fd` [INFO] [stderr] --> src/screen.rs:508:9 [INFO] [stderr] | [INFO] [stderr] 508 | let vshFD = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:529:17 [INFO] [stderr] | [INFO] [stderr] 529 | let fshFD = " [INFO] [stderr] | _________________^ [INFO] [stderr] 530 | | #version " [INFO] [stderr] 531 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `fshFD` should have a snake case name such as `fsh_fd` [INFO] [stderr] --> src/screen.rs:529:9 [INFO] [stderr] | [INFO] [stderr] 529 | let fshFD = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:599:18 [INFO] [stderr] | [INFO] [stderr] 599 | let vshDFB = " [INFO] [stderr] | __________________^ [INFO] [stderr] 600 | | #version " [INFO] [stderr] 601 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `vshDFB` should have a snake case name such as `vsh_dfb` [INFO] [stderr] --> src/screen.rs:599:9 [INFO] [stderr] | [INFO] [stderr] 599 | let vshDFB = " [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:617:18 [INFO] [stderr] | [INFO] [stderr] 617 | let fshDFB = " [INFO] [stderr] | __________________^ [INFO] [stderr] 618 | | #version " [INFO] [stderr] 619 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `fshDFB` should have a snake case name such as `fsh_dfb` [INFO] [stderr] --> src/screen.rs:617:9 [INFO] [stderr] | [INFO] [stderr] 617 | let fshDFB = " [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `ShaderIdx` should have a snake case name such as `shader_idx` [INFO] [stderr] --> src/shaders.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | ShaderIdx: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `fragFilename` should have a snake case name such as `frag_filename` [INFO] [stderr] --> src/shaders.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | fragFilename: &str, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/shaders.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | ff.flush(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: variable `whichShader` should have a snake case name such as `which_shader` [INFO] [stderr] --> src/shaders.rs:227:43 [INFO] [stderr] | [INFO] [stderr] 227 | pub fn shader(&mut self, whichShader: &ShaderInfo) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `totalContents` should have a snake case name such as `total_contents` [INFO] [stderr] --> src/shaders.rs:244:9 [INFO] [stderr] | [INFO] [stderr] 244 | let mut totalContents: Vec = Vec::with_capacity(1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `DrawType` [INFO] [stderr] --> src/shaders.rs:63:1 [INFO] [stderr] | [INFO] [stderr] 63 | enum DrawType { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method `colorMode` should have a snake case name such as `color_mode` [INFO] [stderr] --> src/color.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / pub fn colorMode(&mut self, mode: &str) { [INFO] [stderr] 17 | | self.cMode = mode.to_owned(); [INFO] [stderr] 18 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `GL_TEXTURE_MAX_ANISOTROPY_EXT` [INFO] [stderr] --> src/textures.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | const GL_TEXTURE_MAX_ANISOTROPY_EXT: u32 = 0x84FE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `bgCol` [INFO] [stderr] --> src/lib.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | bgCol: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `tintCol` [INFO] [stderr] --> src/lib.rs:99:5 [INFO] [stderr] | [INFO] [stderr] 99 | tintCol: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `drawTexture` [INFO] [stderr] --> src/lib.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | drawTexture: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `strokeWeight` [INFO] [stderr] --> src/lib.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | strokeWeight: f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `fontFace` [INFO] [stderr] --> src/lib.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | fontFace: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `textSize` [INFO] [stderr] --> src/lib.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | textSize: f32, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `left` [INFO] [stderr] --> src/lib.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | left: f32, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `right` [INFO] [stderr] --> src/lib.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | right: f32, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `top` [INFO] [stderr] --> src/lib.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | top: f32, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `bottom` [INFO] [stderr] --> src/lib.rs:113:5 [INFO] [stderr] | [INFO] [stderr] 113 | bottom: f32, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `title` [INFO] [stderr] --> src/lib.rs:115:5 [INFO] [stderr] | [INFO] [stderr] 115 | title: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `fontsInitialized` [INFO] [stderr] --> src/lib.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | fontsInitialized: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `CurrTexture` [INFO] [stderr] --> src/lib.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | CurrTexture: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `drew_points` [INFO] [stderr] --> src/lib.rs:130:5 [INFO] [stderr] | [INFO] [stderr] 130 | drew_points: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/color.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | if self.fillStuff == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.fillStuff` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/color.rs:60:12 [INFO] [stderr] | [INFO] [stderr] 60 | if self.strokeStuff == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.strokeStuff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:18:17 [INFO] [stderr] | [INFO] [stderr] 18 | / match *shape.fill_indices() { [INFO] [stderr] 19 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 20 | | framebuffer [INFO] [stderr] 21 | | .draw(*shape.fill_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 18 | match *(*shape.fill_indices()) { [INFO] [stderr] 19 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 20 | framebuffer [INFO] [stderr] 21 | .draw(*shape.fill_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] 22 | .unwrap() [INFO] [stderr] 23 | } [INFO] [stderr] ... [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/shapes/draw.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | / match *shape.stroke_indices() { [INFO] [stderr] 33 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 34 | | framebuffer [INFO] [stderr] 35 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 38 | | _ => {} [INFO] [stderr] 39 | | } [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] 32 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 33 | framebuffer [INFO] [stderr] 34 | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] 35 | .unwrap() [INFO] [stderr] 36 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | / match *shape.stroke_indices() { [INFO] [stderr] 33 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 34 | | framebuffer [INFO] [stderr] 35 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 38 | | _ => {} [INFO] [stderr] 39 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 32 | match *(*shape.stroke_indices()) { [INFO] [stderr] 33 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:45:17 [INFO] [stderr] | [INFO] [stderr] 45 | / match *shape.fill_indices() { [INFO] [stderr] 46 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 47 | | framebuffer [INFO] [stderr] 48 | | .draw(*shape.fill_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 55 | | } [INFO] [stderr] 56 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 45 | match *(*shape.fill_indices()) { [INFO] [stderr] 46 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 47 | framebuffer [INFO] [stderr] 48 | .draw(*shape.fill_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] 49 | .unwrap() [INFO] [stderr] 50 | } [INFO] [stderr] ... [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/shapes/draw.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | / match *shape.stroke_indices() { [INFO] [stderr] 60 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 61 | | framebuffer [INFO] [stderr] 62 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 65 | | _ => {} [INFO] [stderr] 66 | | } [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] 59 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 60 | framebuffer [INFO] [stderr] 61 | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] 62 | .unwrap() [INFO] [stderr] 63 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | / match *shape.stroke_indices() { [INFO] [stderr] 60 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 61 | | framebuffer [INFO] [stderr] 62 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 65 | | _ => {} [INFO] [stderr] 66 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 59 | match *(*shape.stroke_indices()) { [INFO] [stderr] 60 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | / match *shape.fill_indices() { [INFO] [stderr] 85 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 86 | | framebuffer [INFO] [stderr] 87 | | .draw(*shape.fill_buffer(), ib, prog, uniforms, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 94 | | } [INFO] [stderr] 95 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 84 | match *(*shape.fill_indices()) { [INFO] [stderr] 85 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 86 | framebuffer [INFO] [stderr] 87 | .draw(*shape.fill_buffer(), ib, prog, uniforms, &self.draw_params) [INFO] [stderr] 88 | .unwrap() [INFO] [stderr] 89 | } [INFO] [stderr] ... [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/shapes/draw.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | / match *shape.stroke_indices() { [INFO] [stderr] 99 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 100 | | framebuffer [INFO] [stderr] 101 | | .draw( [INFO] [stderr] ... | [INFO] [stderr] 110 | | _ => {} [INFO] [stderr] 111 | | } [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] 98 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 99 | framebuffer [INFO] [stderr] 100 | .draw( [INFO] [stderr] 101 | *shape.stroke_buffer(), [INFO] [stderr] 102 | ib, [INFO] [stderr] 103 | &prog, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | / match *shape.stroke_indices() { [INFO] [stderr] 99 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 100 | | framebuffer [INFO] [stderr] 101 | | .draw( [INFO] [stderr] ... | [INFO] [stderr] 110 | | _ => {} [INFO] [stderr] 111 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 98 | match *(*shape.stroke_indices()) { [INFO] [stderr] 99 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variable `newWeight` should have a snake case name such as `new_weight` [INFO] [stderr] --> src/shapes/draw.rs:210:37 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn stroke_weight(&mut self, newWeight: f32) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `preserveAspectRatio` should have a snake case name such as `preserve_aspect_ratio` [INFO] [stderr] --> src/screen.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | preserveAspectRatio: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/screen.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / let window; [INFO] [stderr] 34 | | if fullscreen { [INFO] [stderr] 35 | | let m = events_loop.get_primary_monitor(); [INFO] [stderr] 36 | | let wh = m.get_dimensions(); [INFO] [stderr] ... | [INFO] [stderr] 49 | | .with_dimensions(w, h); [INFO] [stderr] 50 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 33 | let window = if fullscreen { ..; glutin::WindowBuilder::new() [INFO] [stderr] 34 | .with_title("Processing-rs") [INFO] [stderr] 35 | .with_visibility(true) [INFO] [stderr] 36 | .with_fullscreen(Some(m)) [INFO] [stderr] 37 | .with_decorations(false) [INFO] [stderr] 38 | .with_dimensions(w, h) } else { glutin::WindowBuilder::new() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: variable `GlslVersion` should have a snake case name such as `glsl_version` [INFO] [stderr] --> src/screen.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | let mut GlslVersion; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/rect.rs:54:28 [INFO] [stderr] | [INFO] [stderr] 54 | let mut xtopleft = xtoplefti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `xtoplefti.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/rect.rs:55:28 [INFO] [stderr] | [INFO] [stderr] 55 | let mut ytopleft = ytoplefti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `ytoplefti.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/rect.rs:56:28 [INFO] [stderr] | [INFO] [stderr] 56 | let mut ztopleft = ztoplefti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `ztoplefti.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: variable `aspectRatio` should have a snake case name such as `aspect_ratio` [INFO] [stderr] --> src/screen.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | let aspectRatio = w as f32 / h as f32; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/rect.rs:57:25 [INFO] [stderr] | [INFO] [stderr] 57 | let mut width = widthi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `widthi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: variable `fbSize` should have a snake case name such as `fb_size` [INFO] [stderr] --> src/screen.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | let fbSize = vec![w, h]; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/rect.rs:58:26 [INFO] [stderr] | [INFO] [stderr] 58 | let mut height = heighti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `heighti.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] warning: variable `FBTexture` should have a snake case name such as `fbtexture` [INFO] [stderr] --> src/screen.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | let FBTexture = glium::texture::Texture2d::empty_with_format( [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] --> src/shapes/rect.rs:60:42 [INFO] [stderr] | [INFO] [stderr] 60 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(screen.aspectRatio - 1f32).abs() < error` [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/shapes/rect.rs:60:42 [INFO] [stderr] | [INFO] [stderr] 60 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/rect.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | xtopleft[i] = xtopleft[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `xtopleft[i] /= screen.aspectRatio as f64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/rect.rs:63:49 [INFO] [stderr] | [INFO] [stderr] 63 | xtopleft[i] = xtopleft[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/rect.rs:64:21 [INFO] [stderr] | [INFO] [stderr] 64 | width[i] = width[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `width[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/rect.rs:64:43 [INFO] [stderr] | [INFO] [stderr] 64 | width[i] = width[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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: variable `FBTexture` should have a snake case name such as `fbtexture` [INFO] [stderr] --> src/screen.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | let FBTexture = unsafe { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/rect.rs:68:21 [INFO] [stderr] | [INFO] [stderr] 68 | ytopleft[i] = ytopleft[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ytopleft[i] *= screen.aspectRatio as f64` [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: variable `fontFace` should have a snake case name such as `font_face` [INFO] [stderr] --> src/screen.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | let mut fontFace = "".to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/rect.rs:68:49 [INFO] [stderr] | [INFO] [stderr] 68 | ytopleft[i] = ytopleft[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/rect.rs:69:21 [INFO] [stderr] | [INFO] [stderr] 69 | height[i] = height[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `height[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/rect.rs:69:45 [INFO] [stderr] | [INFO] [stderr] 69 | height[i] = height[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/shapes/rect.rs:84:48 [INFO] [stderr] | [INFO] [stderr] 84 | } else if screen.rectMode == "CORNERS" { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 85 | | // width = width .- xtopleft [INFO] [stderr] 86 | | // height = height .- ytopleft [INFO] [stderr] 87 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/shapes/rect.rs:79:47 [INFO] [stderr] | [INFO] [stderr] 79 | } else if screen.rectMode == "RADIUS" { [INFO] [stderr] | _______________________________________________^ [INFO] [stderr] 80 | | // xtopleft = xtopleft .- width [INFO] [stderr] 81 | | // ytopleft = ytopleft .- height [INFO] [stderr] 82 | | // width = 2 .* width [INFO] [stderr] 83 | | // height = 2 .* height [INFO] [stderr] 84 | | } else if screen.rectMode == "CORNERS" { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/rect.rs:76:17 [INFO] [stderr] | [INFO] [stderr] 76 | xtopleft[i] = xtopleft[i] - width[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `xtopleft[i] -= width[i] / 2.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/shapes/rect.rs:77:17 [INFO] [stderr] | [INFO] [stderr] 77 | ytopleft[i] = ytopleft[i] - height[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ytopleft[i] -= height[i] / 2.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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/screen.rs:336:46 [INFO] [stderr] | [INFO] [stderr] 336 | self.events_loop.poll_events(|event| match event { [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 337 | | glutin::Event::WindowEvent { event, .. } => { [INFO] [stderr] 338 | | match event { [INFO] [stderr] 339 | | glutin::WindowEvent::Closed => panic!("need a smoother way to quit..."), [INFO] [stderr] ... | [INFO] [stderr] 369 | | _ => (), [INFO] [stderr] 370 | | }); [INFO] [stderr] | |_________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 336 | self.events_loop.poll_events(|event| if let glutin::Event::WindowEvent { event, .. } = event { [INFO] [stderr] 337 | match event { [INFO] [stderr] 338 | glutin::WindowEvent::Closed => panic!("need a smoother way to quit..."), [INFO] [stderr] 339 | glutin::WindowEvent::KeyboardInput { input, .. } [INFO] [stderr] 340 | if glutin::ElementState::Pressed == input.state => { [INFO] [stderr] 341 | match input.virtual_keycode { [INFO] [stderr] ... [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/screen.rs:342:25 [INFO] [stderr] | [INFO] [stderr] 342 | / match input.virtual_keycode { [INFO] [stderr] 343 | | Some(b) => { [INFO] [stderr] 344 | | kp = Some(b); [INFO] [stderr] 345 | | } [INFO] [stderr] 346 | | _ => (), [INFO] [stderr] 347 | | } [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] 342 | if let Some(b) = input.virtual_keycode { [INFO] [stderr] 343 | kp = Some(b); [INFO] [stderr] 344 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/shapes/arc.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn new( [INFO] [stderr] 42 | | screen: &Screen, [INFO] [stderr] 43 | | xci: &[f64], [INFO] [stderr] 44 | | yci: &[f64], [INFO] [stderr] ... | [INFO] [stderr] 159 | | } [INFO] [stderr] 160 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: variable `GlslVersion` should have a snake case name such as `glsl_version` [INFO] [stderr] --> src/screen.rs:394:47 [INFO] [stderr] | [INFO] [stderr] 394 | pub fn init_shaders(display: &glium::Display, GlslVersion: &str) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:398:17 [INFO] [stderr] | [INFO] [stderr] 398 | let vshBS = " [INFO] [stderr] | _________________^ [INFO] [stderr] 399 | | #version " [INFO] [stderr] 400 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `vshBS` should have a snake case name such as `vsh_bs` [INFO] [stderr] --> src/screen.rs:398:9 [INFO] [stderr] | [INFO] [stderr] 398 | let vshBS = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:418:17 [INFO] [stderr] | [INFO] [stderr] 418 | let fshBS = " [INFO] [stderr] | _________________^ [INFO] [stderr] 419 | | #version " [INFO] [stderr] 420 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `fshBS` should have a snake case name such as `fsh_bs` [INFO] [stderr] --> src/screen.rs:418:9 [INFO] [stderr] | [INFO] [stderr] 418 | let fshBS = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:449:17 [INFO] [stderr] | [INFO] [stderr] 449 | let vshTS = " [INFO] [stderr] | _________________^ [INFO] [stderr] 450 | | #version " [INFO] [stderr] 451 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `vshTS` should have a snake case name such as `vsh_ts` [INFO] [stderr] --> src/screen.rs:449:9 [INFO] [stderr] | [INFO] [stderr] 449 | let vshTS = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:473:17 [INFO] [stderr] | [INFO] [stderr] 473 | let fshTS = " [INFO] [stderr] | _________________^ [INFO] [stderr] 474 | | #version " [INFO] [stderr] 475 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `fshTS` should have a snake case name such as `fsh_ts` [INFO] [stderr] --> src/screen.rs:473:9 [INFO] [stderr] | [INFO] [stderr] 473 | let fshTS = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:508:17 [INFO] [stderr] | [INFO] [stderr] 508 | let vshFD = " [INFO] [stderr] | _________________^ [INFO] [stderr] 509 | | #version " [INFO] [stderr] 510 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `vshFD` should have a snake case name such as `vsh_fd` [INFO] [stderr] --> src/screen.rs:508:9 [INFO] [stderr] | [INFO] [stderr] 508 | let vshFD = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:529:17 [INFO] [stderr] | [INFO] [stderr] 529 | let fshFD = " [INFO] [stderr] | _________________^ [INFO] [stderr] 530 | | #version " [INFO] [stderr] 531 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `fshFD` should have a snake case name such as `fsh_fd` [INFO] [stderr] --> src/screen.rs:529:9 [INFO] [stderr] | [INFO] [stderr] 529 | let fshFD = " [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:599:18 [INFO] [stderr] | [INFO] [stderr] 599 | let vshDFB = " [INFO] [stderr] | __________________^ [INFO] [stderr] 600 | | #version " [INFO] [stderr] 601 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `vshDFB` should have a snake case name such as `vsh_dfb` [INFO] [stderr] --> src/screen.rs:599:9 [INFO] [stderr] | [INFO] [stderr] 599 | let vshDFB = " [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/screen.rs:617:18 [INFO] [stderr] | [INFO] [stderr] 617 | let fshDFB = " [INFO] [stderr] | __________________^ [INFO] [stderr] 618 | | #version " [INFO] [stderr] 619 | | .to_owned() + &GlslVersion + [INFO] [stderr] | |_______________________-----------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `GlslVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: variable `fshDFB` should have a snake case name such as `fsh_dfb` [INFO] [stderr] --> src/screen.rs:617:9 [INFO] [stderr] | [INFO] [stderr] 617 | let fshDFB = " [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `ShaderIdx` should have a snake case name such as `shader_idx` [INFO] [stderr] --> src/shaders.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | ShaderIdx: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:51:22 [INFO] [stderr] | [INFO] [stderr] 51 | let mut xc = xci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `xci.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:52:22 [INFO] [stderr] | [INFO] [stderr] 52 | let mut yc = yci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `yci.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `zci.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:54:21 [INFO] [stderr] | [INFO] [stderr] 54 | let mut w = wi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `wi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:55:21 [INFO] [stderr] | [INFO] [stderr] 55 | let mut h = hi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `hi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:56:21 [INFO] [stderr] | [INFO] [stderr] 56 | let start = starti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `starti.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:57:20 [INFO] [stderr] | [INFO] [stderr] 57 | let stop = stopi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `stopi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/shapes/arc.rs:58:42 [INFO] [stderr] | [INFO] [stderr] 58 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(screen.aspectRatio - 1f32).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/shapes/arc.rs:58:42 [INFO] [stderr] | [INFO] [stderr] 58 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/arc.rs:61:21 [INFO] [stderr] | [INFO] [stderr] 61 | xc[i] = xc[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `xc[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/arc.rs:61:37 [INFO] [stderr] | [INFO] [stderr] 61 | xc[i] = xc[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/arc.rs:62:21 [INFO] [stderr] | [INFO] [stderr] 62 | w[i] = w[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `w[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/arc.rs:62:35 [INFO] [stderr] | [INFO] [stderr] 62 | w[i] = w[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/arc.rs:66:21 [INFO] [stderr] | [INFO] [stderr] 66 | yc[i] = yc[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `yc[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/arc.rs:66:37 [INFO] [stderr] | [INFO] [stderr] 66 | yc[i] = yc[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/arc.rs:67:21 [INFO] [stderr] | [INFO] [stderr] 67 | h[i] = h[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `h[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/arc.rs:67:35 [INFO] [stderr] | [INFO] [stderr] 67 | h[i] = h[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/shapes/arc.rs:82:51 [INFO] [stderr] | [INFO] [stderr] 82 | } else if screen.ellipseMode == "CORNERS" { [INFO] [stderr] | ___________________________________________________^ [INFO] [stderr] 83 | | // xc = (w .- xc)./2 [INFO] [stderr] 84 | | // yc = (h .- yc)./2 [INFO] [stderr] 85 | | // w = w ./ 2 [INFO] [stderr] 86 | | // h = h ./ 2 [INFO] [stderr] 87 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/shapes/arc.rs:77:50 [INFO] [stderr] | [INFO] [stderr] 77 | } else if screen.ellipseMode == "CORNER" { [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 78 | | // w = w ./ 2 [INFO] [stderr] 79 | | // h = h ./ 2 [INFO] [stderr] 80 | | // xc = xc .+ w [INFO] [stderr] 81 | | // yc = yc .+ h [INFO] [stderr] 82 | | } else if screen.ellipseMode == "CORNERS" { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: variable `fragFilename` should have a snake case name such as `frag_filename` [INFO] [stderr] --> src/shaders.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | fragFilename: &str, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/arc.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | w[i] = w[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `w[i] /= 2.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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/shaders.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | ff.flush(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/arc.rs:75:17 [INFO] [stderr] | [INFO] [stderr] 75 | h[i] = h[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `h[i] /= 2.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: variable `numSlices` should have a snake case name such as `num_slices` [INFO] [stderr] --> src/shapes/arc.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | let numSlices = 200.0 + 2.0; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `whichShader` should have a snake case name such as `which_shader` [INFO] [stderr] --> src/shaders.rs:227:43 [INFO] [stderr] | [INFO] [stderr] 227 | pub fn shader(&mut self, whichShader: &ShaderInfo) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `totalContents` should have a snake case name such as `total_contents` [INFO] [stderr] --> src/shaders.rs:244:9 [INFO] [stderr] | [INFO] [stderr] 244 | let mut totalContents: Vec = Vec::with_capacity(1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `colorMode` should have a snake case name such as `color_mode` [INFO] [stderr] --> src/color.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / pub fn colorMode(&mut self, mode: &str) { [INFO] [stderr] 17 | | self.cMode = mode.to_owned(); [INFO] [stderr] 18 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/color.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | if self.fillStuff == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.fillStuff` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/color.rs:60:12 [INFO] [stderr] | [INFO] [stderr] 60 | if self.strokeStuff == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.strokeStuff` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/ellipse.rs:50:22 [INFO] [stderr] | [INFO] [stderr] 50 | let mut xc = xci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `xci.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/ellipse.rs:51:22 [INFO] [stderr] | [INFO] [stderr] 51 | let mut yc = yci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `yci.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/ellipse.rs:52:22 [INFO] [stderr] | [INFO] [stderr] 52 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `zci.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/ellipse.rs:53:21 [INFO] [stderr] | [INFO] [stderr] 53 | let mut w = wi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `wi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/ellipse.rs:54:21 [INFO] [stderr] | [INFO] [stderr] 54 | let mut h = hi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `hi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/shapes/ellipse.rs:55:42 [INFO] [stderr] | [INFO] [stderr] 55 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(screen.aspectRatio - 1f32).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/shapes/ellipse.rs:55:42 [INFO] [stderr] | [INFO] [stderr] 55 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/ellipse.rs:58:21 [INFO] [stderr] | [INFO] [stderr] 58 | xc[i] = xc[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `xc[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/ellipse.rs:58:37 [INFO] [stderr] | [INFO] [stderr] 58 | xc[i] = xc[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/ellipse.rs:59:21 [INFO] [stderr] | [INFO] [stderr] 59 | w[i] = w[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `w[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/ellipse.rs:59:35 [INFO] [stderr] | [INFO] [stderr] 59 | w[i] = w[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/ellipse.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | yc[i] = yc[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `yc[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/ellipse.rs:63:37 [INFO] [stderr] | [INFO] [stderr] 63 | yc[i] = yc[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/ellipse.rs:64:21 [INFO] [stderr] | [INFO] [stderr] 64 | h[i] = h[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `h[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/ellipse.rs:64:35 [INFO] [stderr] | [INFO] [stderr] 64 | h[i] = h[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/shapes/ellipse.rs:79:51 [INFO] [stderr] | [INFO] [stderr] 79 | } else if screen.ellipseMode == "CORNERS" { [INFO] [stderr] | ___________________________________________________^ [INFO] [stderr] 80 | | // xc = (w .- xc)./2 [INFO] [stderr] 81 | | // yc = (h .- yc)./2 [INFO] [stderr] 82 | | // w = w ./ 2 [INFO] [stderr] 83 | | // h = h ./ 2 [INFO] [stderr] 84 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/shapes/ellipse.rs:74:50 [INFO] [stderr] | [INFO] [stderr] 74 | } else if screen.ellipseMode == "CORNER" { [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 75 | | // w = w ./ 2 [INFO] [stderr] 76 | | // h = h ./ 2 [INFO] [stderr] 77 | | // xc = xc .+ w [INFO] [stderr] 78 | | // yc = yc .+ h [INFO] [stderr] 79 | | } else if screen.ellipseMode == "CORNERS" { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/ellipse.rs:71:17 [INFO] [stderr] | [INFO] [stderr] 71 | w[i] = w[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `w[i] /= 2.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/shapes/ellipse.rs:72:17 [INFO] [stderr] | [INFO] [stderr] 72 | h[i] = h[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `h[i] /= 2.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: variable `numSlices` should have a snake case name such as `num_slices` [INFO] [stderr] --> src/shapes/ellipse.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | let numSlices = 200.0 + 2.0; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:18:17 [INFO] [stderr] | [INFO] [stderr] 18 | / match *shape.fill_indices() { [INFO] [stderr] 19 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 20 | | framebuffer [INFO] [stderr] 21 | | .draw(*shape.fill_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 18 | match *(*shape.fill_indices()) { [INFO] [stderr] 19 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 20 | framebuffer [INFO] [stderr] 21 | .draw(*shape.fill_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] 22 | .unwrap() [INFO] [stderr] 23 | } [INFO] [stderr] ... [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/shapes/draw.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | / match *shape.stroke_indices() { [INFO] [stderr] 33 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 34 | | framebuffer [INFO] [stderr] 35 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 38 | | _ => {} [INFO] [stderr] 39 | | } [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] 32 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 33 | framebuffer [INFO] [stderr] 34 | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] 35 | .unwrap() [INFO] [stderr] 36 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | / match *shape.stroke_indices() { [INFO] [stderr] 33 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 34 | | framebuffer [INFO] [stderr] 35 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 38 | | _ => {} [INFO] [stderr] 39 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 32 | match *(*shape.stroke_indices()) { [INFO] [stderr] 33 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:45:17 [INFO] [stderr] | [INFO] [stderr] 45 | / match *shape.fill_indices() { [INFO] [stderr] 46 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 47 | | framebuffer [INFO] [stderr] 48 | | .draw(*shape.fill_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 55 | | } [INFO] [stderr] 56 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 45 | match *(*shape.fill_indices()) { [INFO] [stderr] 46 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 47 | framebuffer [INFO] [stderr] 48 | .draw(*shape.fill_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] 49 | .unwrap() [INFO] [stderr] 50 | } [INFO] [stderr] ... [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/shapes/draw.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | / match *shape.stroke_indices() { [INFO] [stderr] 60 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 61 | | framebuffer [INFO] [stderr] 62 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 65 | | _ => {} [INFO] [stderr] 66 | | } [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] 59 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 60 | framebuffer [INFO] [stderr] 61 | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] 62 | .unwrap() [INFO] [stderr] 63 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | / match *shape.stroke_indices() { [INFO] [stderr] 60 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 61 | | framebuffer [INFO] [stderr] 62 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 65 | | _ => {} [INFO] [stderr] 66 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 59 | match *(*shape.stroke_indices()) { [INFO] [stderr] 60 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/point.rs:42:31 [INFO] [stderr] | [INFO] [stderr] 42 | let mut x: Vec = xi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `xi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | / match *shape.fill_indices() { [INFO] [stderr] 85 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 86 | | framebuffer [INFO] [stderr] 87 | | .draw(*shape.fill_buffer(), ib, prog, uniforms, &self.draw_params) [INFO] [stderr] ... | [INFO] [stderr] 94 | | } [INFO] [stderr] 95 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/point.rs:43:31 [INFO] [stderr] | [INFO] [stderr] 43 | let mut y: Vec = yi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `yi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 84 | match *(*shape.fill_indices()) { [INFO] [stderr] 85 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 86 | framebuffer [INFO] [stderr] 87 | .draw(*shape.fill_buffer(), ib, prog, uniforms, &self.draw_params) [INFO] [stderr] 88 | .unwrap() [INFO] [stderr] 89 | } [INFO] [stderr] [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/point.rs:44:31 [INFO] [stderr] | [INFO] [stderr] 44 | let mut z: Vec = zi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `zi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [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/shapes/draw.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | / match *shape.stroke_indices() { [INFO] [stderr] 99 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 100 | | framebuffer [INFO] [stderr] 101 | | .draw( [INFO] [stderr] ... | [INFO] [stderr] 110 | | _ => {} [INFO] [stderr] 111 | | } [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] 98 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 99 | framebuffer [INFO] [stderr] 100 | .draw( [INFO] [stderr] 101 | *shape.stroke_buffer(), [INFO] [stderr] 102 | ib, [INFO] [stderr] 103 | &prog, [INFO] [stderr] ... [INFO] [stderr] warning: the loop variable `i` is only used to index `x`. [INFO] [stderr] --> src/shapes/point.rs:47:26 [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] 47 | for i in 0..x.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] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/shapes/draw.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | / match *shape.stroke_indices() { [INFO] [stderr] 99 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 100 | | framebuffer [INFO] [stderr] 101 | | .draw( [INFO] [stderr] ... | [INFO] [stderr] 110 | | _ => {} [INFO] [stderr] 111 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 47 | for in &mut x { [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 98 | match *(*shape.stroke_indices()) { [INFO] [stderr] 99 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/point.rs:48:21 [INFO] [stderr] | [INFO] [stderr] 48 | x[i] = x[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/point.rs:48:35 [INFO] [stderr] | [INFO] [stderr] 48 | x[i] = x[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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: variable `newWeight` should have a snake case name such as `new_weight` [INFO] [stderr] --> src/shapes/draw.rs:210:37 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn stroke_weight(&mut self, newWeight: f32) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `y`. [INFO] [stderr] --> src/shapes/point.rs:51:26 [INFO] [stderr] | [INFO] [stderr] 51 | for i in 0..x.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] 51 | for in y.iter_mut().take(x.len()) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/point.rs:52:21 [INFO] [stderr] | [INFO] [stderr] 52 | y[i] = y[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/point.rs:52:35 [INFO] [stderr] | [INFO] [stderr] 52 | y[i] = y[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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: useless use of `vec!` [INFO] [stderr] --> src/shapes/point.rs:100:68 [INFO] [stderr] | [INFO] [stderr] 100 | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/shapes/point.rs:101:70 [INFO] [stderr] | [INFO] [stderr] 101 | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:50:22 [INFO] [stderr] | [INFO] [stderr] 50 | let mut x1 = x1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:51:22 [INFO] [stderr] | [INFO] [stderr] 51 | let mut y1 = y1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:52:22 [INFO] [stderr] | [INFO] [stderr] 52 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | let mut x2 = x2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/rect.rs:54:28 [INFO] [stderr] | [INFO] [stderr] 54 | let mut xtopleft = xtoplefti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `xtoplefti.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:54:22 [INFO] [stderr] | [INFO] [stderr] 54 | let mut y2 = y2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y2i.iter().cloned()` [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/rect.rs:55:28 [INFO] [stderr] | [INFO] [stderr] 55 | let mut ytopleft = ytoplefti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `ytoplefti.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:55:22 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/rect.rs:56:28 [INFO] [stderr] | [INFO] [stderr] 56 | let mut ztopleft = ztoplefti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `ztoplefti.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/rect.rs:57:25 [INFO] [stderr] | [INFO] [stderr] 57 | let mut width = widthi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `widthi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/line.rs:59:21 [INFO] [stderr] | [INFO] [stderr] 59 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x1[i] /= screen.aspectRatio as f64` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/rect.rs:58:26 [INFO] [stderr] | [INFO] [stderr] 58 | let mut height = heighti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `heighti.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/line.rs:59:37 [INFO] [stderr] | [INFO] [stderr] 59 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/line.rs:60:21 [INFO] [stderr] | [INFO] [stderr] 60 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x2[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/shapes/rect.rs:60:42 [INFO] [stderr] | [INFO] [stderr] 60 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(screen.aspectRatio - 1f32).abs() < error` [INFO] [stderr] --> src/shapes/line.rs:60:37 [INFO] [stderr] | [INFO] [stderr] 60 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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] | [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/shapes/rect.rs:60:42 [INFO] [stderr] | [INFO] [stderr] 60 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/line.rs:64:21 [INFO] [stderr] | [INFO] [stderr] 64 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y1[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/line.rs:64:37 [INFO] [stderr] | [INFO] [stderr] 64 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/line.rs:65:21 [INFO] [stderr] | [INFO] [stderr] 65 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y2[i] *= screen.aspectRatio as f64` [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/shapes/rect.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | xtopleft[i] = xtopleft[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `xtopleft[i] /= screen.aspectRatio as f64` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/line.rs:65:37 [INFO] [stderr] | [INFO] [stderr] 65 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/rect.rs:63:49 [INFO] [stderr] | [INFO] [stderr] 63 | xtopleft[i] = xtopleft[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/rect.rs:64:21 [INFO] [stderr] | [INFO] [stderr] 64 | width[i] = width[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `width[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/rect.rs:64:43 [INFO] [stderr] | [INFO] [stderr] 64 | width[i] = width[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/rect.rs:68:21 [INFO] [stderr] | [INFO] [stderr] 68 | ytopleft[i] = ytopleft[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ytopleft[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/rect.rs:68:49 [INFO] [stderr] | [INFO] [stderr] 68 | ytopleft[i] = ytopleft[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/rect.rs:69:21 [INFO] [stderr] | [INFO] [stderr] 69 | height[i] = height[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `height[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/rect.rs:69:45 [INFO] [stderr] | [INFO] [stderr] 69 | height[i] = height[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/shapes/rect.rs:84:48 [INFO] [stderr] | [INFO] [stderr] 84 | } else if screen.rectMode == "CORNERS" { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 85 | | // width = width .- xtopleft [INFO] [stderr] 86 | | // height = height .- ytopleft [INFO] [stderr] 87 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/shapes/rect.rs:79:47 [INFO] [stderr] | [INFO] [stderr] 79 | } else if screen.rectMode == "RADIUS" { [INFO] [stderr] | _______________________________________________^ [INFO] [stderr] 80 | | // xtopleft = xtopleft .- width [INFO] [stderr] 81 | | // ytopleft = ytopleft .- height [INFO] [stderr] 82 | | // width = 2 .* width [INFO] [stderr] 83 | | // height = 2 .* height [INFO] [stderr] 84 | | } else if screen.rectMode == "CORNERS" { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/shapes/line.rs:148:68 [INFO] [stderr] | [INFO] [stderr] 148 | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/rect.rs:76:17 [INFO] [stderr] | [INFO] [stderr] 76 | xtopleft[i] = xtopleft[i] - width[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `xtopleft[i] -= width[i] / 2.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: useless use of `vec!` [INFO] [stderr] --> src/shapes/line.rs:149:70 [INFO] [stderr] | [INFO] [stderr] 149 | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/rect.rs:77:17 [INFO] [stderr] | [INFO] [stderr] 77 | ytopleft[i] = ytopleft[i] - height[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ytopleft[i] -= height[i] / 2.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: this function has too many arguments (13/7) [INFO] [stderr] --> src/shapes/quad.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / pub fn new( [INFO] [stderr] 44 | | screen: &Screen, [INFO] [stderr] 45 | | x1i: &[f64], [INFO] [stderr] 46 | | y1i: &[f64], [INFO] [stderr] ... | [INFO] [stderr] 186 | | } [INFO] [stderr] 187 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:58:22 [INFO] [stderr] | [INFO] [stderr] 58 | let mut x1 = x1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:59:22 [INFO] [stderr] | [INFO] [stderr] 59 | let mut y1 = y1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:60:22 [INFO] [stderr] | [INFO] [stderr] 60 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:61:22 [INFO] [stderr] | [INFO] [stderr] 61 | let mut x2 = x2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:62:22 [INFO] [stderr] | [INFO] [stderr] 62 | let mut y2 = y2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/shapes/arc.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn new( [INFO] [stderr] 42 | | screen: &Screen, [INFO] [stderr] 43 | | xci: &[f64], [INFO] [stderr] 44 | | yci: &[f64], [INFO] [stderr] ... | [INFO] [stderr] 159 | | } [INFO] [stderr] 160 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:63:22 [INFO] [stderr] | [INFO] [stderr] 63 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:64:22 [INFO] [stderr] | [INFO] [stderr] 64 | let mut x3 = x3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:65:22 [INFO] [stderr] | [INFO] [stderr] 65 | let mut y3 = y3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:67:22 [INFO] [stderr] | [INFO] [stderr] 67 | let mut x4 = x4i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x4i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:68:22 [INFO] [stderr] | [INFO] [stderr] 68 | let mut y4 = y4i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y4i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:69:22 [INFO] [stderr] | [INFO] [stderr] 69 | let mut z4 = z4i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z4i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/quad.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x1[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:73:37 [INFO] [stderr] | [INFO] [stderr] 73 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x2[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:74:37 [INFO] [stderr] | [INFO] [stderr] 74 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:75:21 [INFO] [stderr] | [INFO] [stderr] 75 | x3[i] = x3[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x3[i] /= screen.aspectRatio as f64` [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: You are using an explicit closure for cloning elements [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:75:37 [INFO] [stderr] | [INFO] [stderr] 75 | x3[i] = x3[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [INFO] [stderr] --> src/shapes/arc.rs:51:22 [INFO] [stderr] | [INFO] [stderr] 51 | let mut xc = xci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `xci.iter().cloned()` [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] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/quad.rs:76:21 [INFO] [stderr] | [INFO] [stderr] 76 | x4[i] = x4[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x4[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:76:37 [INFO] [stderr] | [INFO] [stderr] 76 | x4[i] = x4[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:52:22 [INFO] [stderr] | [INFO] [stderr] 52 | let mut yc = yci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `yci.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/quad.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y1[i] *= screen.aspectRatio as f64` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `zci.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] [INFO] [stderr] --> src/shapes/quad.rs:80:37 [INFO] [stderr] | [INFO] [stderr] 80 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:81:21 [INFO] [stderr] | [INFO] [stderr] 81 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y2[i] *= screen.aspectRatio as f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:54:21 [INFO] [stderr] | [INFO] [stderr] 54 | let mut w = wi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `wi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:55:21 [INFO] [stderr] | [INFO] [stderr] 55 | let mut h = hi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `hi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:56:21 [INFO] [stderr] | [INFO] [stderr] 56 | let start = starti.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `starti.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:81:37 [INFO] [stderr] | [INFO] [stderr] 81 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | y3[i] = y3[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y3[i] *= screen.aspectRatio as f64` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/arc.rs:57:20 [INFO] [stderr] | [INFO] [stderr] 57 | let stop = stopi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `stopi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:82:37 [INFO] [stderr] | [INFO] [stderr] 82 | y3[i] = y3[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:83:21 [INFO] [stderr] | [INFO] [stderr] 83 | y4[i] = y4[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y4[i] *= screen.aspectRatio as f64` [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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/shapes/arc.rs:58:42 [INFO] [stderr] | [INFO] [stderr] 58 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(screen.aspectRatio - 1f32).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/shapes/arc.rs:58:42 [INFO] [stderr] | [INFO] [stderr] 58 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:83:37 [INFO] [stderr] | [INFO] [stderr] 83 | y4[i] = y4[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/arc.rs:61:21 [INFO] [stderr] | [INFO] [stderr] 61 | xc[i] = xc[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `xc[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/arc.rs:61:37 [INFO] [stderr] | [INFO] [stderr] 61 | xc[i] = xc[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/arc.rs:62:21 [INFO] [stderr] | [INFO] [stderr] 62 | w[i] = w[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `w[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/arc.rs:62:35 [INFO] [stderr] | [INFO] [stderr] 62 | w[i] = w[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/arc.rs:66:21 [INFO] [stderr] | [INFO] [stderr] 66 | yc[i] = yc[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `yc[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/arc.rs:66:37 [INFO] [stderr] | [INFO] [stderr] 66 | yc[i] = yc[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/arc.rs:67:21 [INFO] [stderr] | [INFO] [stderr] 67 | h[i] = h[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `h[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/arc.rs:67:35 [INFO] [stderr] | [INFO] [stderr] 67 | h[i] = h[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/shapes/arc.rs:82:51 [INFO] [stderr] | [INFO] [stderr] 82 | } else if screen.ellipseMode == "CORNERS" { [INFO] [stderr] | ___________________________________________________^ [INFO] [stderr] 83 | | // xc = (w .- xc)./2 [INFO] [stderr] 84 | | // yc = (h .- yc)./2 [INFO] [stderr] 85 | | // w = w ./ 2 [INFO] [stderr] 86 | | // h = h ./ 2 [INFO] [stderr] 87 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/shapes/arc.rs:77:50 [INFO] [stderr] | [INFO] [stderr] 77 | } else if screen.ellipseMode == "CORNER" { [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 78 | | // w = w ./ 2 [INFO] [stderr] 79 | | // h = h ./ 2 [INFO] [stderr] 80 | | // xc = xc .+ w [INFO] [stderr] 81 | | // yc = yc .+ h [INFO] [stderr] 82 | | } else if screen.ellipseMode == "CORNERS" { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/arc.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | w[i] = w[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `w[i] /= 2.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/shapes/arc.rs:75:17 [INFO] [stderr] | [INFO] [stderr] 75 | h[i] = h[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `h[i] /= 2.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: variable `numSlices` should have a snake case name such as `num_slices` [INFO] [stderr] --> src/shapes/arc.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | let numSlices = 200.0 + 2.0; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/shapes/triangle.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn new( [INFO] [stderr] 42 | | screen: &Screen, [INFO] [stderr] 43 | | x1i: &[f64], [INFO] [stderr] 44 | | y1i: &[f64], [INFO] [stderr] ... | [INFO] [stderr] 154 | | } [INFO] [stderr] 155 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | let mut x1 = x1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:54:22 [INFO] [stderr] | [INFO] [stderr] 54 | let mut y1 = y1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:55:22 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:56:22 [INFO] [stderr] | [INFO] [stderr] 56 | let mut x2 = x2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:57:22 [INFO] [stderr] | [INFO] [stderr] 57 | let mut y2 = y2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:58:22 [INFO] [stderr] | [INFO] [stderr] 58 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:59:22 [INFO] [stderr] | [INFO] [stderr] 59 | let mut x3 = x3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:60:22 [INFO] [stderr] | [INFO] [stderr] 60 | let mut y3 = y3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:61:22 [INFO] [stderr] | [INFO] [stderr] 61 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/triangle.rs:65:21 [INFO] [stderr] | [INFO] [stderr] 65 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x1[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:65:37 [INFO] [stderr] | [INFO] [stderr] 65 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/triangle.rs:66:21 [INFO] [stderr] | [INFO] [stderr] 66 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x2[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:66:37 [INFO] [stderr] | [INFO] [stderr] 66 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/triangle.rs:67:21 [INFO] [stderr] | [INFO] [stderr] 67 | x3[i] = x3[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x3[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:67:37 [INFO] [stderr] | [INFO] [stderr] 67 | x3[i] = x3[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/triangle.rs:71:21 [INFO] [stderr] | [INFO] [stderr] 71 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y1[i] *= screen.aspectRatio as f64` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/ellipse.rs:50:22 [INFO] [stderr] | [INFO] [stderr] 50 | let mut xc = xci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `xci.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:71:37 [INFO] [stderr] | [INFO] [stderr] 71 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/triangle.rs:72:21 [INFO] [stderr] | [INFO] [stderr] 72 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y2[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:72:37 [INFO] [stderr] | [INFO] [stderr] 72 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/ellipse.rs:51:22 [INFO] [stderr] | [INFO] [stderr] 51 | let mut yc = yci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `yci.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/triangle.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | y3[i] = y3[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y3[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:73:37 [INFO] [stderr] | [INFO] [stderr] 73 | y3[i] = y3[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/ellipse.rs:52:22 [INFO] [stderr] | [INFO] [stderr] 52 | let mut zc = zci.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `zci.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/ellipse.rs:53:21 [INFO] [stderr] | [INFO] [stderr] 53 | let mut w = wi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `wi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/ellipse.rs:54:21 [INFO] [stderr] | [INFO] [stderr] 54 | let mut h = hi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `hi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/shapes/ellipse.rs:55:42 [INFO] [stderr] | [INFO] [stderr] 55 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(screen.aspectRatio - 1f32).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/shapes/ellipse.rs:55:42 [INFO] [stderr] | [INFO] [stderr] 55 | if screen.preserveAspectRatio && screen.aspectRatio != 1f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/ellipse.rs:58:21 [INFO] [stderr] | [INFO] [stderr] 58 | xc[i] = xc[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `xc[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/ellipse.rs:58:37 [INFO] [stderr] | [INFO] [stderr] 58 | xc[i] = xc[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/ellipse.rs:59:21 [INFO] [stderr] | [INFO] [stderr] 59 | w[i] = w[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `w[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/ellipse.rs:59:35 [INFO] [stderr] | [INFO] [stderr] 59 | w[i] = w[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/ellipse.rs:63:21 [INFO] [stderr] | [INFO] [stderr] 63 | yc[i] = yc[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `yc[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/ellipse.rs:63:37 [INFO] [stderr] | [INFO] [stderr] 63 | yc[i] = yc[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/ellipse.rs:64:21 [INFO] [stderr] | [INFO] [stderr] 64 | h[i] = h[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `h[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/ellipse.rs:64:35 [INFO] [stderr] | [INFO] [stderr] 64 | h[i] = h[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/shapes/ellipse.rs:79:51 [INFO] [stderr] | [INFO] [stderr] 79 | } else if screen.ellipseMode == "CORNERS" { [INFO] [stderr] | ___________________________________________________^ [INFO] [stderr] 80 | | // xc = (w .- xc)./2 [INFO] [stderr] 81 | | // yc = (h .- yc)./2 [INFO] [stderr] 82 | | // w = w ./ 2 [INFO] [stderr] 83 | | // h = h ./ 2 [INFO] [stderr] 84 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] note: same as this [INFO] [stderr] --> src/shapes/ellipse.rs:74:50 [INFO] [stderr] | [INFO] [stderr] 74 | } else if screen.ellipseMode == "CORNER" { [INFO] [stderr] | __________________________________________________^ [INFO] [stderr] 75 | | // w = w ./ 2 [INFO] [stderr] 76 | | // h = h ./ 2 [INFO] [stderr] 77 | | // xc = xc .+ w [INFO] [stderr] 78 | | // yc = yc .+ h [INFO] [stderr] 79 | | } else if screen.ellipseMode == "CORNERS" { [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/ellipse.rs:71:17 [INFO] [stderr] | [INFO] [stderr] 71 | w[i] = w[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `w[i] /= 2.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/shapes/ellipse.rs:72:17 [INFO] [stderr] | [INFO] [stderr] 72 | h[i] = h[i] / 2.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `h[i] /= 2.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: variable `numSlices` should have a snake case name such as `num_slices` [INFO] [stderr] --> src/shapes/ellipse.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | let numSlices = 200.0 + 2.0; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `cubeVertices` should have a snake case name such as `cube_vertices` [INFO] [stderr] --> src/shapes/cube.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | let cubeVertices = [ [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `c` is only used to index `s`. [INFO] [stderr] --> src/shapes/cube.rs:150:18 [INFO] [stderr] | [INFO] [stderr] 150 | for c in 0..s.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] 150 | for in &s { [INFO] [stderr] | ^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/shapes/mod.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | Buffer { ind: glium::index::IndexBuffer }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 15 | Buffer { ind: Box> }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/point.rs:42:31 [INFO] [stderr] | [INFO] [stderr] 42 | let mut x: Vec = xi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `xi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/point.rs:43:31 [INFO] [stderr] | [INFO] [stderr] 43 | let mut y: Vec = yi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `yi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/point.rs:44:31 [INFO] [stderr] | [INFO] [stderr] 44 | let mut z: Vec = zi.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `zi.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `x`. [INFO] [stderr] --> src/shapes/point.rs:47:26 [INFO] [stderr] | [INFO] [stderr] 47 | for i in 0..x.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] 47 | for in &mut x { [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/point.rs:48:21 [INFO] [stderr] | [INFO] [stderr] 48 | x[i] = x[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/point.rs:48:35 [INFO] [stderr] | [INFO] [stderr] 48 | x[i] = x[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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: the loop variable `i` is only used to index `y`. [INFO] [stderr] --> src/shapes/point.rs:51:26 [INFO] [stderr] | [INFO] [stderr] 51 | for i in 0..x.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] 51 | for in y.iter_mut().take(x.len()) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/point.rs:52:21 [INFO] [stderr] | [INFO] [stderr] 52 | y[i] = y[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/point.rs:52:35 [INFO] [stderr] | [INFO] [stderr] 52 | y[i] = y[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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: variable `colorMat` should have a snake case name such as `color_mat` [INFO] [stderr] --> src/shapes/mod.rs:36:44 [INFO] [stderr] | [INFO] [stderr] 36 | fn load_colors(buffer: &mut [ShapeVertex], colorMat: &[f32]) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `buffer`. [INFO] [stderr] --> src/shapes/mod.rs:38:18 [INFO] [stderr] | [INFO] [stderr] 38 | for x in 0..buffer.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] 38 | for in &mut buffer { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/shapes/point.rs:100:68 [INFO] [stderr] | [INFO] [stderr] 100 | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/shapes/point.rs:101:70 [INFO] [stderr] | [INFO] [stderr] 101 | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | wh.0 as f64 / self.width as f64, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(wh.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | wh.0 as f64 / self.width as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | wh.1 as f64 / self.height as f64, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(wh.1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:41:27 [INFO] [stderr] | [INFO] [stderr] 41 | wh.1 as f64 / self.height as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | w as f64 / self.width as f64, [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(w)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:56:24 [INFO] [stderr] | [INFO] [stderr] 56 | w as f64 / self.width as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | h as f64 / self.height as f64, [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:57:24 [INFO] [stderr] | [INFO] [stderr] 57 | h as f64 / self.height as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:75:24 [INFO] [stderr] | [INFO] [stderr] 75 | w as f64 / self.width as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:76:24 [INFO] [stderr] | [INFO] [stderr] 76 | h as f64 / self.height as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: method `textureWrap` should have a snake case name such as `texture_wrap` [INFO] [stderr] --> src/textures.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | / pub fn textureWrap(&mut self, wrap: &str) { [INFO] [stderr] 81 | | if wrap == "CLAMP" { [INFO] [stderr] 82 | | self.wrap = glium::uniforms::SamplerWrapFunction::Clamp; [INFO] [stderr] 83 | | } else if wrap == "REPEAT" { [INFO] [stderr] 84 | | self.wrap = glium::uniforms::SamplerWrapFunction::Repeat; [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:50:22 [INFO] [stderr] | [INFO] [stderr] 50 | let mut x1 = x1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:51:22 [INFO] [stderr] | [INFO] [stderr] 51 | let mut y1 = y1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:52:22 [INFO] [stderr] | [INFO] [stderr] 52 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | let mut x2 = x2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:54:22 [INFO] [stderr] | [INFO] [stderr] 54 | let mut y2 = y2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/line.rs:55:22 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/line.rs:59:21 [INFO] [stderr] | [INFO] [stderr] 59 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x1[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/line.rs:59:37 [INFO] [stderr] | [INFO] [stderr] 59 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/line.rs:60:21 [INFO] [stderr] | [INFO] [stderr] 60 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x2[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/line.rs:60:37 [INFO] [stderr] | [INFO] [stderr] 60 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/line.rs:64:21 [INFO] [stderr] | [INFO] [stderr] 64 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y1[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/line.rs:64:37 [INFO] [stderr] | [INFO] [stderr] 64 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/line.rs:65:21 [INFO] [stderr] | [INFO] [stderr] 65 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y2[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/line.rs:65:37 [INFO] [stderr] | [INFO] [stderr] 65 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [INFO] [stderr] | [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | / match *shape.fill_indices() { [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] 54 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] [INFO] [stderr] 55 | | framebuffer [INFO] [stderr] 56 | | .draw(*shape.fill_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 63 | | } [INFO] [stderr] 64 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 53 | match *(*shape.fill_indices()) { [INFO] [stderr] 54 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 55 | framebuffer [INFO] [stderr] 56 | .draw(*shape.fill_buffer(), ib, prog, &u, &t) [INFO] [stderr] 57 | .unwrap() [INFO] [stderr] 58 | } [INFO] [stderr] ... [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/framebuffers.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | / match *shape.stroke_indices() { [INFO] [stderr] 68 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 69 | | framebuffer [INFO] [stderr] 70 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 73 | | _ => {} [INFO] [stderr] 74 | | } [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] 67 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 68 | framebuffer [INFO] [stderr] 69 | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] 70 | .unwrap() [INFO] [stderr] 71 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | / match *shape.stroke_indices() { [INFO] [stderr] 68 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 69 | | framebuffer [INFO] [stderr] 70 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 73 | | _ => {} [INFO] [stderr] 74 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 67 | match *(*shape.stroke_indices()) { [INFO] [stderr] 68 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:80:17 [INFO] [stderr] | [INFO] [stderr] 80 | / match *shape.fill_indices() { [INFO] [stderr] 81 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 82 | | framebuffer [INFO] [stderr] 83 | | .draw(*shape.fill_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 90 | | } [INFO] [stderr] 91 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 80 | match *(*shape.fill_indices()) { [INFO] [stderr] 81 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 82 | framebuffer [INFO] [stderr] 83 | .draw(*shape.fill_buffer(), ib, prog, &u, &t) [INFO] [stderr] 84 | .unwrap() [INFO] [stderr] 85 | } [INFO] [stderr] ... [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/framebuffers.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | / match *shape.stroke_indices() { [INFO] [stderr] 95 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 96 | | framebuffer [INFO] [stderr] 97 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 100 | | _ => {} [INFO] [stderr] 101 | | } [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] 94 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 95 | framebuffer [INFO] [stderr] 96 | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] 97 | .unwrap() [INFO] [stderr] 98 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | / match *shape.stroke_indices() { [INFO] [stderr] 95 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 96 | | framebuffer [INFO] [stderr] 97 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 100 | | _ => {} [INFO] [stderr] 101 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 94 | match *(*shape.stroke_indices()) { [INFO] [stderr] 95 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:134:13 [INFO] [stderr] | [INFO] [stderr] 134 | / match *shape.fill_indices() { [INFO] [stderr] 135 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 136 | | framebuffer [INFO] [stderr] 137 | | .draw( [INFO] [stderr] ... | [INFO] [stderr] 156 | | } [INFO] [stderr] 157 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 134 | match *(*shape.fill_indices()) { [INFO] [stderr] 135 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 136 | framebuffer [INFO] [stderr] 137 | .draw( [INFO] [stderr] 138 | *shape.fill_buffer(), [INFO] [stderr] 139 | ib, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/shapes/line.rs:148:68 [INFO] [stderr] | [INFO] [stderr] 148 | fill_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [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/framebuffers.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 160 | / match *shape.stroke_indices() { [INFO] [stderr] 161 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 162 | | framebuffer [INFO] [stderr] 163 | | .draw( [INFO] [stderr] ... | [INFO] [stderr] 172 | | _ => {} [INFO] [stderr] 173 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/shapes/line.rs:149:70 [INFO] [stderr] | [INFO] [stderr] 149 | stroke_buffer: glium::VertexBuffer::new(&screen.display, &vec![]).unwrap(), [INFO] [stderr] | ^^^^^^^ help: you can use a slice directly: `&[]` [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: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 160 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 161 | framebuffer [INFO] [stderr] 162 | .draw( [INFO] [stderr] 163 | *shape.stroke_buffer(), [INFO] [stderr] 164 | ib, [INFO] [stderr] 165 | &prog, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 160 | / match *shape.stroke_indices() { [INFO] [stderr] 161 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 162 | | framebuffer [INFO] [stderr] 163 | | .draw( [INFO] [stderr] ... | [INFO] [stderr] 172 | | _ => {} [INFO] [stderr] 173 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 160 | match *(*shape.stroke_indices()) { [INFO] [stderr] 161 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method `applyMatrix` should have a snake case name such as `apply_matrix` [INFO] [stderr] --> src/transform.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | / pub fn applyMatrix( [INFO] [stderr] 7 | | &mut self, [INFO] [stderr] 8 | | n00: f32, [INFO] [stderr] 9 | | n01: f32, [INFO] [stderr] ... | [INFO] [stderr] 44 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 45 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (17/7) [INFO] [stderr] --> src/transform.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | / pub fn applyMatrix( [INFO] [stderr] 7 | | &mut self, [INFO] [stderr] 8 | | n00: f32, [INFO] [stderr] 9 | | n01: f32, [INFO] [stderr] ... | [INFO] [stderr] 44 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 45 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: method `popMatrix` should have a snake case name such as `pop_matrix` [INFO] [stderr] --> src/transform.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | / pub fn popMatrix(&mut self) { [INFO] [stderr] 48 | | match self.matrices.matrixStack.pop() { [INFO] [stderr] 49 | | Some(m) => self.matrices.currMatrix = m, [INFO] [stderr] 50 | | None => { [INFO] [stderr] ... | [INFO] [stderr] 53 | | }; [INFO] [stderr] 54 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `pushMatrix` should have a snake case name such as `push_matrix` [INFO] [stderr] --> src/transform.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / pub fn pushMatrix(&mut self) { [INFO] [stderr] 57 | | self.matrices.matrixStack.push(self.matrices.currMatrix); [INFO] [stderr] 58 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `resetMatrix` should have a snake case name such as `reset_matrix` [INFO] [stderr] --> src/transform.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / pub fn resetMatrix(&mut self) { [INFO] [stderr] 61 | | self.matrices.currMatrix = Matrix4::identity(); [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (13/7) [INFO] [stderr] --> src/shapes/quad.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | / pub fn new( [INFO] [stderr] 44 | | screen: &Screen, [INFO] [stderr] 45 | | x1i: &[f64], [INFO] [stderr] 46 | | y1i: &[f64], [INFO] [stderr] ... | [INFO] [stderr] 186 | | } [INFO] [stderr] 187 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: method `rotateX` should have a snake case name such as `rotate_x` [INFO] [stderr] --> src/transform.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | / pub fn rotateX(&mut self, angle: f32) { [INFO] [stderr] 89 | | let m = Matrix4::from_axis_angle(&Unit::new_unchecked(Vector3::new(1., 0., 0.)), angle); [INFO] [stderr] 90 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 91 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `rotateY` should have a snake case name such as `rotate_y` [INFO] [stderr] --> src/transform.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | / pub fn rotateY(&mut self, angle: f32) { [INFO] [stderr] 94 | | let m = Matrix4::from_axis_angle(&Unit::new_unchecked(Vector3::new(0., 1., 0.)), angle); [INFO] [stderr] 95 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `rotateZ` should have a snake case name such as `rotate_z` [INFO] [stderr] --> src/transform.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | / pub fn rotateZ(&mut self, angle: f32) { [INFO] [stderr] 99 | | let m = Matrix4::from_axis_angle(&Unit::new_unchecked(Vector3::new(0., 0., 1.)), angle); [INFO] [stderr] 100 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 101 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `shearX` should have a snake case name such as `shear_x` [INFO] [stderr] --> src/transform.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | / pub fn shearX(&mut self, angle: f32) { [INFO] [stderr] 112 | | let m = Matrix4::new( [INFO] [stderr] 113 | | 1., [INFO] [stderr] 114 | | angle.tan(), [INFO] [stderr] ... | [INFO] [stderr] 131 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:58:22 [INFO] [stderr] | [INFO] [stderr] 58 | let mut x1 = x1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:59:22 [INFO] [stderr] | [INFO] [stderr] 59 | let mut y1 = y1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] warning: method `shearY` should have a snake case name such as `shear_y` [INFO] [stderr] --> src/shapes/quad.rs:60:22 [INFO] [stderr] | [INFO] [stderr] --> src/transform.rs:134:5 [INFO] [stderr] 60 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z1i.iter().cloned()` [INFO] [stderr] 134 | / pub fn shearY(&mut self, angle: f32) { [INFO] [stderr] 135 | | let m = Matrix4::new( [INFO] [stderr] 136 | | 1., [INFO] [stderr] 137 | | 0., [INFO] [stderr] ... | [INFO] [stderr] 154 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 155 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:61:22 [INFO] [stderr] | [INFO] [stderr] 61 | let mut x2 = x2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:62:22 [INFO] [stderr] | [INFO] [stderr] 62 | let mut y2 = y2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:63:22 [INFO] [stderr] | [INFO] [stderr] 63 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:64:22 [INFO] [stderr] | [INFO] [stderr] 64 | let mut x3 = x3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:65:22 [INFO] [stderr] | [INFO] [stderr] 65 | let mut y3 = y3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: method `printMatrix` should have a snake case name such as `print_matrix` [INFO] [stderr] --> src/transform.rs:163:5 [INFO] [stderr] | [INFO] [stderr] 163 | / pub fn printMatrix(&self) { [INFO] [stderr] 164 | | println!("{:?}", self.matrices.currMatrix); [INFO] [stderr] 165 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:67:22 [INFO] [stderr] | [INFO] [stderr] 67 | let mut x4 = x4i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x4i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:68:22 [INFO] [stderr] | [INFO] [stderr] 68 | let mut y4 = y4i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y4i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/quad.rs:69:22 [INFO] [stderr] | [INFO] [stderr] 69 | let mut z4 = z4i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z4i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/quad.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x1[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:73:37 [INFO] [stderr] | [INFO] [stderr] 73 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x2[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:74:37 [INFO] [stderr] | [INFO] [stderr] 74 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:75:21 [INFO] [stderr] | [INFO] [stderr] 75 | x3[i] = x3[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x3[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:75:37 [INFO] [stderr] | [INFO] [stderr] 75 | x3[i] = x3[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:76:21 [INFO] [stderr] | [INFO] [stderr] 76 | x4[i] = x4[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x4[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:76:37 [INFO] [stderr] | [INFO] [stderr] 76 | x4[i] = x4[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y1[i] *= screen.aspectRatio as f64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] warning: method `imageMode` should have a snake case name such as `image_mode` [INFO] [stderr] --> src/image.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn imageMode(&mut self, mode: &str) { [INFO] [stderr] 18 | | self.imageMode = mode.to_owned(); [INFO] [stderr] 19 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `noTint` should have a snake case name such as `no_tint` [INFO] [stderr] --> src/image.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn noTint(&mut self) { [INFO] [stderr] 22 | | self.tintStuff = false [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:80:37 [INFO] [stderr] | [INFO] [stderr] 80 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:81:21 [INFO] [stderr] | [INFO] [stderr] 81 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y2[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:81:37 [INFO] [stderr] | [INFO] [stderr] 81 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | y3[i] = y3[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y3[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:82:37 [INFO] [stderr] | [INFO] [stderr] 82 | y3[i] = y3[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/quad.rs:83:21 [INFO] [stderr] | [INFO] [stderr] 83 | y4[i] = y4[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y4[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/quad.rs:83:37 [INFO] [stderr] | [INFO] [stderr] 83 | y4[i] = y4[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/image.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | mem::transmute(&data[0]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&data[0] as *const f32 as *mut std::ffi::c_void` [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: variable `cursorType` should have a snake case name such as `cursor_type` [INFO] [stderr] --> src/environment.rs:16:30 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn cursor(&mut self, cursorType: &str) { [INFO] [stderr] | ^^^^^^^^^^ [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/environment.rs:37:46 [INFO] [stderr] | [INFO] [stderr] 37 | self.events_loop.poll_events(|event| match event { [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 38 | | glutin::Event::WindowEvent { event, .. } => { [INFO] [stderr] 39 | | match event { [INFO] [stderr] 40 | | glutin::WindowEvent::Focused(b) => { [INFO] [stderr] ... | [INFO] [stderr] 46 | | _ => (), [INFO] [stderr] 47 | | }); [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] 37 | self.events_loop.poll_events(|event| if let glutin::Event::WindowEvent { event, .. } = event { [INFO] [stderr] 38 | match event { [INFO] [stderr] 39 | glutin::WindowEvent::Focused(b) => { [INFO] [stderr] 40 | focused = true; [INFO] [stderr] 41 | } [INFO] [stderr] 42 | _ => (), [INFO] [stderr] ... [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/environment.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | / match event { [INFO] [stderr] 40 | | glutin::WindowEvent::Focused(b) => { [INFO] [stderr] 41 | | focused = true; [INFO] [stderr] 42 | | } [INFO] [stderr] 43 | | _ => (), [INFO] [stderr] 44 | | } [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] 39 | if let glutin::WindowEvent::Focused(b) = event { [INFO] [stderr] 40 | focused = true; [INFO] [stderr] 41 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method `frameCount` should have a snake case name such as `frame_count` [INFO] [stderr] --> src/environment.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / pub fn frameCount(&self) -> isize { [INFO] [stderr] 54 | | self.frameCount [INFO] [stderr] 55 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `get_frameRate` should have a snake case name such as `get_frame_rate` [INFO] [stderr] --> src/environment.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | / pub fn get_frameRate(&self) -> isize { [INFO] [stderr] 59 | | self.frameRate [INFO] [stderr] 60 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/shapes/triangle.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn new( [INFO] [stderr] 42 | | screen: &Screen, [INFO] [stderr] 43 | | x1i: &[f64], [INFO] [stderr] 44 | | y1i: &[f64], [INFO] [stderr] ... | [INFO] [stderr] 154 | | } [INFO] [stderr] 155 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: method `set_frameRate` should have a snake case name such as `set_frame_rate` [INFO] [stderr] --> src/environment.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | / pub fn set_frameRate(&mut self, fRate: isize) { [INFO] [stderr] 64 | | self.frameRate = fRate; [INFO] [stderr] 65 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: variable `fRate` should have a snake case name such as `f_rate` [INFO] [stderr] --> src/environment.rs:63:37 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn set_frameRate(&mut self, fRate: isize) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `noCursor` should have a snake case name such as `no_cursor` [INFO] [stderr] --> src/environment.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | / pub fn noCursor(&mut self) { [INFO] [stderr] 74 | | unimplemented!{}; [INFO] [stderr] 75 | | // GLFW.SetInputMode(self, GLFW.CURSOR, GLFW.CURSOR_HIDDEN); [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `noSmooth` should have a snake case name such as `no_smooth` [INFO] [stderr] --> src/environment.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | / pub fn noSmooth(&mut self) { [INFO] [stderr] 80 | | self.draw_params = glium::draw_parameters::DrawParameters { [INFO] [stderr] 81 | | smooth: None, [INFO] [stderr] 82 | | ..self.draw_params.clone() [INFO] [stderr] 83 | | }; [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | let mut x1 = x1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:54:22 [INFO] [stderr] | [INFO] [stderr] 54 | let mut y1 = y1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:55:22 [INFO] [stderr] | [INFO] [stderr] 55 | let mut z1 = z1i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z1i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:56:22 [INFO] [stderr] | [INFO] [stderr] 56 | let mut x2 = x2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/input.rs:10:17 [INFO] [stderr] | [INFO] [stderr] 10 | / if k == b { [INFO] [stderr] 11 | | return true; [INFO] [stderr] 12 | | } else { [INFO] [stderr] 13 | | return false; [INFO] [stderr] 14 | | } [INFO] [stderr] | |_________________^ help: you can reduce it to: `return k == b` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:57:22 [INFO] [stderr] | [INFO] [stderr] 57 | let mut y2 = y2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: method `SpaceWait` should have a snake case name such as `space_wait` [INFO] [stderr] --> src/input.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn SpaceWait(&mut self) { [INFO] [stderr] 23 | | self.events_loop.run_forever(|event| match event { [INFO] [stderr] 24 | | glutin::Event::WindowEvent { event, .. } => { [INFO] [stderr] 25 | | match event { [INFO] [stderr] ... | [INFO] [stderr] 39 | | }); [INFO] [stderr] 40 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:58:22 [INFO] [stderr] | [INFO] [stderr] 58 | let mut z2 = z2i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z2i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:59:22 [INFO] [stderr] | [INFO] [stderr] 59 | let mut x3 = x3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `x3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:60:22 [INFO] [stderr] | [INFO] [stderr] 60 | let mut y3 = y3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `y3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/shapes/triangle.rs:61:22 [INFO] [stderr] | [INFO] [stderr] 61 | let mut z3 = z3i.iter().map(|&v| v).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `z3i.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: method `MousePress` should have a snake case name such as `mouse_press` [INFO] [stderr] --> src/input.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | / pub fn MousePress>(&mut self, button: B) -> bool { [INFO] [stderr] 43 | | match self.mousepressed { [INFO] [stderr] 44 | | Some(b) => { [INFO] [stderr] 45 | | let btn: glutin::MouseButton = button.into(); [INFO] [stderr] ... | [INFO] [stderr] 55 | | } [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/triangle.rs:65:21 [INFO] [stderr] | [INFO] [stderr] 65 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x1[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:65:37 [INFO] [stderr] | [INFO] [stderr] 65 | x1[i] = x1[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/triangle.rs:66:21 [INFO] [stderr] | [INFO] [stderr] 66 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x2[i] /= screen.aspectRatio as f64` [INFO] [stderr] | [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/input.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | / if b == btn { [INFO] [stderr] 47 | | return true; [INFO] [stderr] 48 | | } else { [INFO] [stderr] 49 | | return false; [INFO] [stderr] 50 | | } [INFO] [stderr] | |_________________^ help: you can reduce it to: `return b == btn` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:66:37 [INFO] [stderr] | [INFO] [stderr] 66 | x2[i] = x2[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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: method `MouseRelease` should have a snake case name such as `mouse_release` [INFO] [stderr] --> src/input.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | / pub fn MouseRelease>(&mut self, button: B) -> bool { [INFO] [stderr] 59 | | match self.mousereleased { [INFO] [stderr] 60 | | Some(b) => { [INFO] [stderr] 61 | | let btn: glutin::MouseButton = button.into(); [INFO] [stderr] ... | [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/triangle.rs:67:21 [INFO] [stderr] | [INFO] [stderr] 67 | x3[i] = x3[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x3[i] /= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:67:37 [INFO] [stderr] | [INFO] [stderr] 67 | x3[i] = x3[i] / screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/input.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | / if b == btn { [INFO] [stderr] 63 | | return true; [INFO] [stderr] 64 | | } else { [INFO] [stderr] 65 | | return false; [INFO] [stderr] 66 | | } [INFO] [stderr] | |_________________^ help: you can reduce it to: `return b == btn` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/shapes/triangle.rs:71:21 [INFO] [stderr] | [INFO] [stderr] 71 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y1[i] *= screen.aspectRatio as f64` [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: method `MouseX` should have a snake case name such as `mouse_x` [INFO] [stderr] --> src/input.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | / pub fn MouseX(&mut self) -> f64 { [INFO] [stderr] 75 | | self.mousepos.0 [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:71:37 [INFO] [stderr] | [INFO] [stderr] 71 | y1[i] = y1[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/triangle.rs:72:21 [INFO] [stderr] | [INFO] [stderr] 72 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y2[i] *= screen.aspectRatio as f64` [INFO] [stderr] | [INFO] [stderr] warning: method `MouseY` should have a snake case name such as `mouse_y` [INFO] [stderr] --> src/input.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | / pub fn MouseY(&mut self) -> f64 { [INFO] [stderr] 79 | | self.mousepos.1 [INFO] [stderr] 80 | | } [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] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:72:37 [INFO] [stderr] | [INFO] [stderr] 72 | y2[i] = y2[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [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/shapes/triangle.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | y3[i] = y3[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y3[i] *= screen.aspectRatio as f64` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shapes/triangle.rs:73:37 [INFO] [stderr] | [INFO] [stderr] 73 | y3[i] = y3[i] * screen.aspectRatio as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(screen.aspectRatio)` [INFO] [stderr] | [INFO] [stderr] warning: constant `perlin` should have an upper case name such as `PERLIN` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] --> src/constants.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | / pub const perlin: [isize; 512] = [ [INFO] [stderr] [INFO] [stderr] 19 | | 151, [INFO] [stderr] 20 | | 160, [INFO] [stderr] 21 | | 137, [INFO] [stderr] ... | [INFO] [stderr] 530 | | 180, [INFO] [stderr] 531 | | ]; [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_upper_case_globals)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `cubeVertices` should have a snake case name such as `cube_vertices` [INFO] [stderr] --> src/shapes/cube.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | let cubeVertices = [ [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `c` is only used to index `s`. [INFO] [stderr] --> src/shapes/cube.rs:150:18 [INFO] [stderr] | [INFO] [stderr] 150 | for c in 0..s.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] 150 | for in &s { [INFO] [stderr] | ^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/shapes/mod.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | Buffer { ind: glium::index::IndexBuffer }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 15 | Buffer { ind: Box> }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `colorMat` should have a snake case name such as `color_mat` [INFO] [stderr] --> src/shapes/mod.rs:36:44 [INFO] [stderr] | [INFO] [stderr] 36 | fn load_colors(buffer: &mut [ShapeVertex], colorMat: &[f32]) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `buffer`. [INFO] [stderr] --> src/shapes/mod.rs:38:18 [INFO] [stderr] | [INFO] [stderr] 38 | for x in 0..buffer.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] 38 | for in &mut buffer { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | wh.0 as f64 / self.width as f64, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(wh.0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:40:27 [INFO] [stderr] | [INFO] [stderr] 40 | wh.0 as f64 / self.width as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | wh.1 as f64 / self.height as f64, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(wh.1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:41:27 [INFO] [stderr] | [INFO] [stderr] 41 | wh.1 as f64 / self.height as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | w as f64 / self.width as f64, [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(w)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:56:24 [INFO] [stderr] | [INFO] [stderr] 56 | w as f64 / self.width as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | h as f64 / self.height as f64, [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(h)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:57:24 [INFO] [stderr] | [INFO] [stderr] 57 | h as f64 / self.height as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:75:24 [INFO] [stderr] | [INFO] [stderr] 75 | w as f64 / self.width as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures.rs:76:24 [INFO] [stderr] | [INFO] [stderr] 76 | h as f64 / self.height as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: method `textureWrap` should have a snake case name such as `texture_wrap` [INFO] [stderr] --> src/textures.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | / pub fn textureWrap(&mut self, wrap: &str) { [INFO] [stderr] 81 | | if wrap == "CLAMP" { [INFO] [stderr] 82 | | self.wrap = glium::uniforms::SamplerWrapFunction::Clamp; [INFO] [stderr] 83 | | } else if wrap == "REPEAT" { [INFO] [stderr] 84 | | self.wrap = glium::uniforms::SamplerWrapFunction::Repeat; [INFO] [stderr] 85 | | } [INFO] [stderr] 86 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | / match *shape.fill_indices() { [INFO] [stderr] 54 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 55 | | framebuffer [INFO] [stderr] 56 | | .draw(*shape.fill_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 63 | | } [INFO] [stderr] 64 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 53 | match *(*shape.fill_indices()) { [INFO] [stderr] 54 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 55 | framebuffer [INFO] [stderr] 56 | .draw(*shape.fill_buffer(), ib, prog, &u, &t) [INFO] [stderr] 57 | .unwrap() [INFO] [stderr] 58 | } [INFO] [stderr] ... [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/framebuffers.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | / match *shape.stroke_indices() { [INFO] [stderr] 68 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 69 | | framebuffer [INFO] [stderr] 70 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 73 | | _ => {} [INFO] [stderr] 74 | | } [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] 67 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 68 | framebuffer [INFO] [stderr] 69 | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] 70 | .unwrap() [INFO] [stderr] 71 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | / match *shape.stroke_indices() { [INFO] [stderr] 68 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 69 | | framebuffer [INFO] [stderr] 70 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 73 | | _ => {} [INFO] [stderr] 74 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 67 | match *(*shape.stroke_indices()) { [INFO] [stderr] 68 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:80:17 [INFO] [stderr] | [INFO] [stderr] 80 | / match *shape.fill_indices() { [INFO] [stderr] 81 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 82 | | framebuffer [INFO] [stderr] 83 | | .draw(*shape.fill_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 90 | | } [INFO] [stderr] 91 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 80 | match *(*shape.fill_indices()) { [INFO] [stderr] 81 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 82 | framebuffer [INFO] [stderr] 83 | .draw(*shape.fill_buffer(), ib, prog, &u, &t) [INFO] [stderr] 84 | .unwrap() [INFO] [stderr] 85 | } [INFO] [stderr] ... [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/framebuffers.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | / match *shape.stroke_indices() { [INFO] [stderr] 95 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 96 | | framebuffer [INFO] [stderr] 97 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 100 | | _ => {} [INFO] [stderr] 101 | | } [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] 94 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 95 | framebuffer [INFO] [stderr] 96 | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] 97 | .unwrap() [INFO] [stderr] 98 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:94:17 [INFO] [stderr] | [INFO] [stderr] 94 | / match *shape.stroke_indices() { [INFO] [stderr] 95 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 96 | | framebuffer [INFO] [stderr] 97 | | .draw(*shape.stroke_buffer(), ib, prog, &u, &t) [INFO] [stderr] ... | [INFO] [stderr] 100 | | _ => {} [INFO] [stderr] 101 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 94 | match *(*shape.stroke_indices()) { [INFO] [stderr] 95 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:134:13 [INFO] [stderr] | [INFO] [stderr] 134 | / match *shape.fill_indices() { [INFO] [stderr] 135 | | &IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 136 | | framebuffer [INFO] [stderr] 137 | | .draw( [INFO] [stderr] ... | [INFO] [stderr] 156 | | } [INFO] [stderr] 157 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 134 | match *(*shape.fill_indices()) { [INFO] [stderr] 135 | IndexType::Buffer { ind: ref ib } => { [INFO] [stderr] 136 | framebuffer [INFO] [stderr] 137 | .draw( [INFO] [stderr] 138 | *shape.fill_buffer(), [INFO] [stderr] 139 | ib, [INFO] [stderr] ... [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/framebuffers.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 160 | / match *shape.stroke_indices() { [INFO] [stderr] 161 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 162 | | framebuffer [INFO] [stderr] 163 | | .draw( [INFO] [stderr] ... | [INFO] [stderr] 172 | | _ => {} [INFO] [stderr] 173 | | } [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] 160 | if let &IndexType::NoBuffer { ind: ref ib } = *shape.stroke_indices() { [INFO] [stderr] 161 | framebuffer [INFO] [stderr] 162 | .draw( [INFO] [stderr] 163 | *shape.stroke_buffer(), [INFO] [stderr] 164 | ib, [INFO] [stderr] 165 | &prog, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/framebuffers.rs:160:13 [INFO] [stderr] | [INFO] [stderr] 160 | / match *shape.stroke_indices() { [INFO] [stderr] 161 | | &IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] 162 | | framebuffer [INFO] [stderr] 163 | | .draw( [INFO] [stderr] ... | [INFO] [stderr] 172 | | _ => {} [INFO] [stderr] 173 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 160 | match *(*shape.stroke_indices()) { [INFO] [stderr] 161 | IndexType::NoBuffer { ind: ref ib } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method `applyMatrix` should have a snake case name such as `apply_matrix` [INFO] [stderr] --> src/transform.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | / pub fn applyMatrix( [INFO] [stderr] 7 | | &mut self, [INFO] [stderr] 8 | | n00: f32, [INFO] [stderr] 9 | | n01: f32, [INFO] [stderr] ... | [INFO] [stderr] 44 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 45 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (17/7) [INFO] [stderr] --> src/transform.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | / pub fn applyMatrix( [INFO] [stderr] 7 | | &mut self, [INFO] [stderr] 8 | | n00: f32, [INFO] [stderr] 9 | | n01: f32, [INFO] [stderr] ... | [INFO] [stderr] 44 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 45 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: structure field `currMatrix` should have a snake case name such as `curr_matrix` [INFO] [stderr] --> src/lib.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | pub currMatrix: Matrix4, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `popMatrix` should have a snake case name such as `pop_matrix` [INFO] [stderr] --> src/transform.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | / pub fn popMatrix(&mut self) { [INFO] [stderr] 48 | | match self.matrices.matrixStack.pop() { [INFO] [stderr] 49 | | Some(m) => self.matrices.currMatrix = m, [INFO] [stderr] 50 | | None => { [INFO] [stderr] ... | [INFO] [stderr] 53 | | }; [INFO] [stderr] 54 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: structure field `matrixStack` should have a snake case name such as `matrix_stack` [INFO] [stderr] --> src/lib.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | matrixStack: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `pushMatrix` should have a snake case name such as `push_matrix` [INFO] [stderr] --> src/transform.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / pub fn pushMatrix(&mut self) { [INFO] [stderr] 57 | | self.matrices.matrixStack.push(self.matrices.currMatrix); [INFO] [stderr] 58 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `resetMatrix` should have a snake case name such as `reset_matrix` [INFO] [stderr] --> src/transform.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / pub fn resetMatrix(&mut self) { [INFO] [stderr] 61 | | self.matrices.currMatrix = Matrix4::identity(); [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `rotateX` should have a snake case name such as `rotate_x` [INFO] [stderr] --> src/transform.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | / pub fn rotateX(&mut self, angle: f32) { [INFO] [stderr] 89 | | let m = Matrix4::from_axis_angle(&Unit::new_unchecked(Vector3::new(1., 0., 0.)), angle); [INFO] [stderr] 90 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 91 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `rotateY` should have a snake case name such as `rotate_y` [INFO] [stderr] --> src/transform.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | / pub fn rotateY(&mut self, angle: f32) { [INFO] [stderr] 94 | | let m = Matrix4::from_axis_angle(&Unit::new_unchecked(Vector3::new(0., 1., 0.)), angle); [INFO] [stderr] 95 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: structure field `FBTexture` should have a snake case name such as `fbtexture` [INFO] [stderr] --> src/lib.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | FBTexture: glium::texture::Texture2d, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `FBO` should have a snake case name such as `fbo` [INFO] [stderr] --> src/lib.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | FBO: owning_ref::OwningHandle, Box>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `bgCol` should have a snake case name such as `bg_col` [INFO] [stderr] --> src/lib.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | bgCol: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `fillStuff` should have a snake case name such as `fill_stuff` [INFO] [stderr] --> src/lib.rs:94:5 [INFO] [stderr] | [INFO] [stderr] 94 | fillStuff: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `fillCol` should have a snake case name such as `fill_col` [INFO] [stderr] --> src/lib.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | fillCol: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `strokeStuff` should have a snake case name such as `stroke_stuff` [INFO] [stderr] --> src/lib.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | strokeStuff: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `strokeCol` should have a snake case name such as `stroke_col` [INFO] [stderr] --> src/lib.rs:97:5 [INFO] [stderr] | [INFO] [stderr] 97 | strokeCol: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `tintStuff` should have a snake case name such as `tint_stuff` [INFO] [stderr] --> src/lib.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | tintStuff: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `rotateZ` should have a snake case name such as `rotate_z` [INFO] [stderr] --> src/transform.rs:98:5 [INFO] [stderr] | [INFO] [stderr] warning: structure field `tintCol` should have a snake case name such as `tint_col` [INFO] [stderr] 98 | / pub fn rotateZ(&mut self, angle: f32) { [INFO] [stderr] --> src/lib.rs:99:5 [INFO] [stderr] 99 | | let m = Matrix4::from_axis_angle(&Unit::new_unchecked(Vector3::new(0., 0., 1.)), angle); [INFO] [stderr] | [INFO] [stderr] 100 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 99 | tintCol: Vec, [INFO] [stderr] 101 | | } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: structure field `drawTexture` should have a snake case name such as `draw_texture` [INFO] [stderr] --> src/lib.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | drawTexture: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: structure field `aspectRatio` should have a snake case name such as `aspect_ratio` [INFO] [stderr] --> src/lib.rs:102:5 [INFO] [stderr] | [INFO] [stderr] 102 | aspectRatio: f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `preserveAspectRatio` should have a snake case name such as `preserve_aspect_ratio` [INFO] [stderr] --> src/lib.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | preserveAspectRatio: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `fbSize` should have a snake case name such as `fb_size` [INFO] [stderr] --> src/lib.rs:104:5 [INFO] [stderr] | [INFO] [stderr] 104 | fbSize: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `strokeWeight` should have a snake case name such as `stroke_weight` [INFO] [stderr] --> src/lib.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | strokeWeight: f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `fontFace` should have a snake case name such as `font_face` [INFO] [stderr] --> src/lib.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | fontFace: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `textSize` should have a snake case name such as `text_size` [INFO] [stderr] --> src/lib.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | textSize: f32, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `cMode` should have a snake case name such as `c_mode` [INFO] [stderr] --> src/lib.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | cMode: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `ellipseMode` should have a snake case name such as `ellipse_mode` [INFO] [stderr] --> src/lib.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | ellipseMode: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `rectMode` should have a snake case name such as `rect_mode` [INFO] [stderr] --> src/lib.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 117 | rectMode: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `shapeMode` should have a snake case name such as `shape_mode` [INFO] [stderr] --> src/lib.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | shapeMode: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `imageMode` should have a snake case name such as `image_mode` [INFO] [stderr] --> src/lib.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | imageMode: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `frameRate` should have a snake case name such as `frame_rate` [INFO] [stderr] --> src/lib.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 120 | frameRate: isize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `frameCount` should have a snake case name such as `frame_count` [INFO] [stderr] --> src/lib.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | frameCount: isize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `fontsInitialized` should have a snake case name such as `fonts_initialized` [INFO] [stderr] --> src/lib.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | fontsInitialized: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `CurrShader` should have a snake case name such as `curr_shader` [INFO] [stderr] --> src/lib.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | CurrShader: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `currCursor` should have a snake case name such as `curr_cursor` [INFO] [stderr] --> src/lib.rs:124:5 [INFO] [stderr] | [INFO] [stderr] 124 | currCursor: glium::glutin::MouseCursor, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `AlternateShader` should have a snake case name such as `alternate_shader` [INFO] [stderr] --> src/lib.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | AlternateShader: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `CurrTexture` should have a snake case name such as `curr_texture` [INFO] [stderr] --> src/lib.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | CurrTexture: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `UsingAlternateShader` should have a snake case name such as `using_alternate_shader` [INFO] [stderr] --> src/lib.rs:128:5 [INFO] [stderr] | [INFO] [stderr] 128 | UsingAlternateShader: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `GlslVersion` should have a snake case name such as `glsl_version` [INFO] [stderr] --> src/lib.rs:129:5 [INFO] [stderr] | [INFO] [stderr] 129 | GlslVersion: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `shearX` should have a snake case name such as `shear_x` [INFO] [stderr] --> src/transform.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | / pub fn shearX(&mut self, angle: f32) { [INFO] [stderr] 112 | | let m = Matrix4::new( [INFO] [stderr] 113 | | 1., [INFO] [stderr] 114 | | angle.tan(), [INFO] [stderr] ... | [INFO] [stderr] 131 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `shearY` should have a snake case name such as `shear_y` [INFO] [stderr] --> src/transform.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 134 | / pub fn shearY(&mut self, angle: f32) { [INFO] [stderr] 135 | | let m = Matrix4::new( [INFO] [stderr] 136 | | 1., [INFO] [stderr] 137 | | 0., [INFO] [stderr] ... | [INFO] [stderr] 154 | | self.matrices.currMatrix = m * self.matrices.currMatrix; [INFO] [stderr] 155 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `printMatrix` should have a snake case name such as `print_matrix` [INFO] [stderr] --> src/transform.rs:163:5 [INFO] [stderr] | [INFO] [stderr] 163 | / pub fn printMatrix(&self) { [INFO] [stderr] 164 | | println!("{:?}", self.matrices.currMatrix); [INFO] [stderr] 165 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `imageMode` should have a snake case name such as `image_mode` [INFO] [stderr] --> src/image.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn imageMode(&mut self, mode: &str) { [INFO] [stderr] 18 | | self.imageMode = mode.to_owned(); [INFO] [stderr] 19 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `noTint` should have a snake case name such as `no_tint` [INFO] [stderr] --> src/image.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn noTint(&mut self) { [INFO] [stderr] 22 | | self.tintStuff = false [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/image.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | mem::transmute(&data[0]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&data[0] as *const f32 as *mut std::ffi::c_void` [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: variable `cursorType` should have a snake case name such as `cursor_type` [INFO] [stderr] --> src/environment.rs:16:30 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn cursor(&mut self, cursorType: &str) { [INFO] [stderr] | ^^^^^^^^^^ [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/environment.rs:37:46 [INFO] [stderr] | [INFO] [stderr] 37 | self.events_loop.poll_events(|event| match event { [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 38 | | glutin::Event::WindowEvent { event, .. } => { [INFO] [stderr] 39 | | match event { [INFO] [stderr] 40 | | glutin::WindowEvent::Focused(b) => { [INFO] [stderr] ... | [INFO] [stderr] 46 | | _ => (), [INFO] [stderr] 47 | | }); [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] 37 | self.events_loop.poll_events(|event| if let glutin::Event::WindowEvent { event, .. } = event { [INFO] [stderr] 38 | match event { [INFO] [stderr] 39 | glutin::WindowEvent::Focused(b) => { [INFO] [stderr] 40 | focused = true; [INFO] [stderr] 41 | } [INFO] [stderr] 42 | _ => (), [INFO] [stderr] ... [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/environment.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | / match event { [INFO] [stderr] 40 | | glutin::WindowEvent::Focused(b) => { [INFO] [stderr] 41 | | focused = true; [INFO] [stderr] 42 | | } [INFO] [stderr] 43 | | _ => (), [INFO] [stderr] 44 | | } [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] 39 | if let glutin::WindowEvent::Focused(b) = event { [INFO] [stderr] 40 | focused = true; [INFO] [stderr] 41 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method `frameCount` should have a snake case name such as `frame_count` [INFO] [stderr] --> src/environment.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / pub fn frameCount(&self) -> isize { [INFO] [stderr] 54 | | self.frameCount [INFO] [stderr] 55 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `get_frameRate` should have a snake case name such as `get_frame_rate` [INFO] [stderr] --> src/environment.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | / pub fn get_frameRate(&self) -> isize { [INFO] [stderr] 59 | | self.frameRate [INFO] [stderr] 60 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `set_frameRate` should have a snake case name such as `set_frame_rate` [INFO] [stderr] --> src/environment.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | / pub fn set_frameRate(&mut self, fRate: isize) { [INFO] [stderr] 64 | | self.frameRate = fRate; [INFO] [stderr] 65 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: variable `fRate` should have a snake case name such as `f_rate` [INFO] [stderr] --> src/environment.rs:63:37 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn set_frameRate(&mut self, fRate: isize) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `noCursor` should have a snake case name such as `no_cursor` [INFO] [stderr] --> src/environment.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | / pub fn noCursor(&mut self) { [INFO] [stderr] 74 | | unimplemented!{}; [INFO] [stderr] 75 | | // GLFW.SetInputMode(self, GLFW.CURSOR, GLFW.CURSOR_HIDDEN); [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `noSmooth` should have a snake case name such as `no_smooth` [INFO] [stderr] --> src/environment.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | / pub fn noSmooth(&mut self) { [INFO] [stderr] 80 | | self.draw_params = glium::draw_parameters::DrawParameters { [INFO] [stderr] 81 | | smooth: None, [INFO] [stderr] 82 | | ..self.draw_params.clone() [INFO] [stderr] 83 | | }; [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/input.rs:10:17 [INFO] [stderr] | [INFO] [stderr] 10 | / if k == b { [INFO] [stderr] 11 | | return true; [INFO] [stderr] 12 | | } else { [INFO] [stderr] 13 | | return false; [INFO] [stderr] 14 | | } [INFO] [stderr] | |_________________^ help: you can reduce it to: `return k == b` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: method `SpaceWait` should have a snake case name such as `space_wait` [INFO] [stderr] --> src/input.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn SpaceWait(&mut self) { [INFO] [stderr] 23 | | self.events_loop.run_forever(|event| match event { [INFO] [stderr] 24 | | glutin::Event::WindowEvent { event, .. } => { [INFO] [stderr] 25 | | match event { [INFO] [stderr] ... | [INFO] [stderr] 39 | | }); [INFO] [stderr] 40 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `MousePress` should have a snake case name such as `mouse_press` [INFO] [stderr] --> src/input.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | / pub fn MousePress>(&mut self, button: B) -> bool { [INFO] [stderr] 43 | | match self.mousepressed { [INFO] [stderr] 44 | | Some(b) => { [INFO] [stderr] 45 | | let btn: glutin::MouseButton = button.into(); [INFO] [stderr] ... | [INFO] [stderr] 55 | | } [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/input.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | / if b == btn { [INFO] [stderr] 47 | | return true; [INFO] [stderr] 48 | | } else { [INFO] [stderr] 49 | | return false; [INFO] [stderr] 50 | | } [INFO] [stderr] | |_________________^ help: you can reduce it to: `return b == btn` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: method `MouseRelease` should have a snake case name such as `mouse_release` [INFO] [stderr] --> src/input.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | / pub fn MouseRelease>(&mut self, button: B) -> bool { [INFO] [stderr] 59 | | match self.mousereleased { [INFO] [stderr] 60 | | Some(b) => { [INFO] [stderr] 61 | | let btn: glutin::MouseButton = button.into(); [INFO] [stderr] ... | [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/input.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | / if b == btn { [INFO] [stderr] 63 | | return true; [INFO] [stderr] 64 | | } else { [INFO] [stderr] 65 | | return false; [INFO] [stderr] 66 | | } [INFO] [stderr] | |_________________^ help: you can reduce it to: `return b == btn` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: method `MouseX` should have a snake case name such as `mouse_x` [INFO] [stderr] --> src/input.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | / pub fn MouseX(&mut self) -> f64 { [INFO] [stderr] 75 | | self.mousepos.0 [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `MouseY` should have a snake case name such as `mouse_y` [INFO] [stderr] --> src/input.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | / pub fn MouseY(&mut self) -> f64 { [INFO] [stderr] 79 | | self.mousepos.1 [INFO] [stderr] 80 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: constant `perlin` should have an upper case name such as `PERLIN` [INFO] [stderr] --> src/constants.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | / pub const perlin: [isize; 512] = [ [INFO] [stderr] 19 | | 151, [INFO] [stderr] 20 | | 160, [INFO] [stderr] 21 | | 137, [INFO] [stderr] ... | [INFO] [stderr] 530 | | 180, [INFO] [stderr] 531 | | ]; [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_upper_case_globals)] on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `processing`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: structure field `currMatrix` should have a snake case name such as `curr_matrix` [INFO] [stderr] --> src/lib.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | pub currMatrix: Matrix4, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `matrixStack` should have a snake case name such as `matrix_stack` [INFO] [stderr] --> src/lib.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | matrixStack: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `FBTexture` should have a snake case name such as `fbtexture` [INFO] [stderr] --> src/lib.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | FBTexture: glium::texture::Texture2d, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `FBO` should have a snake case name such as `fbo` [INFO] [stderr] --> src/lib.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | FBO: owning_ref::OwningHandle, Box>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `bgCol` should have a snake case name such as `bg_col` [INFO] [stderr] --> src/lib.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | bgCol: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `fillStuff` should have a snake case name such as `fill_stuff` [INFO] [stderr] --> src/lib.rs:94:5 [INFO] [stderr] | [INFO] [stderr] 94 | fillStuff: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `fillCol` should have a snake case name such as `fill_col` [INFO] [stderr] --> src/lib.rs:95:5 [INFO] [stderr] | [INFO] [stderr] 95 | fillCol: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `strokeStuff` should have a snake case name such as `stroke_stuff` [INFO] [stderr] --> src/lib.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | strokeStuff: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `strokeCol` should have a snake case name such as `stroke_col` [INFO] [stderr] --> src/lib.rs:97:5 [INFO] [stderr] | [INFO] [stderr] 97 | strokeCol: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `tintStuff` should have a snake case name such as `tint_stuff` [INFO] [stderr] --> src/lib.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | tintStuff: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `tintCol` should have a snake case name such as `tint_col` [INFO] [stderr] --> src/lib.rs:99:5 [INFO] [stderr] | [INFO] [stderr] 99 | tintCol: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `drawTexture` should have a snake case name such as `draw_texture` [INFO] [stderr] --> src/lib.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | drawTexture: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `aspectRatio` should have a snake case name such as `aspect_ratio` [INFO] [stderr] --> src/lib.rs:102:5 [INFO] [stderr] | [INFO] [stderr] 102 | aspectRatio: f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `preserveAspectRatio` should have a snake case name such as `preserve_aspect_ratio` [INFO] [stderr] --> src/lib.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | preserveAspectRatio: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `fbSize` should have a snake case name such as `fb_size` [INFO] [stderr] --> src/lib.rs:104:5 [INFO] [stderr] | [INFO] [stderr] 104 | fbSize: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `strokeWeight` should have a snake case name such as `stroke_weight` [INFO] [stderr] --> src/lib.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | strokeWeight: f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `fontFace` should have a snake case name such as `font_face` [INFO] [stderr] --> src/lib.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | fontFace: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `textSize` should have a snake case name such as `text_size` [INFO] [stderr] --> src/lib.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | textSize: f32, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `cMode` should have a snake case name such as `c_mode` [INFO] [stderr] --> src/lib.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | cMode: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `ellipseMode` should have a snake case name such as `ellipse_mode` [INFO] [stderr] --> src/lib.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | ellipseMode: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `rectMode` should have a snake case name such as `rect_mode` [INFO] [stderr] --> src/lib.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 117 | rectMode: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `shapeMode` should have a snake case name such as `shape_mode` [INFO] [stderr] --> src/lib.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | shapeMode: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `imageMode` should have a snake case name such as `image_mode` [INFO] [stderr] --> src/lib.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | imageMode: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `frameRate` should have a snake case name such as `frame_rate` [INFO] [stderr] --> src/lib.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 120 | frameRate: isize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `frameCount` should have a snake case name such as `frame_count` [INFO] [stderr] --> src/lib.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | frameCount: isize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `fontsInitialized` should have a snake case name such as `fonts_initialized` [INFO] [stderr] --> src/lib.rs:122:5 [INFO] [stderr] | [INFO] [stderr] 122 | fontsInitialized: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `CurrShader` should have a snake case name such as `curr_shader` [INFO] [stderr] --> src/lib.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | CurrShader: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `currCursor` should have a snake case name such as `curr_cursor` [INFO] [stderr] --> src/lib.rs:124:5 [INFO] [stderr] | [INFO] [stderr] 124 | currCursor: glium::glutin::MouseCursor, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `AlternateShader` should have a snake case name such as `alternate_shader` [INFO] [stderr] --> src/lib.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | AlternateShader: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `CurrTexture` should have a snake case name such as `curr_texture` [INFO] [stderr] --> src/lib.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 127 | CurrTexture: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `UsingAlternateShader` should have a snake case name such as `using_alternate_shader` [INFO] [stderr] --> src/lib.rs:128:5 [INFO] [stderr] | [INFO] [stderr] 128 | UsingAlternateShader: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `GlslVersion` should have a snake case name such as `glsl_version` [INFO] [stderr] --> src/lib.rs:129:5 [INFO] [stderr] | [INFO] [stderr] 129 | GlslVersion: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 6 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `processing`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "6ab83338c4db2666960baf124f67c728d6e699c93896b9d92d48e6d56cac81cd"` [INFO] running `"docker" "rm" "-f" "6ab83338c4db2666960baf124f67c728d6e699c93896b9d92d48e6d56cac81cd"` [INFO] [stdout] 6ab83338c4db2666960baf124f67c728d6e699c93896b9d92d48e6d56cac81cd