[INFO] updating cached repository Heasummn/ray_tracer [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Heasummn/ray_tracer [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Heasummn/ray_tracer" "work/ex/clippy-test-run/sources/stable/gh/Heasummn/ray_tracer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Heasummn/ray_tracer'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Heasummn/ray_tracer" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Heasummn/ray_tracer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Heasummn/ray_tracer'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 01969a6f3f44acbe91042780b08b7f2d1968a860 [INFO] sha for GitHub repo Heasummn/ray_tracer: 01969a6f3f44acbe91042780b08b7f2d1968a860 [INFO] validating manifest of Heasummn/ray_tracer 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 Heasummn/ray_tracer 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 Heasummn/ray_tracer [INFO] finished frobbing Heasummn/ray_tracer [INFO] frobbed toml for Heasummn/ray_tracer written to work/ex/clippy-test-run/sources/stable/gh/Heasummn/ray_tracer/Cargo.toml [INFO] started frobbing Heasummn/ray_tracer [INFO] finished frobbing Heasummn/ray_tracer [INFO] frobbed toml for Heasummn/ray_tracer written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Heasummn/ray_tracer/Cargo.toml [INFO] crate Heasummn/ray_tracer 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 Heasummn/ray_tracer against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Heasummn/ray_tracer:/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] 6df9ee77a95ee800e962436d249213ad8e6746b1bdd42f4b9883a8aebd9ab12c [INFO] running `"docker" "start" "-a" "6df9ee77a95ee800e962436d249213ad8e6746b1bdd42f4b9883a8aebd9ab12c"` [INFO] [stderr] Compiling syn v0.15.11 [INFO] [stderr] Compiling num-derive v0.2.3 [INFO] [stderr] Checking tiff v0.2.1 [INFO] [stderr] Checking image v0.20.0 [INFO] [stderr] Checking ray_tracer v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:15:7 [INFO] [stderr] | [INFO] [stderr] 15 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [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/camera.rs:16:7 [INFO] [stderr] | [INFO] [stderr] 16 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:17:7 [INFO] [stderr] | [INFO] [stderr] 17 | fov: fov, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `fov` [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/camera.rs:15:7 [INFO] [stderr] | [INFO] [stderr] 15 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [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/camera.rs:16:7 [INFO] [stderr] | [INFO] [stderr] 16 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:17:7 [INFO] [stderr] | [INFO] [stderr] 17 | fov: fov, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `fov` [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: unneeded return statement [INFO] [stderr] --> src/camera.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / return Camera { [INFO] [stderr] 15 | | width: width, [INFO] [stderr] 16 | | height: height, [INFO] [stderr] 17 | | fov: fov, [INFO] [stderr] 18 | | aspect_ratio: (width as f64) / (height as f64), [INFO] [stderr] 19 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 14 | Camera { [INFO] [stderr] 15 | width: width, [INFO] [stderr] 16 | height: height, [INFO] [stderr] 17 | fov: fov, [INFO] [stderr] 18 | aspect_ratio: (width as f64) / (height as f64), [INFO] [stderr] 19 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/camera.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | / return Ray { [INFO] [stderr] 26 | | origin: Vec3::zeros(), [INFO] [stderr] 27 | | direction: Vec3 { [INFO] [stderr] 28 | | x: (2.0 * ((x as f64 + 0.5) / (self.width as f64)) - 1.0) // converting (0, width) -> (-1, 1) [INFO] [stderr] ... | [INFO] [stderr] 34 | | .as_unit(), [INFO] [stderr] 35 | | }; [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 | Ray { [INFO] [stderr] 26 | origin: Vec3::zeros(), [INFO] [stderr] 27 | direction: Vec3 { [INFO] [stderr] 28 | x: (2.0 * ((x as f64 + 0.5) / (self.width as f64)) - 1.0) // converting (0, width) -> (-1, 1) [INFO] [stderr] 29 | * fov_correction [INFO] [stderr] 30 | * self.aspect_ratio, // correcting square size for non-square images [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sphere.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | return distance < (self.radius * self.radius); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `distance < (self.radius * self.radius)` [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/vec3.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | / return Vec3 { [INFO] [stderr] 49 | | x: self.x / length, [INFO] [stderr] 50 | | y: self.y / length, [INFO] [stderr] 51 | | z: self.z / length, [INFO] [stderr] 52 | | }; [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] 48 | Vec3 { [INFO] [stderr] 49 | x: self.x / length, [INFO] [stderr] 50 | y: self.y / length, [INFO] [stderr] 51 | z: self.z / length, [INFO] [stderr] 52 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vec3.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | / return Vec3 { [INFO] [stderr] 73 | | x: self.x + other.x, [INFO] [stderr] 74 | | y: self.y + other.y, [INFO] [stderr] 75 | | z: self.z + other.z, [INFO] [stderr] 76 | | }; [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] 72 | Vec3 { [INFO] [stderr] 73 | x: self.x + other.x, [INFO] [stderr] 74 | y: self.y + other.y, [INFO] [stderr] 75 | z: self.z + other.z, [INFO] [stderr] 76 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vec3.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | / return Vec3 { [INFO] [stderr] 85 | | x: self.x - other.x, [INFO] [stderr] 86 | | y: self.y - other.y, [INFO] [stderr] 87 | | z: self.z - other.z, [INFO] [stderr] 88 | | }; [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] 84 | Vec3 { [INFO] [stderr] 85 | x: self.x - other.x, [INFO] [stderr] 86 | y: self.y - other.y, [INFO] [stderr] 87 | z: self.z - other.z, [INFO] [stderr] 88 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vec3.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | / return Vec3 { [INFO] [stderr] 97 | | x: self.x * other, [INFO] [stderr] 98 | | y: self.y * other, [INFO] [stderr] 99 | | z: self.z * other, [INFO] [stderr] 100 | | }; [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] 96 | Vec3 { [INFO] [stderr] 97 | x: self.x * other, [INFO] [stderr] 98 | y: self.y * other, [INFO] [stderr] 99 | z: self.z * other, [INFO] [stderr] 100 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vec3.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / return Vec3 { [INFO] [stderr] 109 | | x: self.x / other, [INFO] [stderr] 110 | | y: self.y / other, [INFO] [stderr] 111 | | z: self.z / other, [INFO] [stderr] 112 | | }; [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] 108 | Vec3 { [INFO] [stderr] 109 | x: self.x / other, [INFO] [stderr] 110 | y: self.y / other, [INFO] [stderr] 111 | z: self.z / other, [INFO] [stderr] 112 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vec3.rs:129:5 [INFO] [stderr] | [INFO] [stderr] 129 | return self.x == other.x && self.y == other.y && self.z == other.z; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.x == other.x && self.y == other.y && self.z == other.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/vec3.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | return image::Rgb([vec.x as u8, vec.y as u8, vec.z as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `image::Rgb([vec.x as u8, vec.y as u8, vec.z as u8])` [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/camera.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | / return Camera { [INFO] [stderr] 15 | | width: width, [INFO] [stderr] 16 | | height: height, [INFO] [stderr] 17 | | fov: fov, [INFO] [stderr] 18 | | aspect_ratio: (width as f64) / (height as f64), [INFO] [stderr] 19 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 14 | Camera { [INFO] [stderr] 15 | width: width, [INFO] [stderr] 16 | height: height, [INFO] [stderr] 17 | fov: fov, [INFO] [stderr] 18 | aspect_ratio: (width as f64) / (height as f64), [INFO] [stderr] 19 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/camera.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | / return Ray { [INFO] [stderr] 26 | | origin: Vec3::zeros(), [INFO] [stderr] 27 | | direction: Vec3 { [INFO] [stderr] 28 | | x: (2.0 * ((x as f64 + 0.5) / (self.width as f64)) - 1.0) // converting (0, width) -> (-1, 1) [INFO] [stderr] ... | [INFO] [stderr] 34 | | .as_unit(), [INFO] [stderr] 35 | | }; [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 | Ray { [INFO] [stderr] 26 | origin: Vec3::zeros(), [INFO] [stderr] 27 | direction: Vec3 { [INFO] [stderr] 28 | x: (2.0 * ((x as f64 + 0.5) / (self.width as f64)) - 1.0) // converting (0, width) -> (-1, 1) [INFO] [stderr] 29 | * fov_correction [INFO] [stderr] 30 | * self.aspect_ratio, // correcting square size for non-square images [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sphere.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | return distance < (self.radius * self.radius); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `distance < (self.radius * self.radius)` [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/vec3.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | / return Vec3 { [INFO] [stderr] 49 | | x: self.x / length, [INFO] [stderr] 50 | | y: self.y / length, [INFO] [stderr] 51 | | z: self.z / length, [INFO] [stderr] 52 | | }; [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] 48 | Vec3 { [INFO] [stderr] 49 | x: self.x / length, [INFO] [stderr] 50 | y: self.y / length, [INFO] [stderr] 51 | z: self.z / length, [INFO] [stderr] 52 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vec3.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | / return Vec3 { [INFO] [stderr] 73 | | x: self.x + other.x, [INFO] [stderr] 74 | | y: self.y + other.y, [INFO] [stderr] 75 | | z: self.z + other.z, [INFO] [stderr] 76 | | }; [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] 72 | Vec3 { [INFO] [stderr] 73 | x: self.x + other.x, [INFO] [stderr] 74 | y: self.y + other.y, [INFO] [stderr] 75 | z: self.z + other.z, [INFO] [stderr] 76 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vec3.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | / return Vec3 { [INFO] [stderr] 85 | | x: self.x - other.x, [INFO] [stderr] 86 | | y: self.y - other.y, [INFO] [stderr] 87 | | z: self.z - other.z, [INFO] [stderr] 88 | | }; [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] 84 | Vec3 { [INFO] [stderr] 85 | x: self.x - other.x, [INFO] [stderr] 86 | y: self.y - other.y, [INFO] [stderr] 87 | z: self.z - other.z, [INFO] [stderr] 88 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vec3.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | / return Vec3 { [INFO] [stderr] 97 | | x: self.x * other, [INFO] [stderr] 98 | | y: self.y * other, [INFO] [stderr] 99 | | z: self.z * other, [INFO] [stderr] 100 | | }; [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] 96 | Vec3 { [INFO] [stderr] 97 | x: self.x * other, [INFO] [stderr] 98 | y: self.y * other, [INFO] [stderr] 99 | z: self.z * other, [INFO] [stderr] 100 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vec3.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / return Vec3 { [INFO] [stderr] 109 | | x: self.x / other, [INFO] [stderr] 110 | | y: self.y / other, [INFO] [stderr] 111 | | z: self.z / other, [INFO] [stderr] 112 | | }; [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] 108 | Vec3 { [INFO] [stderr] 109 | x: self.x / other, [INFO] [stderr] 110 | y: self.y / other, [INFO] [stderr] 111 | z: self.z / other, [INFO] [stderr] 112 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/vec3.rs:129:5 [INFO] [stderr] | [INFO] [stderr] 129 | return self.x == other.x && self.y == other.y && self.z == other.z; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.x == other.x && self.y == other.y && self.z == other.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/vec3.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | return image::Rgb([vec.x as u8, vec.y as u8, vec.z as u8]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `image::Rgb([vec.x as u8, vec.y as u8, vec.z as u8])` [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/camera.rs:18:21 [INFO] [stderr] | [INFO] [stderr] 18 | aspect_ratio: (width as f64) / (height as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(width)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/camera.rs:18:38 [INFO] [stderr] | [INFO] [stderr] 18 | aspect_ratio: (width as f64) / (height as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(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/camera.rs:28:21 [INFO] [stderr] | [INFO] [stderr] 28 | x: (2.0 * ((x as f64 + 0.5) / (self.width as f64)) - 1.0) // converting (0, width) -> (-1, 1) [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/camera.rs:28:39 [INFO] [stderr] | [INFO] [stderr] 28 | x: (2.0 * ((x as f64 + 0.5) / (self.width as f64)) - 1.0) // converting (0, width) -> (-1, 1) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/camera.rs:31:27 [INFO] [stderr] | [INFO] [stderr] 31 | y: (1.0 - 2.0 * ((y as f64 + 0.5) / (self.height as f64))) * fov_correction, [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/camera.rs:31:45 [INFO] [stderr] | [INFO] [stderr] 31 | y: (1.0 - 2.0 * ((y as f64 + 0.5) / (self.height as f64))) * fov_correction, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/camera.rs:18:21 [INFO] [stderr] | [INFO] [stderr] 18 | aspect_ratio: (width as f64) / (height as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(width)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/camera.rs:18:38 [INFO] [stderr] | [INFO] [stderr] 18 | aspect_ratio: (width as f64) / (height as f64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(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/camera.rs:28:21 [INFO] [stderr] | [INFO] [stderr] 28 | x: (2.0 * ((x as f64 + 0.5) / (self.width as f64)) - 1.0) // converting (0, width) -> (-1, 1) [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/camera.rs:28:39 [INFO] [stderr] | [INFO] [stderr] 28 | x: (2.0 * ((x as f64 + 0.5) / (self.width as f64)) - 1.0) // converting (0, width) -> (-1, 1) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/camera.rs:31:27 [INFO] [stderr] | [INFO] [stderr] 31 | y: (1.0 - 2.0 * ((y as f64 + 0.5) / (self.height as f64))) * fov_correction, [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/camera.rs:31:45 [INFO] [stderr] | [INFO] [stderr] 31 | y: (1.0 - 2.0 * ((y as f64 + 0.5) / (self.height as f64))) * fov_correction, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `==` [INFO] [stderr] --> src/vec3.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | / Vec3 { [INFO] [stderr] 150 | | x: 3.0, [INFO] [stderr] 151 | | y: 4.0, [INFO] [stderr] 152 | | z: 1.0 [INFO] [stderr] ... | [INFO] [stderr] 156 | | z: 1.0 [INFO] [stderr] 157 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/vec3.rs:252:3 [INFO] [stderr] | [INFO] [stderr] 252 | assert_eq!(op1.as_unit().norm().round(), 1.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3.rs:252:3 [INFO] [stderr] | [INFO] [stderr] 252 | assert_eq!(op1.as_unit().norm().round(), 1.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/vec3.rs:268:3 [INFO] [stderr] | [INFO] [stderr] 268 | assert_eq!(op1.dot(&op2), 122.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3.rs:268:3 [INFO] [stderr] | [INFO] [stderr] 268 | assert_eq!(op1.dot(&op2), 122.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `ray_tracer`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "6df9ee77a95ee800e962436d249213ad8e6746b1bdd42f4b9883a8aebd9ab12c"` [INFO] running `"docker" "rm" "-f" "6df9ee77a95ee800e962436d249213ad8e6746b1bdd42f4b9883a8aebd9ab12c"` [INFO] [stdout] 6df9ee77a95ee800e962436d249213ad8e6746b1bdd42f4b9883a8aebd9ab12c