[INFO] updating cached repository antoinedesbois/Ray-Tracer-Rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/antoinedesbois/Ray-Tracer-Rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/antoinedesbois/Ray-Tracer-Rust" "work/ex/clippy-test-run/sources/stable/gh/antoinedesbois/Ray-Tracer-Rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/antoinedesbois/Ray-Tracer-Rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/antoinedesbois/Ray-Tracer-Rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/antoinedesbois/Ray-Tracer-Rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/antoinedesbois/Ray-Tracer-Rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ce939d81cf36b126d9b05e922c31799065b62999 [INFO] sha for GitHub repo antoinedesbois/Ray-Tracer-Rust: ce939d81cf36b126d9b05e922c31799065b62999 [INFO] validating manifest of antoinedesbois/Ray-Tracer-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 antoinedesbois/Ray-Tracer-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 antoinedesbois/Ray-Tracer-Rust [INFO] finished frobbing antoinedesbois/Ray-Tracer-Rust [INFO] frobbed toml for antoinedesbois/Ray-Tracer-Rust written to work/ex/clippy-test-run/sources/stable/gh/antoinedesbois/Ray-Tracer-Rust/Cargo.toml [INFO] started frobbing antoinedesbois/Ray-Tracer-Rust [INFO] finished frobbing antoinedesbois/Ray-Tracer-Rust [INFO] frobbed toml for antoinedesbois/Ray-Tracer-Rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/antoinedesbois/Ray-Tracer-Rust/Cargo.toml [INFO] crate antoinedesbois/Ray-Tracer-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 antoinedesbois/Ray-Tracer-Rust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/antoinedesbois/Ray-Tracer-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] 1e2ec89dbf6e292cc75b1beadcdf57ac093da3123021bcb34417c657fba26126 [INFO] running `"docker" "start" "-a" "1e2ec89dbf6e292cc75b1beadcdf57ac093da3123021bcb34417c657fba26126"` [INFO] [stderr] Compiling typenum v1.7.0 [INFO] [stderr] Checking num-complex v0.1.37 [INFO] [stderr] Checking rayon-core v1.0.0 [INFO] [stderr] Checking rayon v0.7.0 [INFO] [stderr] Checking alga v0.5.1 [INFO] [stderr] Checking generic-array v0.2.1 [INFO] [stderr] Checking jpeg-decoder v0.1.12 [INFO] [stderr] Checking image v0.12.3 [INFO] [stderr] Checking nalgebra v0.11.2 [INFO] [stderr] Checking ray_tracer_rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tracer/utils/color.rs:18:24 [INFO] [stderr] | [INFO] [stderr] 18 | return Color { red: red, green: green, blue: blue }; [INFO] [stderr] | ^^^^^^^^ help: replace it with: `red` [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/tracer/utils/color.rs:18:34 [INFO] [stderr] | [INFO] [stderr] 18 | return Color { red: red, green: green, blue: blue }; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `green` [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/tracer/utils/color.rs:18:48 [INFO] [stderr] | [INFO] [stderr] 18 | return Color { red: red, green: green, blue: blue }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `blue` [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/tracer/utils/ray.rs:14:10 [INFO] [stderr] | [INFO] [stderr] 14 | origin: origin, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [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/tracer/utils/camera.rs:26:10 [INFO] [stderr] | [INFO] [stderr] 26 | u: u, [INFO] [stderr] | ^^^^ help: replace it with: `u` [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/tracer/utils/camera.rs:28:10 [INFO] [stderr] | [INFO] [stderr] 28 | 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/tracer/utils/camera.rs:30:10 [INFO] [stderr] | [INFO] [stderr] 30 | eye: eye, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `eye` [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/tracer/utils/camera.rs:31:10 [INFO] [stderr] | [INFO] [stderr] 31 | look_at: look_at, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `look_at` [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/tracer/utils/camera.rs:33:10 [INFO] [stderr] | [INFO] [stderr] 33 | distance: distance [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `distance` [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/tracer/utils/bounding_volume_hierarchy.rs:73:28 [INFO] [stderr] | [INFO] [stderr] 73 | p_hit: p_hit, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `p_hit` [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/tracer/primitives/sphere.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | radius: radius, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `radius` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tracer/primitives/sphere.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | origin: origin, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [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/tracer/primitives/sphere.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | color: color, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tracer/primitives/bounding_box.rs:92:10 [INFO] [stderr] | [INFO] [stderr] 92 | min: min, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `min` [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/tracer/primitives/bounding_box.rs:93:10 [INFO] [stderr] | [INFO] [stderr] 93 | max: max [INFO] [stderr] | ^^^^^^^^ help: replace it with: `max` [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/tracer/primitives/triangle.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | v0: v0, [INFO] [stderr] | ^^^^^^ help: replace it with: `v0` [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/tracer/primitives/triangle.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | v1: v1, [INFO] [stderr] | ^^^^^^ help: replace it with: `v1` [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/tracer/primitives/triangle.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | v2: v2, [INFO] [stderr] | ^^^^^^ help: replace it with: `v2` [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/tracer/primitives/triangle.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | color: color, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tracer/primitives/triangle.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | e1: e1, [INFO] [stderr] | ^^^^^^ help: replace it with: `e1` [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/tracer/primitives/triangle.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | e2: e2 [INFO] [stderr] | ^^^^^^ help: replace it with: `e2` [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/tracer/primitives/triangle.rs:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | let z = c1 * self.v0.z + c2 * self.v1.z + c3 * self.v2.z; [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/main.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | let z: f32 = tokens[3].parse().unwrap(); [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/tracer/utils/color.rs:18:24 [INFO] [stderr] | [INFO] [stderr] 18 | return Color { red: red, green: green, blue: blue }; [INFO] [stderr] | ^^^^^^^^ help: replace it with: `red` [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/tracer/utils/color.rs:18:34 [INFO] [stderr] | [INFO] [stderr] 18 | return Color { red: red, green: green, blue: blue }; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `green` [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/tracer/utils/color.rs:18:48 [INFO] [stderr] | [INFO] [stderr] 18 | return Color { red: red, green: green, blue: blue }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `blue` [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/tracer/utils/ray.rs:14:10 [INFO] [stderr] | [INFO] [stderr] 14 | origin: origin, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [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/tracer/utils/camera.rs:26:10 [INFO] [stderr] | [INFO] [stderr] 26 | u: u, [INFO] [stderr] | ^^^^ help: replace it with: `u` [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/tracer/utils/camera.rs:28:10 [INFO] [stderr] | [INFO] [stderr] 28 | 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/tracer/utils/camera.rs:30:10 [INFO] [stderr] | [INFO] [stderr] 30 | eye: eye, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `eye` [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/tracer/utils/camera.rs:31:10 [INFO] [stderr] | [INFO] [stderr] 31 | look_at: look_at, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `look_at` [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/tracer/utils/camera.rs:33:10 [INFO] [stderr] | [INFO] [stderr] 33 | distance: distance [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `distance` [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/tracer/utils/bounding_volume_hierarchy.rs:73:28 [INFO] [stderr] | [INFO] [stderr] 73 | p_hit: p_hit, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `p_hit` [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/tracer/primitives/sphere.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | radius: radius, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `radius` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tracer/primitives/sphere.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | origin: origin, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [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/tracer/primitives/sphere.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | color: color, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tracer/primitives/bounding_box.rs:92:10 [INFO] [stderr] | [INFO] [stderr] 92 | min: min, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `min` [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/tracer/primitives/bounding_box.rs:93:10 [INFO] [stderr] | [INFO] [stderr] 93 | max: max [INFO] [stderr] | ^^^^^^^^ help: replace it with: `max` [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/tracer/primitives/triangle.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | v0: v0, [INFO] [stderr] | ^^^^^^ help: replace it with: `v0` [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/tracer/primitives/triangle.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | v1: v1, [INFO] [stderr] | ^^^^^^ help: replace it with: `v1` [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/tracer/primitives/triangle.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | v2: v2, [INFO] [stderr] | ^^^^^^ help: replace it with: `v2` [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/tracer/primitives/triangle.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | color: color, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tracer/primitives/triangle.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | e1: e1, [INFO] [stderr] | ^^^^^^ help: replace it with: `e1` [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/tracer/primitives/triangle.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | e2: e2 [INFO] [stderr] | ^^^^^^ help: replace it with: `e2` [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/tracer/primitives/triangle.rs:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | let z = c1 * self.v0.z + c2 * self.v1.z + c3 * self.v2.z; [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/main.rs:133:17 [INFO] [stderr] | [INFO] [stderr] 133 | let z: f32 = tokens[3].parse().unwrap(); [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: unneeded return statement [INFO] [stderr] --> src/tracer/utils/color.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | return Color { red: red, green: green, blue: blue }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color { red: red, green: green, blue: blue }` [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] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/utils/color.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | return Color { red: 0.0, green: 0.0, blue: 0.0 }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color { red: 0.0, green: 0.0, blue: 0.0 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/utils/color.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | return Color { red: color.red, green: color.green, blue: color.blue }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color { red: color.red, green: color.green, blue: color.blue }` [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/tracer/utils/ray.rs:13:7 [INFO] [stderr] | [INFO] [stderr] 13 | / return Ray { [INFO] [stderr] 14 | | origin: origin, [INFO] [stderr] 15 | | direction: Unit::new_normalize(direction) [INFO] [stderr] 16 | | } [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] 13 | Ray { [INFO] [stderr] 14 | origin: origin, [INFO] [stderr] 15 | direction: Unit::new_normalize(direction) [INFO] [stderr] 16 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/utils/camera.rs:25:7 [INFO] [stderr] | [INFO] [stderr] 25 | / return Camera { [INFO] [stderr] 26 | | u: u, [INFO] [stderr] 27 | | v: Unit::new_normalize(u.cross(w.as_ref())), [INFO] [stderr] 28 | | w: w, [INFO] [stderr] ... | [INFO] [stderr] 33 | | distance: distance [INFO] [stderr] 34 | | } [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] 25 | Camera { [INFO] [stderr] 26 | u: u, [INFO] [stderr] 27 | v: Unit::new_normalize(u.cross(w.as_ref())), [INFO] [stderr] 28 | w: w, [INFO] [stderr] 29 | [INFO] [stderr] 30 | eye: eye, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/utils/bounding_volume_hierarchy.rs:34:7 [INFO] [stderr] | [INFO] [stderr] 34 | return n; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `n` [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/tracer/utils/bounding_volume_hierarchy.rs:47:7 [INFO] [stderr] | [INFO] [stderr] 47 | return n; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `n` [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/tracer/utils/bounding_volume_hierarchy.rs:141:7 [INFO] [stderr] | [INFO] [stderr] 141 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/tracer/utils/bounding_volume_hierarchy.rs:122:19 [INFO] [stderr] | [INFO] [stderr] 122 | / { [INFO] [stderr] 123 | | if left_inter.partial_cmp(&right_inter) == Some(Ordering::Less) [INFO] [stderr] 124 | | { [INFO] [stderr] 125 | | return left_inter; [INFO] [stderr] ... | [INFO] [stderr] 131 | | [INFO] [stderr] 132 | | } [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 122 | if left_inter.partial_cmp(&right_inter) == Some(Ordering::Less) [INFO] [stderr] 123 | { [INFO] [stderr] 124 | return left_inter; [INFO] [stderr] 125 | } [INFO] [stderr] 126 | else [INFO] [stderr] 127 | { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/utils/bounding_volume_hierarchy.rs:225:7 [INFO] [stderr] | [INFO] [stderr] 225 | return m; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `m` [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/tracer/utils/bounding_volume_hierarchy.rs:230:7 [INFO] [stderr] | [INFO] [stderr] 230 | return self.root.intersect(ray); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.root.intersect(ray)` [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/tracer/primitives/sphere.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | / return Sphere { [INFO] [stderr] 23 | | radius: radius, [INFO] [stderr] 24 | | origin: origin, [INFO] [stderr] 25 | | color: color, [INFO] [stderr] 26 | | radius2: radius*radius [INFO] [stderr] 27 | | }; [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] 22 | Sphere { [INFO] [stderr] 23 | radius: radius, [INFO] [stderr] 24 | origin: origin, [INFO] [stderr] 25 | color: color, [INFO] [stderr] 26 | radius2: radius*radius [INFO] [stderr] 27 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/sphere.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / return BoundingBox { [INFO] [stderr] 34 | | min: Point3::new(self.origin.x - self.radius, [INFO] [stderr] 35 | | self.origin.y - self.radius, [INFO] [stderr] 36 | | self.origin.z - self.radius), [INFO] [stderr] ... | [INFO] [stderr] 39 | | self.origin.z + self.radius) [INFO] [stderr] 40 | | } [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] 33 | BoundingBox { [INFO] [stderr] 34 | min: Point3::new(self.origin.x - self.radius, [INFO] [stderr] 35 | self.origin.y - self.radius, [INFO] [stderr] 36 | self.origin.z - self.radius), [INFO] [stderr] 37 | max: Point3::new(self.origin.x + self.radius, [INFO] [stderr] 38 | self.origin.y + self.radius, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/sphere.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | return Color::new_copy(&self.color); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color::new_copy(&self.color)` [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/tracer/primitives/sphere.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | return Some(distance(&p_hit, &ray.origin)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(distance(&p_hit, &ray.origin))` [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/tracer/primitives/sphere.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | return self.origin; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.origin` [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/tracer/primitives/sphere.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | return Unit::new_normalize(p - self.origin); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Unit::new_normalize(p - self.origin)` [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/tracer/primitives/bounding_box.rs:22:7 [INFO] [stderr] | [INFO] [stderr] 22 | return primitive.get_bounding_box(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primitive.get_bounding_box()` [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/tracer/primitives/bounding_box.rs:91:7 [INFO] [stderr] | [INFO] [stderr] 91 | / return BoundingBox { [INFO] [stderr] 92 | | min: min, [INFO] [stderr] 93 | | max: max [INFO] [stderr] 94 | | }; [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] 91 | BoundingBox { [INFO] [stderr] 92 | min: min, [INFO] [stderr] 93 | max: max [INFO] [stderr] 94 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/bounding_box.rs:178:9 [INFO] [stderr] | [INFO] [stderr] 178 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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/tracer/primitives/bounding_box.rs:186:9 [INFO] [stderr] | [INFO] [stderr] 186 | / return Point3::new(self.max.x - self.min.x, [INFO] [stderr] 187 | | self.max.y - self.min.y, [INFO] [stderr] 188 | | self.max.z - self.min.z); [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] 186 | Point3::new(self.max.x - self.min.x, [INFO] [stderr] 187 | self.max.y - self.min.y, [INFO] [stderr] 188 | self.max.z - self.min.z) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/triangle.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / return Triangle { [INFO] [stderr] 26 | | v0: v0, [INFO] [stderr] 27 | | v1: v1, [INFO] [stderr] 28 | | v2: v2, [INFO] [stderr] ... | [INFO] [stderr] 32 | | e2: e2 [INFO] [stderr] 33 | | } [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] 25 | Triangle { [INFO] [stderr] 26 | v0: v0, [INFO] [stderr] 27 | v1: v1, [INFO] [stderr] 28 | v2: v2, [INFO] [stderr] 29 | normal: Unit::new_normalize(e1.cross(&e2)), [INFO] [stderr] 30 | color: color, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/triangle.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | return if v0 < v1 { v0 } else { v1 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `if v0 < v1 { v0 } else { v1 }` [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/tracer/primitives/triangle.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | return if v0 < v1 { v1 } else { v0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `if v0 < v1 { v1 } else { v0 }` [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/tracer/primitives/triangle.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | / return BoundingBox { [INFO] [stderr] 48 | | min: Point3::new(min_float(min_float(self.v0.x, self.v1.x), self.v2.x), [INFO] [stderr] 49 | | min_float(min_float(self.v0.y, self.v1.y), self.v2.y), [INFO] [stderr] 50 | | min_float(min_float(self.v0.z, self.v1.z), self.v2.z)), [INFO] [stderr] ... | [INFO] [stderr] 53 | | max_float(max_float(self.v0.z, self.v1.z), self.v2.z)) [INFO] [stderr] 54 | | } [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] 47 | BoundingBox { [INFO] [stderr] 48 | min: Point3::new(min_float(min_float(self.v0.x, self.v1.x), self.v2.x), [INFO] [stderr] 49 | min_float(min_float(self.v0.y, self.v1.y), self.v2.y), [INFO] [stderr] 50 | min_float(min_float(self.v0.z, self.v1.z), self.v2.z)), [INFO] [stderr] 51 | max: Point3::new(max_float(max_float(self.v0.x, self.v1.x), self.v2.x), [INFO] [stderr] 52 | max_float(max_float(self.v0.y, self.v1.y), self.v2.y), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/triangle.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | return Color::new_copy(&self.color); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color::new_copy(&self.color)` [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/tracer/primitives/triangle.rs:93:7 [INFO] [stderr] | [INFO] [stderr] 93 | return Some(distance); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(distance)` [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/tracer/primitives/triangle.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | / return Point3::new(bbox.max.x - bbox.min.x, [INFO] [stderr] 101 | | bbox.max.y - bbox.min.y, [INFO] [stderr] 102 | | bbox.max.z - bbox.min.z); [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] 100 | Point3::new(bbox.max.x - bbox.min.x, [INFO] [stderr] 101 | bbox.max.y - bbox.min.y, [INFO] [stderr] 102 | bbox.max.z - bbox.min.z) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/triangle.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | return self.normal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.normal` [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/tracer/primitives/triangle.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | return Point3::new(x, y, z); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Point3::new(x, y, z)` [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/tracer/primitives/light.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | return self.primitives[0].get_sample(u, v); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.primitives[0].get_sample(u, v)` [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: long literal lacking separators [INFO] [stderr] --> src/main.rs:40:29 [INFO] [stderr] | [INFO] [stderr] 40 | const NB_RAND_SAMPLE: u32 = 2000000; [INFO] [stderr] | ^^^^^^^ help: consider: `2_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: unneeded return statement [INFO] [stderr] --> src/main.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | return primitives; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primitives` [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/main.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | return primitives; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primitives` [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/main.rs:148:5 [INFO] [stderr] | [INFO] [stderr] 148 | return primitives; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primitives` [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/main.rs:177:5 [INFO] [stderr] | [INFO] [stderr] 177 | return rays; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `rays` [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/main.rs:239:5 [INFO] [stderr] | [INFO] [stderr] 239 | return avg_col; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `avg_col` [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: long literal lacking separators [INFO] [stderr] --> src/main.rs:309:51 [INFO] [stderr] | [INFO] [stderr] 309 | (((h * w) as u64 * (NB_RAY) as u64) / 1000000) / time_elapsed as u64); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:354:52 [INFO] [stderr] | [INFO] [stderr] 354 | Point3::new(0.0, 0.0, -100000.0), [INFO] [stderr] | ^^^^^^^^ help: consider: `100_000.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/utils/color.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | return Color { red: red, green: green, blue: blue }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color { red: red, green: green, blue: blue }` [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] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/utils/color.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | return Color { red: 0.0, green: 0.0, blue: 0.0 }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color { red: 0.0, green: 0.0, blue: 0.0 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/utils/color.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | return Color { red: color.red, green: color.green, blue: color.blue }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color { red: color.red, green: color.green, blue: color.blue }` [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/tracer/utils/ray.rs:13:7 [INFO] [stderr] | [INFO] [stderr] 13 | / return Ray { [INFO] [stderr] 14 | | origin: origin, [INFO] [stderr] 15 | | direction: Unit::new_normalize(direction) [INFO] [stderr] 16 | | } [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] 13 | Ray { [INFO] [stderr] 14 | origin: origin, [INFO] [stderr] 15 | direction: Unit::new_normalize(direction) [INFO] [stderr] 16 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/utils/camera.rs:25:7 [INFO] [stderr] | [INFO] [stderr] 25 | / return Camera { [INFO] [stderr] 26 | | u: u, [INFO] [stderr] 27 | | v: Unit::new_normalize(u.cross(w.as_ref())), [INFO] [stderr] 28 | | w: w, [INFO] [stderr] ... | [INFO] [stderr] 33 | | distance: distance [INFO] [stderr] 34 | | } [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] 25 | Camera { [INFO] [stderr] 26 | u: u, [INFO] [stderr] 27 | v: Unit::new_normalize(u.cross(w.as_ref())), [INFO] [stderr] 28 | w: w, [INFO] [stderr] 29 | [INFO] [stderr] 30 | eye: eye, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/utils/bounding_volume_hierarchy.rs:34:7 [INFO] [stderr] | [INFO] [stderr] 34 | return n; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `n` [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/tracer/utils/bounding_volume_hierarchy.rs:47:7 [INFO] [stderr] | [INFO] [stderr] 47 | return n; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `n` [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/tracer/utils/bounding_volume_hierarchy.rs:141:7 [INFO] [stderr] | [INFO] [stderr] 141 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/tracer/utils/bounding_volume_hierarchy.rs:122:19 [INFO] [stderr] | [INFO] [stderr] 122 | / { [INFO] [stderr] 123 | | if left_inter.partial_cmp(&right_inter) == Some(Ordering::Less) [INFO] [stderr] 124 | | { [INFO] [stderr] 125 | | return left_inter; [INFO] [stderr] ... | [INFO] [stderr] 131 | | [INFO] [stderr] 132 | | } [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 122 | if left_inter.partial_cmp(&right_inter) == Some(Ordering::Less) [INFO] [stderr] 123 | { [INFO] [stderr] 124 | return left_inter; [INFO] [stderr] 125 | } [INFO] [stderr] 126 | else [INFO] [stderr] 127 | { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/utils/bounding_volume_hierarchy.rs:225:7 [INFO] [stderr] | [INFO] [stderr] 225 | return m; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `m` [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/tracer/utils/bounding_volume_hierarchy.rs:230:7 [INFO] [stderr] | [INFO] [stderr] 230 | return self.root.intersect(ray); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.root.intersect(ray)` [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/tracer/primitives/sphere.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | / return Sphere { [INFO] [stderr] 23 | | radius: radius, [INFO] [stderr] 24 | | origin: origin, [INFO] [stderr] 25 | | color: color, [INFO] [stderr] 26 | | radius2: radius*radius [INFO] [stderr] 27 | | }; [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] 22 | Sphere { [INFO] [stderr] 23 | radius: radius, [INFO] [stderr] 24 | origin: origin, [INFO] [stderr] 25 | color: color, [INFO] [stderr] 26 | radius2: radius*radius [INFO] [stderr] 27 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/sphere.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / return BoundingBox { [INFO] [stderr] 34 | | min: Point3::new(self.origin.x - self.radius, [INFO] [stderr] 35 | | self.origin.y - self.radius, [INFO] [stderr] 36 | | self.origin.z - self.radius), [INFO] [stderr] ... | [INFO] [stderr] 39 | | self.origin.z + self.radius) [INFO] [stderr] 40 | | } [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] 33 | BoundingBox { [INFO] [stderr] 34 | min: Point3::new(self.origin.x - self.radius, [INFO] [stderr] 35 | self.origin.y - self.radius, [INFO] [stderr] 36 | self.origin.z - self.radius), [INFO] [stderr] 37 | max: Point3::new(self.origin.x + self.radius, [INFO] [stderr] 38 | self.origin.y + self.radius, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/sphere.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | return Color::new_copy(&self.color); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color::new_copy(&self.color)` [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/tracer/primitives/sphere.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | return Some(distance(&p_hit, &ray.origin)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(distance(&p_hit, &ray.origin))` [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/tracer/primitives/sphere.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | return self.origin; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.origin` [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/tracer/primitives/sphere.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | return Unit::new_normalize(p - self.origin); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Unit::new_normalize(p - self.origin)` [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/tracer/primitives/bounding_box.rs:22:7 [INFO] [stderr] | [INFO] [stderr] 22 | return primitive.get_bounding_box(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primitive.get_bounding_box()` [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/tracer/primitives/bounding_box.rs:91:7 [INFO] [stderr] | [INFO] [stderr] 91 | / return BoundingBox { [INFO] [stderr] 92 | | min: min, [INFO] [stderr] 93 | | max: max [INFO] [stderr] 94 | | }; [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] 91 | BoundingBox { [INFO] [stderr] 92 | min: min, [INFO] [stderr] 93 | max: max [INFO] [stderr] 94 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/bounding_box.rs:178:9 [INFO] [stderr] | [INFO] [stderr] 178 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [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/tracer/primitives/bounding_box.rs:186:9 [INFO] [stderr] | [INFO] [stderr] 186 | / return Point3::new(self.max.x - self.min.x, [INFO] [stderr] 187 | | self.max.y - self.min.y, [INFO] [stderr] 188 | | self.max.z - self.min.z); [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] 186 | Point3::new(self.max.x - self.min.x, [INFO] [stderr] 187 | self.max.y - self.min.y, [INFO] [stderr] 188 | self.max.z - self.min.z) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/triangle.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | / return Triangle { [INFO] [stderr] 26 | | v0: v0, [INFO] [stderr] 27 | | v1: v1, [INFO] [stderr] 28 | | v2: v2, [INFO] [stderr] ... | [INFO] [stderr] 32 | | e2: e2 [INFO] [stderr] 33 | | } [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] 25 | Triangle { [INFO] [stderr] 26 | v0: v0, [INFO] [stderr] 27 | v1: v1, [INFO] [stderr] 28 | v2: v2, [INFO] [stderr] 29 | normal: Unit::new_normalize(e1.cross(&e2)), [INFO] [stderr] 30 | color: color, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/triangle.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | return if v0 < v1 { v0 } else { v1 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `if v0 < v1 { v0 } else { v1 }` [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/tracer/primitives/triangle.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | return if v0 < v1 { v1 } else { v0 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `if v0 < v1 { v1 } else { v0 }` [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/tracer/primitives/triangle.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | / return BoundingBox { [INFO] [stderr] 48 | | min: Point3::new(min_float(min_float(self.v0.x, self.v1.x), self.v2.x), [INFO] [stderr] 49 | | min_float(min_float(self.v0.y, self.v1.y), self.v2.y), [INFO] [stderr] 50 | | min_float(min_float(self.v0.z, self.v1.z), self.v2.z)), [INFO] [stderr] ... | [INFO] [stderr] 53 | | max_float(max_float(self.v0.z, self.v1.z), self.v2.z)) [INFO] [stderr] 54 | | } [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] 47 | BoundingBox { [INFO] [stderr] 48 | min: Point3::new(min_float(min_float(self.v0.x, self.v1.x), self.v2.x), [INFO] [stderr] 49 | min_float(min_float(self.v0.y, self.v1.y), self.v2.y), [INFO] [stderr] 50 | min_float(min_float(self.v0.z, self.v1.z), self.v2.z)), [INFO] [stderr] 51 | max: Point3::new(max_float(max_float(self.v0.x, self.v1.x), self.v2.x), [INFO] [stderr] 52 | max_float(max_float(self.v0.y, self.v1.y), self.v2.y), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/triangle.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | return Color::new_copy(&self.color); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Color::new_copy(&self.color)` [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/tracer/primitives/triangle.rs:93:7 [INFO] [stderr] | [INFO] [stderr] 93 | return Some(distance); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(distance)` [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/tracer/primitives/triangle.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | / return Point3::new(bbox.max.x - bbox.min.x, [INFO] [stderr] 101 | | bbox.max.y - bbox.min.y, [INFO] [stderr] 102 | | bbox.max.z - bbox.min.z); [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] 100 | Point3::new(bbox.max.x - bbox.min.x, [INFO] [stderr] 101 | bbox.max.y - bbox.min.y, [INFO] [stderr] 102 | bbox.max.z - bbox.min.z) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/primitives/triangle.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | return self.normal; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.normal` [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/tracer/primitives/triangle.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | return Point3::new(x, y, z); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Point3::new(x, y, z)` [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/tracer/primitives/light.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | return self.primitives[0].get_sample(u, v); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.primitives[0].get_sample(u, v)` [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: long literal lacking separators [INFO] [stderr] --> src/main.rs:40:29 [INFO] [stderr] | [INFO] [stderr] 40 | const NB_RAND_SAMPLE: u32 = 2000000; [INFO] [stderr] | ^^^^^^^ help: consider: `2_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: unneeded return statement [INFO] [stderr] --> src/main.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | return primitives; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primitives` [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/main.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | return primitives; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primitives` [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/main.rs:148:5 [INFO] [stderr] | [INFO] [stderr] 148 | return primitives; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `primitives` [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/main.rs:177:5 [INFO] [stderr] | [INFO] [stderr] 177 | return rays; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `rays` [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/main.rs:239:5 [INFO] [stderr] | [INFO] [stderr] 239 | return avg_col; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `avg_col` [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: long literal lacking separators [INFO] [stderr] --> src/main.rs:309:51 [INFO] [stderr] | [INFO] [stderr] 309 | (((h * w) as u64 * (NB_RAY) as u64) / 1000000) / time_elapsed as u64); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:354:52 [INFO] [stderr] | [INFO] [stderr] 354 | Point3::new(0.0, 0.0, -100000.0), [INFO] [stderr] | ^^^^^^^^ help: consider: `100_000.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [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/tracer/utils/bounding_volume_hierarchy.rs:53:7 [INFO] [stderr] | [INFO] [stderr] 53 | / match bbox_inter [INFO] [stderr] 54 | | { [INFO] [stderr] 55 | | Some(_) => { [INFO] [stderr] 56 | | match self.primitive [INFO] [stderr] ... | [INFO] [stderr] 137 | | } [INFO] [stderr] 138 | | } [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] 53 | if let Some(_) = bbox_inter { [INFO] [stderr] 54 | match self.primitive [INFO] [stderr] 55 | { [INFO] [stderr] 56 | Some(ref p) => [INFO] [stderr] 57 | { [INFO] [stderr] 58 | let inter_dist = p.intersect(ray); [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/tracer/utils/bounding_volume_hierarchy.rs:88:19 [INFO] [stderr] | [INFO] [stderr] 88 | / match self.left [INFO] [stderr] 89 | | { [INFO] [stderr] 90 | | Some(ref left) => { [INFO] [stderr] 91 | | left_inter = left.intersect(ray); [INFO] [stderr] ... | [INFO] [stderr] 96 | | } [INFO] [stderr] 97 | | } [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] 88 | if let Some(ref left) = self.left { [INFO] [stderr] 89 | left_inter = left.intersect(ray); [INFO] [stderr] 90 | [INFO] [stderr] 91 | } [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/tracer/utils/bounding_volume_hierarchy.rs:98:19 [INFO] [stderr] | [INFO] [stderr] 98 | / match self.right [INFO] [stderr] 99 | | { [INFO] [stderr] 100 | | Some(ref right) => { [INFO] [stderr] 101 | | right_inter = right.intersect(ray); [INFO] [stderr] ... | [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [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 Some(ref right) = self.right { [INFO] [stderr] 99 | right_inter = right.intersect(ray); [INFO] [stderr] 100 | [INFO] [stderr] 101 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `nodes` [INFO] [stderr] --> src/tracer/utils/bounding_volume_hierarchy.rs:196:22 [INFO] [stderr] | [INFO] [stderr] 196 | for i in 0..nodes.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] 196 | for (i, ) in nodes.iter().enumerate() [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | / match self { [INFO] [stderr] 48 | | &Primitive::Sphere(ref s) => s.get_bounding_box(), [INFO] [stderr] 49 | | &Primitive::Triangle(ref t) => t.get_bounding_box() [INFO] [stderr] 50 | | } [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] 47 | match *self { [INFO] [stderr] 48 | Primitive::Sphere(ref s) => s.get_bounding_box(), [INFO] [stderr] 49 | Primitive::Triangle(ref t) => t.get_bounding_box() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | / match self { [INFO] [stderr] 57 | | &Primitive::Sphere(ref s) => s.get_color(), [INFO] [stderr] 58 | | &Primitive::Triangle(ref t) => t.get_color() [INFO] [stderr] 59 | | } [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] 56 | match *self { [INFO] [stderr] 57 | Primitive::Sphere(ref s) => s.get_color(), [INFO] [stderr] 58 | Primitive::Triangle(ref t) => t.get_color() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | / match self { [INFO] [stderr] 66 | | &Primitive::Sphere(ref s) => s.intersect(ray), [INFO] [stderr] 67 | | &Primitive::Triangle(ref t) => t.intersect(ray) [INFO] [stderr] 68 | | } [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] 65 | match *self { [INFO] [stderr] 66 | Primitive::Sphere(ref s) => s.intersect(ray), [INFO] [stderr] 67 | Primitive::Triangle(ref t) => t.intersect(ray) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | / match self { [INFO] [stderr] 75 | | &Primitive::Sphere(ref s) => s.get_center(), [INFO] [stderr] 76 | | &Primitive::Triangle(ref t) => t.get_center() [INFO] [stderr] 77 | | } [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] 74 | match *self { [INFO] [stderr] 75 | Primitive::Sphere(ref s) => s.get_center(), [INFO] [stderr] 76 | Primitive::Triangle(ref t) => t.get_center() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | / match self { [INFO] [stderr] 84 | | &Primitive::Sphere(ref s) => s.get_normal(p), [INFO] [stderr] 85 | | &Primitive::Triangle(ref t) => t.normal [INFO] [stderr] 86 | | } [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] 83 | match *self { [INFO] [stderr] 84 | Primitive::Sphere(ref s) => s.get_normal(p), [INFO] [stderr] 85 | Primitive::Triangle(ref t) => t.normal [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | / match self { [INFO] [stderr] 94 | | &Primitive::Sphere(ref s) => unimplemented!(), [INFO] [stderr] 95 | | &Primitive::Triangle(ref t) => t.get_sample(u,v) [INFO] [stderr] 96 | | } [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] 93 | match *self { [INFO] [stderr] 94 | Primitive::Sphere(ref s) => unimplemented!(), [INFO] [stderr] 95 | Primitive::Triangle(ref t) => t.get_sample(u,v) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | fn import_obj(path: &std::string::String) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:128:41 [INFO] [stderr] | [INFO] [stderr] 128 | let tokens: Vec<&str> = l.split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:151:65 [INFO] [stderr] | [INFO] [stderr] 151 | fn create_rays(px: u32, py: u32, scene: &Scene, random_samples: &Vec<(f32, f32)>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[(f32, f32)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:180:70 [INFO] [stderr] | [INFO] [stderr] 180 | pub fn render_pixel(px: u32, py: u32, scene: &Scene, random_samples: &Vec<(f32, f32)>) -> Color { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[(f32, f32)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `r` is used to index `rays` [INFO] [stderr] --> src/main.rs:186:14 [INFO] [stderr] | [INFO] [stderr] 186 | for r in 0..rays.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] 186 | for (r, ) in rays.iter().enumerate() { [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/main.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | / match hit_info { [INFO] [stderr] 189 | | Some(hit_info) => { [INFO] [stderr] 190 | | [INFO] [stderr] 191 | | let color: Color = hit_info.color; [INFO] [stderr] ... | [INFO] [stderr] 235 | | None => {} [INFO] [stderr] 236 | | } [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] 188 | if let Some(hit_info) = hit_info { [INFO] [stderr] 189 | [INFO] [stderr] 190 | let color: Color = hit_info.color; [INFO] [stderr] 191 | let r_to_light_orig = hit_info.p_hit; [INFO] [stderr] 192 | for i in 0..NB_LIGHT_SAMPLE { [INFO] [stderr] 193 | let idx = (r * NB_RAY as usize + i as usize) % random_samples.len(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:210:22 [INFO] [stderr] | [INFO] [stderr] 210 | / avg_col.red = avg_col.red + [INFO] [stderr] 211 | | ((color.red * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32)); [INFO] [stderr] | |____________________________________________________________________________________________^ help: replace it with: `avg_col.red += ((color.red * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32))` [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/main.rs:212:22 [INFO] [stderr] | [INFO] [stderr] 212 | / avg_col.green = avg_col.green + [INFO] [stderr] 213 | | ((color.green * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32)); [INFO] [stderr] | |______________________________________________________________________________________________^ help: replace it with: `avg_col.green += ((color.green * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:214:22 [INFO] [stderr] | [INFO] [stderr] 214 | / avg_col.blue = avg_col.blue + [INFO] [stderr] 215 | | ((color.blue * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32)); [INFO] [stderr] | |_____________________________________________________________________________________________^ help: replace it with: `avg_col.blue += ((color.blue * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:309:15 [INFO] [stderr] | [INFO] [stderr] 309 | (((h * w) as u64 * (NB_RAY) as u64) / 1000000) / time_elapsed as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(h * w)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:309:32 [INFO] [stderr] | [INFO] [stderr] 309 | (((h * w) as u64 * (NB_RAY) as u64) / 1000000) / time_elapsed as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from((NB_RAY))` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:313:9 [INFO] [stderr] | [INFO] [stderr] 313 | let ref mut fout = File::create(&Path::new("output.png")).unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^--------------------------------------------------- help: try: `let fout = &mut File::create(&Path::new("output.png")).unwrap();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/tracer/utils/bounding_volume_hierarchy.rs:53:7 [INFO] [stderr] | [INFO] [stderr] 53 | / match bbox_inter [INFO] [stderr] 54 | | { [INFO] [stderr] 55 | | Some(_) => { [INFO] [stderr] 56 | | match self.primitive [INFO] [stderr] ... | [INFO] [stderr] 137 | | } [INFO] [stderr] 138 | | } [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] 53 | if let Some(_) = bbox_inter { [INFO] [stderr] 54 | match self.primitive [INFO] [stderr] 55 | { [INFO] [stderr] 56 | Some(ref p) => [INFO] [stderr] 57 | { [INFO] [stderr] 58 | let inter_dist = p.intersect(ray); [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/tracer/utils/bounding_volume_hierarchy.rs:88:19 [INFO] [stderr] | [INFO] [stderr] 88 | / match self.left [INFO] [stderr] 89 | | { [INFO] [stderr] 90 | | Some(ref left) => { [INFO] [stderr] 91 | | left_inter = left.intersect(ray); [INFO] [stderr] ... | [INFO] [stderr] 96 | | } [INFO] [stderr] 97 | | } [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] 88 | if let Some(ref left) = self.left { [INFO] [stderr] 89 | left_inter = left.intersect(ray); [INFO] [stderr] 90 | [INFO] [stderr] 91 | } [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/tracer/utils/bounding_volume_hierarchy.rs:98:19 [INFO] [stderr] | [INFO] [stderr] 98 | / match self.right [INFO] [stderr] 99 | | { [INFO] [stderr] 100 | | Some(ref right) => { [INFO] [stderr] 101 | | right_inter = right.intersect(ray); [INFO] [stderr] ... | [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [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 Some(ref right) = self.right { [INFO] [stderr] 99 | right_inter = right.intersect(ray); [INFO] [stderr] 100 | [INFO] [stderr] 101 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `nodes` [INFO] [stderr] --> src/tracer/utils/bounding_volume_hierarchy.rs:196:22 [INFO] [stderr] | [INFO] [stderr] 196 | for i in 0..nodes.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] 196 | for (i, ) in nodes.iter().enumerate() [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | / match self { [INFO] [stderr] 48 | | &Primitive::Sphere(ref s) => s.get_bounding_box(), [INFO] [stderr] 49 | | &Primitive::Triangle(ref t) => t.get_bounding_box() [INFO] [stderr] 50 | | } [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] 47 | match *self { [INFO] [stderr] 48 | Primitive::Sphere(ref s) => s.get_bounding_box(), [INFO] [stderr] 49 | Primitive::Triangle(ref t) => t.get_bounding_box() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | / match self { [INFO] [stderr] 57 | | &Primitive::Sphere(ref s) => s.get_color(), [INFO] [stderr] 58 | | &Primitive::Triangle(ref t) => t.get_color() [INFO] [stderr] 59 | | } [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] 56 | match *self { [INFO] [stderr] 57 | Primitive::Sphere(ref s) => s.get_color(), [INFO] [stderr] 58 | Primitive::Triangle(ref t) => t.get_color() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | / match self { [INFO] [stderr] 66 | | &Primitive::Sphere(ref s) => s.intersect(ray), [INFO] [stderr] 67 | | &Primitive::Triangle(ref t) => t.intersect(ray) [INFO] [stderr] 68 | | } [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] 65 | match *self { [INFO] [stderr] 66 | Primitive::Sphere(ref s) => s.intersect(ray), [INFO] [stderr] 67 | Primitive::Triangle(ref t) => t.intersect(ray) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:74:9 [INFO] [stderr] | [INFO] [stderr] 74 | / match self { [INFO] [stderr] 75 | | &Primitive::Sphere(ref s) => s.get_center(), [INFO] [stderr] 76 | | &Primitive::Triangle(ref t) => t.get_center() [INFO] [stderr] 77 | | } [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] 74 | match *self { [INFO] [stderr] 75 | Primitive::Sphere(ref s) => s.get_center(), [INFO] [stderr] 76 | Primitive::Triangle(ref t) => t.get_center() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | / match self { [INFO] [stderr] 84 | | &Primitive::Sphere(ref s) => s.get_normal(p), [INFO] [stderr] 85 | | &Primitive::Triangle(ref t) => t.normal [INFO] [stderr] 86 | | } [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] 83 | match *self { [INFO] [stderr] 84 | Primitive::Sphere(ref s) => s.get_normal(p), [INFO] [stderr] 85 | Primitive::Triangle(ref t) => t.normal [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tracer/primitives/mod.rs:93:9 [INFO] [stderr] | [INFO] [stderr] 93 | / match self { [INFO] [stderr] 94 | | &Primitive::Sphere(ref s) => unimplemented!(), [INFO] [stderr] 95 | | &Primitive::Triangle(ref t) => t.get_sample(u,v) [INFO] [stderr] 96 | | } [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] 93 | match *self { [INFO] [stderr] 94 | Primitive::Sphere(ref s) => unimplemented!(), [INFO] [stderr] 95 | Primitive::Triangle(ref t) => t.get_sample(u,v) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | fn import_obj(path: &std::string::String) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:128:41 [INFO] [stderr] | [INFO] [stderr] 128 | let tokens: Vec<&str> = l.split(" ").collect(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:151:65 [INFO] [stderr] | [INFO] [stderr] 151 | fn create_rays(px: u32, py: u32, scene: &Scene, random_samples: &Vec<(f32, f32)>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[(f32, f32)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:180:70 [INFO] [stderr] | [INFO] [stderr] 180 | pub fn render_pixel(px: u32, py: u32, scene: &Scene, random_samples: &Vec<(f32, f32)>) -> Color { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[(f32, f32)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `r` is used to index `rays` [INFO] [stderr] --> src/main.rs:186:14 [INFO] [stderr] | [INFO] [stderr] 186 | for r in 0..rays.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] 186 | for (r, ) in rays.iter().enumerate() { [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/main.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | / match hit_info { [INFO] [stderr] 189 | | Some(hit_info) => { [INFO] [stderr] 190 | | [INFO] [stderr] 191 | | let color: Color = hit_info.color; [INFO] [stderr] ... | [INFO] [stderr] 235 | | None => {} [INFO] [stderr] 236 | | } [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] 188 | if let Some(hit_info) = hit_info { [INFO] [stderr] 189 | [INFO] [stderr] 190 | let color: Color = hit_info.color; [INFO] [stderr] 191 | let r_to_light_orig = hit_info.p_hit; [INFO] [stderr] 192 | for i in 0..NB_LIGHT_SAMPLE { [INFO] [stderr] 193 | let idx = (r * NB_RAY as usize + i as usize) % random_samples.len(); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:210:22 [INFO] [stderr] | [INFO] [stderr] 210 | / avg_col.red = avg_col.red + [INFO] [stderr] 211 | | ((color.red * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32)); [INFO] [stderr] | |____________________________________________________________________________________________^ help: replace it with: `avg_col.red += ((color.red * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32))` [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/main.rs:212:22 [INFO] [stderr] | [INFO] [stderr] 212 | / avg_col.green = avg_col.green + [INFO] [stderr] 213 | | ((color.green * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32)); [INFO] [stderr] | |______________________________________________________________________________________________^ help: replace it with: `avg_col.green += ((color.green * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:214:22 [INFO] [stderr] | [INFO] [stderr] 214 | / avg_col.blue = avg_col.blue + [INFO] [stderr] 215 | | ((color.blue * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32)); [INFO] [stderr] | |_____________________________________________________________________________________________^ help: replace it with: `avg_col.blue += ((color.blue * light_norm_dot) / ((NB_RAY * NB_LIGHT_SAMPLE) as f32))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:309:15 [INFO] [stderr] | [INFO] [stderr] 309 | (((h * w) as u64 * (NB_RAY) as u64) / 1000000) / time_elapsed as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(h * w)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:309:32 [INFO] [stderr] | [INFO] [stderr] 309 | (((h * w) as u64 * (NB_RAY) as u64) / 1000000) / time_elapsed as u64); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u64::from((NB_RAY))` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:313:9 [INFO] [stderr] | [INFO] [stderr] 313 | let ref mut fout = File::create(&Path::new("output.png")).unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^--------------------------------------------------- help: try: `let fout = &mut File::create(&Path::new("output.png")).unwrap();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 33.90s [INFO] running `"docker" "inspect" "1e2ec89dbf6e292cc75b1beadcdf57ac093da3123021bcb34417c657fba26126"` [INFO] running `"docker" "rm" "-f" "1e2ec89dbf6e292cc75b1beadcdf57ac093da3123021bcb34417c657fba26126"` [INFO] [stdout] 1e2ec89dbf6e292cc75b1beadcdf57ac093da3123021bcb34417c657fba26126