[INFO] updating cached repository etri3600/Ray-Tracer-Rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/etri3600/Ray-Tracer-Rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/etri3600/Ray-Tracer-Rust" "work/ex/clippy-test-run/sources/stable/gh/etri3600/Ray-Tracer-Rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/etri3600/Ray-Tracer-Rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/etri3600/Ray-Tracer-Rust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/etri3600/Ray-Tracer-Rust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/etri3600/Ray-Tracer-Rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] f4510a4710693699eecca214e57a9951483a7c02 [INFO] sha for GitHub repo etri3600/Ray-Tracer-Rust: f4510a4710693699eecca214e57a9951483a7c02 [INFO] validating manifest of etri3600/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 etri3600/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 etri3600/Ray-Tracer-Rust [INFO] finished frobbing etri3600/Ray-Tracer-Rust [INFO] frobbed toml for etri3600/Ray-Tracer-Rust written to work/ex/clippy-test-run/sources/stable/gh/etri3600/Ray-Tracer-Rust/Cargo.toml [INFO] started frobbing etri3600/Ray-Tracer-Rust [INFO] finished frobbing etri3600/Ray-Tracer-Rust [INFO] frobbed toml for etri3600/Ray-Tracer-Rust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/etri3600/Ray-Tracer-Rust/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting etri3600/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-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/etri3600/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] 9fa38333787a93550cc0811dc9426e979b64edf79811ac9fdfca37d460e121e9 [INFO] running `"docker" "start" "-a" "9fa38333787a93550cc0811dc9426e979b64edf79811ac9fdfca37d460e121e9"` [INFO] [stderr] Compiling arrayvec v0.4.10 [INFO] [stderr] Checking safe-transmute v0.10.1 [INFO] [stderr] Compiling syn v0.15.26 [INFO] [stderr] Checking png v0.14.0 [INFO] [stderr] Checking crossbeam-epoch v0.3.1 [INFO] [stderr] Checking crossbeam-deque v0.2.0 [INFO] [stderr] Checking rayon-core v1.4.1 [INFO] [stderr] Checking rayon v1.0.3 [INFO] [stderr] Compiling num-derive v0.2.4 [INFO] [stderr] Compiling serde_derive v1.0.85 [INFO] [stderr] Checking jpeg-decoder v0.1.15 [INFO] [stderr] Checking tiff v0.2.1 [INFO] [stderr] Checking image v0.21.0 [INFO] [stderr] Checking Ray-Tracer v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::deprecated_cfg_attr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:161:5 [INFO] [stderr] | [INFO] [stderr] 161 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::deprecated_cfg_attr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/math/matrix.rs:161:5 [INFO] [stderr] | [INFO] [stderr] 161 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/scene.rs:89:10 [INFO] [stderr] | [INFO] [stderr] 89 | else { [INFO] [stderr] | __________^ [INFO] [stderr] 90 | | if order == 0 { [INFO] [stderr] 91 | | // background [INFO] [stderr] 92 | | color = Color { r:0.2, g:0.2, b:0.2, a:1.0 }; [INFO] [stderr] 93 | | } [INFO] [stderr] 94 | | } [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] 89 | else if order == 0 { [INFO] [stderr] 90 | // background [INFO] [stderr] 91 | color = Color { r:0.2, g:0.2, b:0.2, a:1.0 }; [INFO] [stderr] 92 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/math/matrix.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | return s; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `s` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/math/quaternion.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | r [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/math/quaternion.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | let r = vec + (self.w * t) + q.cross(&t); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/math/mod.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | return min; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `min` [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/math/mod.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | return max; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `max` [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/math/mod.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | return v; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/scene.rs:89:10 [INFO] [stderr] | [INFO] [stderr] 89 | else { [INFO] [stderr] | __________^ [INFO] [stderr] 90 | | if order == 0 { [INFO] [stderr] 91 | | // background [INFO] [stderr] 92 | | color = Color { r:0.2, g:0.2, b:0.2, a:1.0 }; [INFO] [stderr] 93 | | } [INFO] [stderr] 94 | | } [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] 89 | else if order == 0 { [INFO] [stderr] 90 | // background [INFO] [stderr] 91 | color = Color { r:0.2, g:0.2, b:0.2, a:1.0 }; [INFO] [stderr] 92 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/math/matrix.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | return s; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `s` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/math/quaternion.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | r [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/math/quaternion.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | let r = vec + (self.w * t) + q.cross(&t); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/math/mod.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | return min; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `min` [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/math/mod.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | return max; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `max` [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/math/mod.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | return v; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `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: unused variable: `l` [INFO] [stderr] --> src/shape.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | let l: Vector3 = self.location - ray.origin; [INFO] [stderr] | ^ help: consider using `_l` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `normal` [INFO] [stderr] --> src/shape.rs:140:36 [INFO] [stderr] | [INFO] [stderr] 140 | fn intersect(&self, ray: &Ray, normal: &mut Vector3, point: &mut Vector3) -> bool { [INFO] [stderr] | ^^^^^^ help: consider using `_normal` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `point` [INFO] [stderr] --> src/shape.rs:140:58 [INFO] [stderr] | [INFO] [stderr] 140 | fn intersect(&self, ray: &Ray, normal: &mut Vector3, point: &mut Vector3) -> bool { [INFO] [stderr] | ^^^^^ help: consider using `_point` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `l` [INFO] [stderr] --> src/shape.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | let l: Vector3 = self.location - ray.origin; [INFO] [stderr] | ^ help: consider using `_l` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `normal` [INFO] [stderr] --> src/shape.rs:140:36 [INFO] [stderr] | [INFO] [stderr] 140 | fn intersect(&self, ray: &Ray, normal: &mut Vector3, point: &mut Vector3) -> bool { [INFO] [stderr] | ^^^^^^ help: consider using `_normal` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `point` [INFO] [stderr] --> src/shape.rs:140:58 [INFO] [stderr] | [INFO] [stderr] 140 | fn intersect(&self, ray: &Ray, normal: &mut Vector3, point: &mut Vector3) -> bool { [INFO] [stderr] | ^^^^^ help: consider using `_point` instead [INFO] [stderr] [INFO] [stderr] warning: function is never used: `refraction` [INFO] [stderr] --> src/scene.rs:99:1 [INFO] [stderr] | [INFO] [stderr] 99 | fn refraction(incident: Vector3, normal: Vector3, n1: f32, n2: f32, refracted_ray: &mut Vector3) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `reflection` [INFO] [stderr] --> src/scene.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | fn reflection(incident: Vector3, normal: Vector3) -> Vector3 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `fresnel` [INFO] [stderr] --> src/scene.rs:119:1 [INFO] [stderr] | [INFO] [stderr] 119 | fn fresnel(incident: Vector3, normal: Vector3, n1: f32, n2: f32) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `scale_linear` [INFO] [stderr] --> src/math/matrix.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn scale_linear(s: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `scale` [INFO] [stderr] --> src/math/matrix.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn scale(sx: f64, sy: f64, sz: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `rotate_x` [INFO] [stderr] --> src/math/matrix.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn rotate_x(t: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `rotate_y` [INFO] [stderr] --> src/math/matrix.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn rotate_y(t: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `rotate_z` [INFO] [stderr] --> src/math/matrix.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn rotate_z(t: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `translate` [INFO] [stderr] --> src/math/matrix.rs:70:5 [INFO] [stderr] | [INFO] [stderr] 70 | pub fn translate(tx: f64, ty:f64, tz: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `inverse` [INFO] [stderr] --> src/math/matrix.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | pub fn inverse(&self) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/math/quaternion.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new(x: f64, y: f64, z: f64, w: f64) -> Quat { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `identity` [INFO] [stderr] --> src/math/quaternion.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn identity() -> Quat { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `normalize` [INFO] [stderr] --> src/math/quaternion.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn normalize(&mut self) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `conjugate` [INFO] [stderr] --> src/math/quaternion.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn conjugate(&mut self) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `rotate` [INFO] [stderr] --> src/math/quaternion.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn rotate(&self, vec: Vector3) -> Vector3 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Point` [INFO] [stderr] --> src/light.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | Point, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: crate `Ray_Tracer` should have a snake case name such as `ray_tracer` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/scene.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | / let mut light_direction: Vector3; [INFO] [stderr] 64 | | [INFO] [stderr] 65 | | if light.light_type == LightType::Directional { [INFO] [stderr] 66 | | light_direction = -light.direction.normalize(); [INFO] [stderr] 67 | | } else { [INFO] [stderr] 68 | | light_direction = (light.location - hit_point).normalize(); [INFO] [stderr] 69 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let light_direction = if light.light_type == LightType::Directional { -light.direction.normalize() } else { (light.location - hit_point).normalize() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scene.rs:75:16 [INFO] [stderr] | [INFO] [stderr] 75 | if shape.intersect(&sray, &mut shit_normal, &mut shit_point) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!shape.intersect(&sray, &mut shit_normal, &mut shit_point)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | let n = (n1 / n2) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(n1 / n2)` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | let n = (n1 / n2) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(n1 / n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:131:16 [INFO] [stderr] | [INFO] [stderr] 131 | let rs = ((n2 as f64 * cos_i) - (n1 as f64 * cos_t)) / ((n2 as f64 * cos_i) + (n1 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:131:38 [INFO] [stderr] | [INFO] [stderr] 131 | let rs = ((n2 as f64 * cos_i) - (n1 as f64 * cos_t)) / ((n2 as f64 * cos_i) + (n1 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:131:62 [INFO] [stderr] | [INFO] [stderr] 131 | let rs = ((n2 as f64 * cos_i) - (n1 as f64 * cos_t)) / ((n2 as f64 * cos_i) + (n1 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:131:84 [INFO] [stderr] | [INFO] [stderr] 131 | let rs = ((n2 as f64 * cos_i) - (n1 as f64 * cos_t)) / ((n2 as f64 * cos_i) + (n1 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:132:16 [INFO] [stderr] | [INFO] [stderr] 132 | let rp = ((n1 as f64 * cos_i) - (n2 as f64 * cos_t)) / ((n1 as f64 * cos_i) + (n2 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:132:38 [INFO] [stderr] | [INFO] [stderr] 132 | let rp = ((n1 as f64 * cos_i) - (n2 as f64 * cos_t)) / ((n1 as f64 * cos_i) + (n2 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:132:62 [INFO] [stderr] | [INFO] [stderr] 132 | let rp = ((n1 as f64 * cos_i) - (n2 as f64 * cos_t)) / ((n1 as f64 * cos_i) + (n2 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:132:84 [INFO] [stderr] | [INFO] [stderr] 132 | let rp = ((n1 as f64 * cos_i) - (n2 as f64 * cos_t)) / ((n1 as f64 * cos_i) + (n2 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | let n = (n1 / n2) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(n1 / n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:152:22 [INFO] [stderr] | [INFO] [stderr] 152 | let ortho = (n1 as f64 * cos_i_abs - n2 as f64 * cos_t) / (n1 as f64 * cos_i_abs + n2 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:152:46 [INFO] [stderr] | [INFO] [stderr] 152 | let ortho = (n1 as f64 * cos_i_abs - n2 as f64 * cos_t) / (n1 as f64 * cos_i_abs + n2 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:152:68 [INFO] [stderr] | [INFO] [stderr] 152 | let ortho = (n1 as f64 * cos_i_abs - n2 as f64 * cos_t) / (n1 as f64 * cos_i_abs + n2 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:152:92 [INFO] [stderr] | [INFO] [stderr] 152 | let ortho = (n1 as f64 * cos_i_abs - n2 as f64 * cos_t) / (n1 as f64 * cos_i_abs + n2 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:153:25 [INFO] [stderr] | [INFO] [stderr] 153 | let parallel = (n2 as f64 * cos_i_abs - n1 as f64 * cos_t) / (n2 as f64 * cos_i_abs + n1 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:153:49 [INFO] [stderr] | [INFO] [stderr] 153 | let parallel = (n2 as f64 * cos_i_abs - n1 as f64 * cos_t) / (n2 as f64 * cos_i_abs + n1 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:153:71 [INFO] [stderr] | [INFO] [stderr] 153 | let parallel = (n2 as f64 * cos_i_abs - n1 as f64 * cos_t) / (n2 as f64 * cos_i_abs + n1 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:153:95 [INFO] [stderr] | [INFO] [stderr] 153 | let parallel = (n2 as f64 * cos_i_abs - n1 as f64 * cos_t) / (n2 as f64 * cos_i_abs + n1 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is used to index `t` [INFO] [stderr] --> src/math/matrix.rs:86:22 [INFO] [stderr] | [INFO] [stderr] 86 | for j in (i + 1)..4 { [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] 86 | for (j, ) in t.iter().enumerate().take(4).skip((i + 1)) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:13:28 [INFO] [stderr] | [INFO] [stderr] 13 | let aspect_ratio = (scene.width as f64) / (scene.height as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(scene.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:13:51 [INFO] [stderr] | [INFO] [stderr] 13 | let aspect_ratio = (scene.width as f64) / (scene.height as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(scene.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:14:27 [INFO] [stderr] | [INFO] [stderr] 14 | let sensor_x = (((x as f64 + 0.5) / scene.width as f64) * 2.0 - 1.0) * aspect_ratio * fov_adjustment; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:14:45 [INFO] [stderr] | [INFO] [stderr] 14 | let sensor_x = (((x as f64 + 0.5) / scene.width as f64) * 2.0 - 1.0) * aspect_ratio * fov_adjustment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(scene.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:15:33 [INFO] [stderr] | [INFO] [stderr] 15 | let sensor_y = (1.0 - ((y as f64 + 0.5) / scene.height as f64) * 2.0) * fov_adjustment; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:15:51 [INFO] [stderr] | [INFO] [stderr] 15 | let sensor_y = (1.0 - ((y as f64 + 0.5) / scene.height as f64) * 2.0) * fov_adjustment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(scene.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: function is never used: `refraction` [INFO] [stderr] --> src/scene.rs:99:1 [INFO] [stderr] | [INFO] [stderr] 99 | fn refraction(incident: Vector3, normal: Vector3, n1: f32, n2: f32, refracted_ray: &mut Vector3) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `reflection` [INFO] [stderr] --> src/scene.rs:113:1 [INFO] [stderr] | [INFO] [stderr] 113 | fn reflection(incident: Vector3, normal: Vector3) -> Vector3 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `fresnel` [INFO] [stderr] --> src/scene.rs:119:1 [INFO] [stderr] | [INFO] [stderr] 119 | fn fresnel(incident: Vector3, normal: Vector3, n1: f32, n2: f32) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `scale_linear` [INFO] [stderr] --> src/math/matrix.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn scale_linear(s: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `scale` [INFO] [stderr] --> src/math/matrix.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn scale(sx: f64, sy: f64, sz: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `rotate_x` [INFO] [stderr] --> src/math/matrix.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn rotate_x(t: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `rotate_y` [INFO] [stderr] --> src/math/matrix.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn rotate_y(t: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `rotate_z` [INFO] [stderr] --> src/math/matrix.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn rotate_z(t: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `translate` [INFO] [stderr] --> src/math/matrix.rs:70:5 [INFO] [stderr] | [INFO] [stderr] 70 | pub fn translate(tx: f64, ty:f64, tz: f64) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `inverse` [INFO] [stderr] --> src/math/matrix.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | pub fn inverse(&self) -> Matrix { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/math/quaternion.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new(x: f64, y: f64, z: f64, w: f64) -> Quat { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `identity` [INFO] [stderr] --> src/math/quaternion.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn identity() -> Quat { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `normalize` [INFO] [stderr] --> src/math/quaternion.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn normalize(&mut self) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `conjugate` [INFO] [stderr] --> src/math/quaternion.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn conjugate(&mut self) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `rotate` [INFO] [stderr] --> src/math/quaternion.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn rotate(&self, vec: Vector3) -> Vector3 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Point` [INFO] [stderr] --> src/light.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | Point, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: crate `Ray_Tracer` should have a snake case name such as `ray_tracer` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/scene.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | / let mut light_direction: Vector3; [INFO] [stderr] 64 | | [INFO] [stderr] 65 | | if light.light_type == LightType::Directional { [INFO] [stderr] 66 | | light_direction = -light.direction.normalize(); [INFO] [stderr] 67 | | } else { [INFO] [stderr] 68 | | light_direction = (light.location - hit_point).normalize(); [INFO] [stderr] 69 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let light_direction = if light.light_type == LightType::Directional { -light.direction.normalize() } else { (light.location - hit_point).normalize() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scene.rs:75:16 [INFO] [stderr] | [INFO] [stderr] 75 | if shape.intersect(&sray, &mut shit_normal, &mut shit_point) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!shape.intersect(&sray, &mut shit_normal, &mut shit_point)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | let n = (n1 / n2) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(n1 / n2)` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 120 | let n = (n1 / n2) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(n1 / n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:131:16 [INFO] [stderr] | [INFO] [stderr] 131 | let rs = ((n2 as f64 * cos_i) - (n1 as f64 * cos_t)) / ((n2 as f64 * cos_i) + (n1 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:131:38 [INFO] [stderr] | [INFO] [stderr] 131 | let rs = ((n2 as f64 * cos_i) - (n1 as f64 * cos_t)) / ((n2 as f64 * cos_i) + (n1 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:131:62 [INFO] [stderr] | [INFO] [stderr] 131 | let rs = ((n2 as f64 * cos_i) - (n1 as f64 * cos_t)) / ((n2 as f64 * cos_i) + (n1 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:131:84 [INFO] [stderr] | [INFO] [stderr] 131 | let rs = ((n2 as f64 * cos_i) - (n1 as f64 * cos_t)) / ((n2 as f64 * cos_i) + (n1 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:132:16 [INFO] [stderr] | [INFO] [stderr] 132 | let rp = ((n1 as f64 * cos_i) - (n2 as f64 * cos_t)) / ((n1 as f64 * cos_i) + (n2 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:132:38 [INFO] [stderr] | [INFO] [stderr] 132 | let rp = ((n1 as f64 * cos_i) - (n2 as f64 * cos_t)) / ((n1 as f64 * cos_i) + (n2 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:132:62 [INFO] [stderr] | [INFO] [stderr] 132 | let rp = ((n1 as f64 * cos_i) - (n2 as f64 * cos_t)) / ((n1 as f64 * cos_i) + (n2 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:132:84 [INFO] [stderr] | [INFO] [stderr] 132 | let rp = ((n1 as f64 * cos_i) - (n2 as f64 * cos_t)) / ((n1 as f64 * cos_i) + (n2 as f64 * cos_t)); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | let n = (n1 / n2) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(n1 / n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:152:22 [INFO] [stderr] | [INFO] [stderr] 152 | let ortho = (n1 as f64 * cos_i_abs - n2 as f64 * cos_t) / (n1 as f64 * cos_i_abs + n2 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:152:46 [INFO] [stderr] | [INFO] [stderr] 152 | let ortho = (n1 as f64 * cos_i_abs - n2 as f64 * cos_t) / (n1 as f64 * cos_i_abs + n2 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:152:68 [INFO] [stderr] | [INFO] [stderr] 152 | let ortho = (n1 as f64 * cos_i_abs - n2 as f64 * cos_t) / (n1 as f64 * cos_i_abs + n2 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:152:92 [INFO] [stderr] | [INFO] [stderr] 152 | let ortho = (n1 as f64 * cos_i_abs - n2 as f64 * cos_t) / (n1 as f64 * cos_i_abs + n2 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:153:25 [INFO] [stderr] | [INFO] [stderr] 153 | let parallel = (n2 as f64 * cos_i_abs - n1 as f64 * cos_t) / (n2 as f64 * cos_i_abs + n1 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:153:49 [INFO] [stderr] | [INFO] [stderr] 153 | let parallel = (n2 as f64 * cos_i_abs - n1 as f64 * cos_t) / (n2 as f64 * cos_i_abs + n1 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:153:71 [INFO] [stderr] | [INFO] [stderr] 153 | let parallel = (n2 as f64 * cos_i_abs - n1 as f64 * cos_t) / (n2 as f64 * cos_i_abs + n1 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene.rs:153:95 [INFO] [stderr] | [INFO] [stderr] 153 | let parallel = (n2 as f64 * cos_i_abs - n1 as f64 * cos_t) / (n2 as f64 * cos_i_abs + n1 as f64 * cos_t); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(n1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is used to index `t` [INFO] [stderr] --> src/math/matrix.rs:86:22 [INFO] [stderr] | [INFO] [stderr] 86 | for j in (i + 1)..4 { [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] 86 | for (j, ) in t.iter().enumerate().take(4).skip((i + 1)) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:35:29 [INFO] [stderr] | [INFO] [stderr] 35 | r: gamma_decode((rgba.data[0] as f32) / 255.0), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(rgba.data[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | g: gamma_decode((rgba.data[1] as f32) / 255.0), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(rgba.data[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:37:29 [INFO] [stderr] | [INFO] [stderr] 37 | b: gamma_decode((rgba.data[2] as f32) / 255.0), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(rgba.data[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | a: gamma_decode((rgba.data[3] as f32) / 255.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(rgba.data[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:13:28 [INFO] [stderr] | [INFO] [stderr] 13 | let aspect_ratio = (scene.width as f64) / (scene.height as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(scene.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:13:51 [INFO] [stderr] | [INFO] [stderr] 13 | let aspect_ratio = (scene.width as f64) / (scene.height as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(scene.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:14:27 [INFO] [stderr] | [INFO] [stderr] 14 | let sensor_x = (((x as f64 + 0.5) / scene.width as f64) * 2.0 - 1.0) * aspect_ratio * fov_adjustment; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:14:45 [INFO] [stderr] | [INFO] [stderr] 14 | let sensor_x = (((x as f64 + 0.5) / scene.width as f64) * 2.0 - 1.0) * aspect_ratio * fov_adjustment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(scene.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:15:33 [INFO] [stderr] | [INFO] [stderr] 15 | let sensor_y = (1.0 - ((y as f64 + 0.5) / scene.height as f64) * 2.0) * fov_adjustment; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ray.rs:15:51 [INFO] [stderr] | [INFO] [stderr] 15 | let sensor_y = (1.0 - ((y as f64 + 0.5) / scene.height as f64) * 2.0) * fov_adjustment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(scene.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:35:29 [INFO] [stderr] | [INFO] [stderr] 35 | r: gamma_decode((rgba.data[0] as f32) / 255.0), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(rgba.data[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | g: gamma_decode((rgba.data[1] as f32) / 255.0), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(rgba.data[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:37:29 [INFO] [stderr] | [INFO] [stderr] 37 | b: gamma_decode((rgba.data[2] as f32) / 255.0), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(rgba.data[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/color.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | a: gamma_decode((rgba.data[3] as f32) / 255.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(rgba.data[3])` [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] Finished dev [unoptimized + debuginfo] target(s) in 26.38s [INFO] running `"docker" "inspect" "9fa38333787a93550cc0811dc9426e979b64edf79811ac9fdfca37d460e121e9"` [INFO] running `"docker" "rm" "-f" "9fa38333787a93550cc0811dc9426e979b64edf79811ac9fdfca37d460e121e9"` [INFO] [stdout] 9fa38333787a93550cc0811dc9426e979b64edf79811ac9fdfca37d460e121e9