[INFO] updating cached repository garyemerson/tinyrenderer_rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/garyemerson/tinyrenderer_rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/garyemerson/tinyrenderer_rust" "work/ex/clippy-test-run/sources/stable/gh/garyemerson/tinyrenderer_rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/garyemerson/tinyrenderer_rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/garyemerson/tinyrenderer_rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/garyemerson/tinyrenderer_rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/garyemerson/tinyrenderer_rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] a3b6875ff8e64b89504c0863730df3ff3126fa03 [INFO] sha for GitHub repo garyemerson/tinyrenderer_rust: a3b6875ff8e64b89504c0863730df3ff3126fa03 [INFO] validating manifest of garyemerson/tinyrenderer_rust 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 garyemerson/tinyrenderer_rust 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 garyemerson/tinyrenderer_rust [INFO] finished frobbing garyemerson/tinyrenderer_rust [INFO] frobbed toml for garyemerson/tinyrenderer_rust written to work/ex/clippy-test-run/sources/stable/gh/garyemerson/tinyrenderer_rust/Cargo.toml [INFO] started frobbing garyemerson/tinyrenderer_rust [INFO] finished frobbing garyemerson/tinyrenderer_rust [INFO] frobbed toml for garyemerson/tinyrenderer_rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/garyemerson/tinyrenderer_rust/Cargo.toml [INFO] crate garyemerson/tinyrenderer_rust has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting garyemerson/tinyrenderer_rust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/garyemerson/tinyrenderer_rust:/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] c1f5dbf9b67af2fee4652dd21a53550f1a8440d44c9dd67d8c4f75c901eef997 [INFO] running `"docker" "start" "-a" "c1f5dbf9b67af2fee4652dd21a53550f1a8440d44c9dd67d8c4f75c901eef997"` [INFO] [stderr] Checking alga v0.5.2 [INFO] [stderr] Checking cgmath v0.16.0 [INFO] [stderr] Checking nalgebra v0.14.0 [INFO] [stderr] Checking tinyrenderer_rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/img.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | buf: buf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf` [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/img.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/img.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | h: h, [INFO] [stderr] | ^^^^ help: replace it with: `h` [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/old.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | let m = viewport * project * model_view; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/old.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | let u = p1 - p0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/img.rs:16:13 [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] 16 | buf: buf, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `buf` [INFO] [stderr] [INFO] [stderr] warning: 7th binding whose name is just one char [INFO] [stderr] --> src/old.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | let v = p2 - p0; [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/model.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | faces: faces, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `faces` [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/model.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | face_normals: face_normals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `face_normals` [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/model.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | face_texture_vertices: face_texture_vertices, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `face_texture_vertices` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/model.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | vertices: vertices, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `vertices` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/model.rs:142:13 [INFO] [stderr] | [INFO] [stderr] 142 | faces: faces, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `faces` [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/model.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | texture_vertices: texture_vertices, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `texture_vertices` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/model.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | vertice_normals: vertice_normals [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vertice_normals` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/main.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | let m = viewport * project * model_view; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/main.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | let t = Matrix4::new( [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] | [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/img.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/img.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | h: h, [INFO] [stderr] | ^^^^ help: replace it with: `h` [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/old.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | let m = viewport * project * model_view; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/old.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | let u = p1 - p0; [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: 7th binding whose name is just one char [INFO] [stderr] --> src/old.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | let v = p2 - p0; [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/model.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | faces: faces, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `faces` [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/model.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | face_normals: face_normals, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `face_normals` [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/model.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | face_texture_vertices: face_texture_vertices, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `face_texture_vertices` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/model.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | vertices: vertices, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `vertices` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/model.rs:142:13 [INFO] [stderr] | [INFO] [stderr] 142 | faces: faces, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `faces` [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/model.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | texture_vertices: texture_vertices, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `texture_vertices` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/model.rs:144:13 [INFO] [stderr] | [INFO] [stderr] 144 | vertice_normals: vertice_normals [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `vertice_normals` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/main.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | let m = viewport * project * model_view; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/main.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | let t = Matrix4::new( [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: unused import: `Vector4` [INFO] [stderr] --> src/our_gl.rs:1:40 [INFO] [stderr] | [INFO] [stderr] 1 | use nalgebra::core::{Vector2, Vector3, Vector4}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Occupied`, `Vacant` [INFO] [stderr] --> src/our_gl.rs:5:41 [INFO] [stderr] | [INFO] [stderr] 5 | use std::collections::hash_map::Entry::{Occupied, Vacant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/old.rs:346:9 [INFO] [stderr] | [INFO] [stderr] 346 | ((p.x + 1.0) * width / 2.0 + 0.5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/old.rs:347:9 [INFO] [stderr] | [INFO] [stderr] 347 | ((p.y + 1.0) * height / 2.0 + 0.5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/old.rs:753:17 [INFO] [stderr] | [INFO] [stderr] 753 | for _ in 0..1000000 { [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Matrix2x3`, `Vector4` [INFO] [stderr] --> src/main.rs:25:40 [INFO] [stderr] | [INFO] [stderr] 25 | use nalgebra::core::{Vector2, Vector3, Vector4, Matrix4, Matrix2x3}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:221:5 [INFO] [stderr] | [INFO] [stderr] 221 | texture [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:211:19 [INFO] [stderr] | [INFO] [stderr] 211 | let texture = match decoder.read_image().unwrap() { [INFO] [stderr] | ___________________^ [INFO] [stderr] 212 | | U8(vec) => { [INFO] [stderr] 213 | | ImageBuffer::, Vec>::from_raw(width, height, vec).unwrap() [INFO] [stderr] 214 | | }, [INFO] [stderr] ... | [INFO] [stderr] 219 | | }, [INFO] [stderr] 220 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `Vector4` [INFO] [stderr] --> src/our_gl.rs:1:40 [INFO] [stderr] | [INFO] [stderr] 1 | use nalgebra::core::{Vector2, Vector3, Vector4}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Occupied`, `Vacant` [INFO] [stderr] --> src/our_gl.rs:5:41 [INFO] [stderr] | [INFO] [stderr] 5 | use std::collections::hash_map::Entry::{Occupied, Vacant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/old.rs:346:9 [INFO] [stderr] | [INFO] [stderr] 346 | ((p.x + 1.0) * width / 2.0 + 0.5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/old.rs:347:9 [INFO] [stderr] | [INFO] [stderr] 347 | ((p.y + 1.0) * height / 2.0 + 0.5), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/old.rs:753:17 [INFO] [stderr] | [INFO] [stderr] 753 | for _ in 0..1000000 { [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Matrix2x3`, `Vector4` [INFO] [stderr] --> src/main.rs:25:40 [INFO] [stderr] | [INFO] [stderr] 25 | use nalgebra::core::{Vector2, Vector3, Vector4, Matrix4, Matrix2x3}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:221:5 [INFO] [stderr] | [INFO] [stderr] 221 | texture [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:211:19 [INFO] [stderr] | [INFO] [stderr] 211 | let texture = match decoder.read_image().unwrap() { [INFO] [stderr] | ___________________^ [INFO] [stderr] 212 | | U8(vec) => { [INFO] [stderr] 213 | | ImageBuffer::, Vec>::from_raw(width, height, vec).unwrap() [INFO] [stderr] 214 | | }, [INFO] [stderr] ... | [INFO] [stderr] 219 | | }, [INFO] [stderr] 220 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `m_inv_trans` [INFO] [stderr] --> src/main.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | let m_inv_trans = m4_inverse((project * model_view).transpose()); [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_m_inv_trans` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `m_inv_trans` [INFO] [stderr] --> src/main.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | let m_inv_trans = m4_inverse((project * model_view).transpose()); [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_m_inv_trans` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `GouraudShader6Color` [INFO] [stderr] --> src/main.rs:85:1 [INFO] [stderr] | [INFO] [stderr] 85 | struct GouraudShader6Color { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/our_gl.rs:25:14 [INFO] [stderr] | [INFO] [stderr] 25 | for x in bb_lower_left.x..(bb_up_right.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_lower_left.x..=bb_up_right.x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/our_gl.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | for y in bb_up_right.y..(bb_lower_left.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_up_right.y..=bb_lower_left.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/old.rs:121:1 [INFO] [stderr] | [INFO] [stderr] 121 | / fn triangle_with_zbuff_and_texture( [INFO] [stderr] 122 | | p0: Vector3, [INFO] [stderr] 123 | | p1: Vector3, [INFO] [stderr] 124 | | p2: Vector3, [INFO] [stderr] ... | [INFO] [stderr] 181 | | } [INFO] [stderr] 182 | | } [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: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:136:14 [INFO] [stderr] | [INFO] [stderr] 136 | for x in bb_lower_left.x..(bb_up_right.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_lower_left.x..=bb_up_right.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:137:18 [INFO] [stderr] | [INFO] [stderr] 137 | for y in bb_up_right.y..(bb_lower_left.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_up_right.y..=bb_lower_left.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/old.rs:512:1 [INFO] [stderr] | [INFO] [stderr] 512 | / fn triangle_with_zbuff_and_texture_old( [INFO] [stderr] 513 | | p0: Vector3, [INFO] [stderr] 514 | | p1: Vector3, [INFO] [stderr] 515 | | p2: Vector3, [INFO] [stderr] ... | [INFO] [stderr] 554 | | } [INFO] [stderr] 555 | | } [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: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:527:14 [INFO] [stderr] | [INFO] [stderr] 527 | for x in bb_lower_left.x..(bb_up_right.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_lower_left.x..=bb_up_right.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:528:18 [INFO] [stderr] | [INFO] [stderr] 528 | for y in bb_up_right.y..(bb_lower_left.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_up_right.y..=bb_lower_left.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:544:22 [INFO] [stderr] | [INFO] [stderr] 544 | (tpx[0] as f32 * light_insensity) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(tpx[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:545:22 [INFO] [stderr] | [INFO] [stderr] 545 | (tpx[1] as f32 * light_insensity) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(tpx[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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:546:22 [INFO] [stderr] | [INFO] [stderr] 546 | (tpx[2] as f32 * light_insensity) as u8); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(tpx[2])` [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: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:568:14 [INFO] [stderr] | [INFO] [stderr] 568 | for x in bb_lower_left.x..(bb_up_right.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_lower_left.x..=bb_up_right.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:569:18 [INFO] [stderr] | [INFO] [stderr] 569 | for y in bb_up_right.y..(bb_lower_left.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_up_right.y..=bb_lower_left.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:589:14 [INFO] [stderr] | [INFO] [stderr] 589 | for x in p0.x..(p1.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `p0.x..=p1.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/old.rs:631:9 [INFO] [stderr] | [INFO] [stderr] 631 | norm.0 = norm.0 / mag; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `norm.0 /= mag` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/old.rs:632:9 [INFO] [stderr] | [INFO] [stderr] 632 | norm.1 = norm.1 / mag; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `norm.1 /= mag` [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/old.rs:633:9 [INFO] [stderr] | [INFO] [stderr] 633 | norm.2 = norm.2 / mag; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `norm.2 /= mag` [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: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:699:14 [INFO] [stderr] | [INFO] [stderr] 699 | for x in bb_lower_left.x..(bb_up_right.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_lower_left.x..=bb_up_right.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:700:18 [INFO] [stderr] | [INFO] [stderr] 700 | for y in bb_up_right.y..(bb_lower_left.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_up_right.y..=bb_lower_left.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:716:14 [INFO] [stderr] | [INFO] [stderr] 716 | for y in p0.y..(p1.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `p0.y..=p1.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:725:18 [INFO] [stderr] | [INFO] [stderr] 725 | for x in ax..(bx + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `ax..=bx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:731:14 [INFO] [stderr] | [INFO] [stderr] 731 | for y in p1.y..(p2.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `p1.y..=p2.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:739:18 [INFO] [stderr] | [INFO] [stderr] 739 | for x in ax..(bx + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `ax..=bx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/old.rs:791:5 [INFO] [stderr] | [INFO] [stderr] 791 | / let mut steep = false; [INFO] [stderr] 792 | | if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { // if the line is steep, we transpose the image [INFO] [stderr] 793 | | mem::swap(&mut x0, &mut y0); [INFO] [stderr] 794 | | mem::swap(&mut x1, &mut y1); [INFO] [stderr] 795 | | steep = true; [INFO] [stderr] 796 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let steep = if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:811:14 [INFO] [stderr] | [INFO] [stderr] 811 | for x in x0..(x1 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `x0..=x1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/old.rs:815:13 [INFO] [stderr] | [INFO] [stderr] 815 | error2 = error2 + dy; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `error2 += dy` [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/old.rs:824:5 [INFO] [stderr] | [INFO] [stderr] 824 | / let mut steep = false; [INFO] [stderr] 825 | | if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { // if the line is steep, we transpose the image [INFO] [stderr] 826 | | mem::swap(&mut x0, &mut y0); [INFO] [stderr] 827 | | mem::swap(&mut x1, &mut y1); [INFO] [stderr] 828 | | steep = true; [INFO] [stderr] 829 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let steep = if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:837:23 [INFO] [stderr] | [INFO] [stderr] 837 | let derror: f64 = (dy as f64) / (dx as f64); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(dy)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:837:37 [INFO] [stderr] | [INFO] [stderr] 837 | let derror: f64 = (dy as f64) / (dx as f64); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(dx)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:841:14 [INFO] [stderr] | [INFO] [stderr] 841 | for x in x0..(x1 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `x0..=x1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/old.rs:857:5 [INFO] [stderr] | [INFO] [stderr] 857 | / let mut steep = false; [INFO] [stderr] 858 | | if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { // if the line is steep, we transpose the image [INFO] [stderr] 859 | | mem::swap(&mut x0, &mut y0); [INFO] [stderr] 860 | | mem::swap(&mut x1, &mut y1); [INFO] [stderr] 861 | | steep = true; [INFO] [stderr] 862 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let steep = if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:868:14 [INFO] [stderr] | [INFO] [stderr] 868 | for x in x0..(x1 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `x0..=x1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:869:17 [INFO] [stderr] | [INFO] [stderr] 869 | let t = ((x - x0) as f64) / ((x1 - x0) as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(x - x0)` [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/old.rs:869:37 [INFO] [stderr] | [INFO] [stderr] 869 | let t = ((x - x0) as f64) / ((x1 - x0) as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x1 - x0)` [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/old.rs:870:17 [INFO] [stderr] | [INFO] [stderr] 870 | let y = (y0 as f64) * (1f64 - t) + (y1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(y0)` [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/old.rs:870:44 [INFO] [stderr] | [INFO] [stderr] 870 | let y = (y0 as f64) * (1f64 - t) + (y1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(y1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:882:17 [INFO] [stderr] | [INFO] [stderr] 882 | let t = (step as f64) / 100f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(step)` [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/old.rs:883:17 [INFO] [stderr] | [INFO] [stderr] 883 | let x = (x0 as f64) * (1f64 - t) + (x1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(x0)` [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/old.rs:883:44 [INFO] [stderr] | [INFO] [stderr] 883 | let x = (x0 as f64) * (1f64 - t) + (x1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(x1)` [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/old.rs:884:17 [INFO] [stderr] | [INFO] [stderr] 884 | let y = (y0 as f64) * (1f64 - t) + (y1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(y0)` [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/old.rs:884:44 [INFO] [stderr] | [INFO] [stderr] 884 | let y = (y0 as f64) * (1f64 - t) + (y1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(y1)` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/old.rs:890:34 [INFO] [stderr] | [INFO] [stderr] 890 | fn parse_obj_file(path: &str) -> ( [INFO] [stderr] | __________________________________^ [INFO] [stderr] 891 | | Vec<(f32, f32, f32)>, [INFO] [stderr] 892 | | Vec<((usize, usize, usize), (usize, usize, usize))>, [INFO] [stderr] 893 | | Vec<(f32, f32)>, [INFO] [stderr] 894 | | Vec<(f32, f32, f32)>) [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `GouraudShader6Color` [INFO] [stderr] --> src/main.rs:85:1 [INFO] [stderr] | [INFO] [stderr] 85 | struct GouraudShader6Color { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/model.rs:30:12 [INFO] [stderr] | [INFO] [stderr] 30 | faces: Vec<((usize, usize, usize), (usize, usize, usize))>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/our_gl.rs:25:14 [INFO] [stderr] | [INFO] [stderr] 25 | for x in bb_lower_left.x..(bb_up_right.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_lower_left.x..=bb_up_right.x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/our_gl.rs:26:18 [INFO] [stderr] | [INFO] [stderr] 26 | for y in bb_up_right.y..(bb_lower_left.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_up_right.y..=bb_lower_left.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/old.rs:121:1 [INFO] [stderr] | [INFO] [stderr] 121 | / fn triangle_with_zbuff_and_texture( [INFO] [stderr] 122 | | p0: Vector3, [INFO] [stderr] 123 | | p1: Vector3, [INFO] [stderr] 124 | | p2: Vector3, [INFO] [stderr] ... | [INFO] [stderr] 181 | | } [INFO] [stderr] 182 | | } [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/main.rs:180:16 [INFO] [stderr] | [INFO] [stderr] 180 | let temp = m.iter().map(|x| *x).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `m.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: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:136:14 [INFO] [stderr] | [INFO] [stderr] 136 | for x in bb_lower_left.x..(bb_up_right.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_lower_left.x..=bb_up_right.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:137:18 [INFO] [stderr] | [INFO] [stderr] 137 | for y in bb_up_right.y..(bb_lower_left.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_up_right.y..=bb_lower_left.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (10/7) [INFO] [stderr] --> src/old.rs:512:1 [INFO] [stderr] | [INFO] [stderr] 512 | / fn triangle_with_zbuff_and_texture_old( [INFO] [stderr] 513 | | p0: Vector3, [INFO] [stderr] 514 | | p1: Vector3, [INFO] [stderr] 515 | | p2: Vector3, [INFO] [stderr] ... | [INFO] [stderr] 554 | | } [INFO] [stderr] 555 | | } [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: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:527:14 [INFO] [stderr] | [INFO] [stderr] 527 | for x in bb_lower_left.x..(bb_up_right.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_lower_left.x..=bb_up_right.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:528:18 [INFO] [stderr] | [INFO] [stderr] 528 | for y in bb_up_right.y..(bb_lower_left.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_up_right.y..=bb_lower_left.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:544:22 [INFO] [stderr] | [INFO] [stderr] 544 | (tpx[0] as f32 * light_insensity) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(tpx[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:545:22 [INFO] [stderr] | [INFO] [stderr] 545 | (tpx[1] as f32 * light_insensity) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(tpx[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 u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:546:22 [INFO] [stderr] | [INFO] [stderr] 546 | (tpx[2] as f32 * light_insensity) as u8); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(tpx[2])` [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: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:568:14 [INFO] [stderr] | [INFO] [stderr] 568 | for x in bb_lower_left.x..(bb_up_right.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_lower_left.x..=bb_up_right.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:569:18 [INFO] [stderr] | [INFO] [stderr] 569 | for y in bb_up_right.y..(bb_lower_left.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_up_right.y..=bb_lower_left.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:589:14 [INFO] [stderr] | [INFO] [stderr] 589 | for x in p0.x..(p1.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `p0.x..=p1.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/old.rs:631:9 [INFO] [stderr] | [INFO] [stderr] 631 | norm.0 = norm.0 / mag; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `norm.0 /= mag` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/old.rs:632:9 [INFO] [stderr] | [INFO] [stderr] 632 | norm.1 = norm.1 / mag; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `norm.1 /= mag` [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/old.rs:633:9 [INFO] [stderr] | [INFO] [stderr] 633 | norm.2 = norm.2 / mag; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `norm.2 /= mag` [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: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:699:14 [INFO] [stderr] | [INFO] [stderr] 699 | for x in bb_lower_left.x..(bb_up_right.x + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_lower_left.x..=bb_up_right.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:700:18 [INFO] [stderr] | [INFO] [stderr] 700 | for y in bb_up_right.y..(bb_lower_left.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `bb_up_right.y..=bb_lower_left.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:716:14 [INFO] [stderr] | [INFO] [stderr] 716 | for y in p0.y..(p1.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `p0.y..=p1.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:725:18 [INFO] [stderr] | [INFO] [stderr] 725 | for x in ax..(bx + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `ax..=bx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:731:14 [INFO] [stderr] | [INFO] [stderr] 731 | for y in p1.y..(p2.y + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `p1.y..=p2.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:739:18 [INFO] [stderr] | [INFO] [stderr] 739 | for x in ax..(bx + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `ax..=bx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/old.rs:791:5 [INFO] [stderr] | [INFO] [stderr] 791 | / let mut steep = false; [INFO] [stderr] 792 | | if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { // if the line is steep, we transpose the image [INFO] [stderr] 793 | | mem::swap(&mut x0, &mut y0); [INFO] [stderr] 794 | | mem::swap(&mut x1, &mut y1); [INFO] [stderr] 795 | | steep = true; [INFO] [stderr] 796 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let steep = if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:811:14 [INFO] [stderr] | [INFO] [stderr] 811 | for x in x0..(x1 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `x0..=x1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/old.rs:815:13 [INFO] [stderr] | [INFO] [stderr] 815 | error2 = error2 + dy; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `error2 += dy` [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/old.rs:824:5 [INFO] [stderr] | [INFO] [stderr] 824 | / let mut steep = false; [INFO] [stderr] 825 | | if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { // if the line is steep, we transpose the image [INFO] [stderr] 826 | | mem::swap(&mut x0, &mut y0); [INFO] [stderr] 827 | | mem::swap(&mut x1, &mut y1); [INFO] [stderr] 828 | | steep = true; [INFO] [stderr] 829 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let steep = if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:837:23 [INFO] [stderr] | [INFO] [stderr] 837 | let derror: f64 = (dy as f64) / (dx as f64); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(dy)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:837:37 [INFO] [stderr] | [INFO] [stderr] 837 | let derror: f64 = (dy as f64) / (dx as f64); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(dx)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:841:14 [INFO] [stderr] | [INFO] [stderr] 841 | for x in x0..(x1 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `x0..=x1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/old.rs:857:5 [INFO] [stderr] | [INFO] [stderr] 857 | / let mut steep = false; [INFO] [stderr] 858 | | if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { // if the line is steep, we transpose the image [INFO] [stderr] 859 | | mem::swap(&mut x0, &mut y0); [INFO] [stderr] 860 | | mem::swap(&mut x1, &mut y1); [INFO] [stderr] 861 | | steep = true; [INFO] [stderr] 862 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let steep = if ((x0 as i32) - (x1 as i32)).abs() < ((y0 as i32) - (y1 as i32)).abs() { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/old.rs:868:14 [INFO] [stderr] | [INFO] [stderr] 868 | for x in x0..(x1 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^ help: use: `x0..=x1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:869:17 [INFO] [stderr] | [INFO] [stderr] 869 | let t = ((x - x0) as f64) / ((x1 - x0) as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(x - x0)` [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/old.rs:869:37 [INFO] [stderr] | [INFO] [stderr] 869 | let t = ((x - x0) as f64) / ((x1 - x0) as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x1 - x0)` [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/old.rs:870:17 [INFO] [stderr] | [INFO] [stderr] 870 | let y = (y0 as f64) * (1f64 - t) + (y1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(y0)` [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/old.rs:870:44 [INFO] [stderr] | [INFO] [stderr] 870 | let y = (y0 as f64) * (1f64 - t) + (y1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(y1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/old.rs:882:17 [INFO] [stderr] | [INFO] [stderr] 882 | let t = (step as f64) / 100f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(step)` [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/old.rs:883:17 [INFO] [stderr] | [INFO] [stderr] 883 | let x = (x0 as f64) * (1f64 - t) + (x1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(x0)` [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/old.rs:883:44 [INFO] [stderr] | [INFO] [stderr] 883 | let x = (x0 as f64) * (1f64 - t) + (x1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(x1)` [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/old.rs:884:17 [INFO] [stderr] | [INFO] [stderr] 884 | let y = (y0 as f64) * (1f64 - t) + (y1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(y0)` [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/old.rs:884:44 [INFO] [stderr] | [INFO] [stderr] 884 | let y = (y0 as f64) * (1f64 - t) + (y1 as f64) * t; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(y1)` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/old.rs:890:34 [INFO] [stderr] | [INFO] [stderr] 890 | fn parse_obj_file(path: &str) -> ( [INFO] [stderr] | __________________________________^ [INFO] [stderr] 891 | | Vec<(f32, f32, f32)>, [INFO] [stderr] 892 | | Vec<((usize, usize, usize), (usize, usize, usize))>, [INFO] [stderr] 893 | | Vec<(f32, f32)>, [INFO] [stderr] 894 | | Vec<(f32, f32, f32)>) [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/model.rs:30:12 [INFO] [stderr] | [INFO] [stderr] 30 | faces: Vec<((usize, usize, usize), (usize, usize, usize))>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/main.rs:180:16 [INFO] [stderr] | [INFO] [stderr] 180 | let temp = m.iter().map(|x| *x).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `m.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] Finished dev [unoptimized + debuginfo] target(s) in 40.92s [INFO] running `"docker" "inspect" "c1f5dbf9b67af2fee4652dd21a53550f1a8440d44c9dd67d8c4f75c901eef997"` [INFO] running `"docker" "rm" "-f" "c1f5dbf9b67af2fee4652dd21a53550f1a8440d44c9dd67d8c4f75c901eef997"` [INFO] [stdout] c1f5dbf9b67af2fee4652dd21a53550f1a8440d44c9dd67d8c4f75c901eef997