[INFO] updating cached repository myszon/raytracer [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/myszon/raytracer [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/myszon/raytracer" "work/ex/clippy-test-run/sources/stable/gh/myszon/raytracer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/myszon/raytracer'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/myszon/raytracer" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/myszon/raytracer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/myszon/raytracer'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 910ec4362147c2e1e8f448d71880e73d7b100c2d [INFO] sha for GitHub repo myszon/raytracer: 910ec4362147c2e1e8f448d71880e73d7b100c2d [INFO] validating manifest of myszon/raytracer 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 myszon/raytracer 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 myszon/raytracer [INFO] finished frobbing myszon/raytracer [INFO] frobbed toml for myszon/raytracer written to work/ex/clippy-test-run/sources/stable/gh/myszon/raytracer/Cargo.toml [INFO] started frobbing myszon/raytracer [INFO] finished frobbing myszon/raytracer [INFO] frobbed toml for myszon/raytracer written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/myszon/raytracer/Cargo.toml [INFO] crate myszon/raytracer 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 myszon/raytracer against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/myszon/raytracer:/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] 24067b0853b76962104e1a3f1cf066ba06d5f88d58551caab3b5db40ea70e804 [INFO] running `"docker" "start" "-a" "24067b0853b76962104e1a3f1cf066ba06d5f88d58551caab3b5db40ea70e804"` [INFO] [stderr] Compiling khronos_api v3.0.0 [INFO] [stderr] Compiling nix v0.12.0 [INFO] [stderr] Compiling imgui-sys v0.0.21 [INFO] [stderr] Checking smallvec v0.6.7 [INFO] [stderr] Checking memmap v0.7.0 [INFO] [stderr] Checking osmesa-sys v0.1.2 [INFO] [stderr] Compiling gfx_gl v0.5.0 [INFO] [stderr] Compiling derivative v1.0.2 [INFO] [stderr] Checking png v0.13.2 [INFO] [stderr] Checking parking_lot_core v0.3.1 [INFO] [stderr] Compiling gl_generator v0.10.0 [INFO] [stderr] Checking parking_lot v0.6.4 [INFO] [stderr] Compiling glutin v0.19.0 [INFO] [stderr] Checking gfx_core v0.8.3 [INFO] [stderr] Checking smithay-client-toolkit v0.4.3 [INFO] [stderr] Checking winit v0.18.0 [INFO] [stderr] Checking gfx v0.17.1 [INFO] [stderr] Checking gfx_device_gl v0.15.3 [INFO] [stderr] Checking gfx_window_glutin v0.28.0 [INFO] [stderr] Checking imgui v0.0.21 [INFO] [stderr] Checking imgui-gfx-renderer v0.0.21 [INFO] [stderr] Checking raytracer v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/format/ppm.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | write!(self.file, "{} {} {}\n", pixel[0], pixel[1], pixel[2])?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/format/ppm.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | write!(self.file, "{} {} {}\n", pixel[0], pixel[1], pixel[2])?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/aabb/mod.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/bvh/mod.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | h [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/bvh/mod.rs:36:21 [INFO] [stderr] | [INFO] [stderr] 36 | let h = hitables.remove(0); [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/hitable/moving_sphere.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | / return self.center0.clone() + ((time - self.t0) / (self.t1 - self.t0)) * [INFO] [stderr] 27 | | (self.center1.clone() - self.center0.clone()); [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] 26 | self.center0.clone() + ((time - self.t0) / (self.t1 - self.t0)) * [INFO] [stderr] 27 | (self.center1.clone() - self.center0.clone()) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/scene/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod scene; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/mod.rs:32:25 [INFO] [stderr] | [INFO] [stderr] 32 | return attenuation * self.color(rng, scatter, depth + 1) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `attenuation * self.color(rng, scatter, depth + 1)` [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/vec3/test.rs:36:19 [INFO] [stderr] | [INFO] [stderr] 36 | Vec3::new(0.3713906763541037, 0.5570860145311556, 0.7427813527082074), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.371_390_676_354_103_7` [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: long literal lacking separators [INFO] [stderr] --> src/vec3/test.rs:36:39 [INFO] [stderr] | [INFO] [stderr] 36 | Vec3::new(0.3713906763541037, 0.5570860145311556, 0.7427813527082074), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.557_086_014_531_155_6` [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/vec3/test.rs:36:59 [INFO] [stderr] | [INFO] [stderr] 36 | Vec3::new(0.3713906763541037, 0.5570860145311556, 0.7427813527082074), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.742_781_352_708_207_4` [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/vec3/test.rs:55:19 [INFO] [stderr] | [INFO] [stderr] 55 | Vec3::new(0.3713906763541037, 0.5570860145311556, 0.7427813527082074), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.371_390_676_354_103_7` [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/vec3/test.rs:55:39 [INFO] [stderr] | [INFO] [stderr] 55 | Vec3::new(0.3713906763541037, 0.5570860145311556, 0.7427813527082074), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.557_086_014_531_155_6` [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/vec3/test.rs:55:59 [INFO] [stderr] | [INFO] [stderr] 55 | Vec3::new(0.3713906763541037, 0.5570860145311556, 0.7427813527082074), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0.742_781_352_708_207_4` [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/aabb/mod.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 38 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/bvh/mod.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | h [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/bvh/mod.rs:36:21 [INFO] [stderr] | [INFO] [stderr] 36 | let h = hitables.remove(0); [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/hitable/moving_sphere.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | / return self.center0.clone() + ((time - self.t0) / (self.t1 - self.t0)) * [INFO] [stderr] 27 | | (self.center1.clone() - self.center0.clone()); [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] 26 | self.center0.clone() + ((time - self.t0) / (self.t1 - self.t0)) * [INFO] [stderr] 27 | (self.center1.clone() - self.center0.clone()) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/scene/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod scene; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tracer/mod.rs:32:25 [INFO] [stderr] | [INFO] [stderr] 32 | return attenuation * self.color(rng, scatter, depth + 1) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `attenuation * self.color(rng, scatter, depth + 1)` [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 function has too many arguments (9/7) [INFO] [stderr] --> src/camera/mod.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / pub fn new( [INFO] [stderr] 24 | | lookfrom: Vec3, lookat: Vec3, vup: Vec3, vfov: f64, [INFO] [stderr] 25 | | aspect: f64, aperture: f64, focus_dist: f64, t0: f64, t1: f64) -> Camera { [INFO] [stderr] 26 | | let theta = vfov * f64::consts::PI / 180.0; [INFO] [stderr] ... | [INFO] [stderr] 46 | | } [INFO] [stderr] 47 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `p`. [INFO] [stderr] --> src/perlin/mod.rs:31:18 [INFO] [stderr] | [INFO] [stderr] 31 | for i in 0..256 { [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] 31 | for in &mut p { [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `p` manually [INFO] [stderr] --> src/perlin/mod.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | / let temp = p[i]; [INFO] [stderr] 41 | | p[i] = p[target]; [INFO] [stderr] 42 | | p[target] = temp; [INFO] [stderr] | |____________________________^ help: try: `p.swap(i, target)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `p` [INFO] [stderr] --> src/perlin/mod.rs:48:18 [INFO] [stderr] | [INFO] [stderr] 48 | for i in 0..256 { [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] 48 | for (i, ) in p.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/scene/scene.rs:18:30 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn hitable(&self) -> &Box { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `&Hitable` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `scene::random_spheres::RandomSpheresFactory` [INFO] [stderr] --> src/scene/random_spheres.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn new() -> RandomSpheresFactory { RandomSpheresFactory {} } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 11 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene/random_spheres.rs:54:21 [INFO] [stderr] | [INFO] [stderr] 54 | (a as f64) + 0.9 * rng.gen::(), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(a)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene/random_spheres.rs:56:21 [INFO] [stderr] | [INFO] [stderr] 56 | (b as f64) + 0.9 * rng.gen::(), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `scene::two_spheres::TwoSpheresFactory` [INFO] [stderr] --> src/scene/two_spheres.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn new() -> TwoSpheresFactory { TwoSpheresFactory {} } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 11 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `scene::perlin::PerlinFactory` [INFO] [stderr] --> src/scene/perlin.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn new() -> PerlinFactory { PerlinFactory {} } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 11 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/tracer/mod.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | (0..(ny as u64)).into_par_iter().for_each(|j| { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(ny)` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/tracer/mod.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | (0..(nx as u64)).into_par_iter().for_each(|i| { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(nx)` [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/tracer/mod.rs:55:59 [INFO] [stderr] | [INFO] [stderr] 55 | let u = (i as f64 + rng.gen::())/(nx as f64); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(nx)` [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/tracer/mod.rs:56:59 [INFO] [stderr] | [INFO] [stderr] 56 | let v = (j as f64 + rng.gen::())/(ny as f64); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(ny)` [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/tracer/mod.rs:61:24 [INFO] [stderr] | [INFO] [stderr] 61 | col /= ns as f64; [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(ns)` [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: strict comparison of f32 or f64 [INFO] [stderr] --> src/vec3/test.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | assert_eq!(vec[0], 2.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/test.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | assert_eq!(vec[0], 2.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/test.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | assert_eq!(vec[1], 3.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3/test.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | assert_eq!(vec[1], 3.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/test.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | assert_eq!(vec[2], 5.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3/test.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | assert_eq!(vec[2], 5.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/test.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | assert_eq!(vec.x(), 2.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3/test.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | assert_eq!(vec.x(), 2.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/test.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(vec.y(), 3.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3/test.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | assert_eq!(vec.y(), 3.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/test.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | assert_eq!(vec.z(), 5.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3/test.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | assert_eq!(vec.z(), 5.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/test.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | assert_eq!(vec.r(), 2.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3/test.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | assert_eq!(vec.r(), 2.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/test.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | assert_eq!(vec.g(), 3.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3/test.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | assert_eq!(vec.g(), 3.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/test.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | assert_eq!(vec.b(), 5.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3/test.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | assert_eq!(vec.b(), 5.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/test.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / assert_eq!( [INFO] [stderr] 63 | | 32.0, [INFO] [stderr] 64 | | Vec3::new(1.0, 2.0, 3.0).dot(&Vec3::new(4.0, 5.0, 6.0)), [INFO] [stderr] 65 | | ); [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3/test.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / assert_eq!( [INFO] [stderr] 63 | | 32.0, [INFO] [stderr] 64 | | Vec3::new(1.0, 2.0, 3.0).dot(&Vec3::new(4.0, 5.0, 6.0)), [INFO] [stderr] 65 | | ); [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/test.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / assert_eq!( [INFO] [stderr] 87 | | Vec3::new(1.0, 2.0, 3.0).length(), [INFO] [stderr] 88 | | (1.0f64 + 4.0f64 + 9.0f64).sqrt(), [INFO] [stderr] 89 | | ); [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3/test.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | / assert_eq!( [INFO] [stderr] 87 | | Vec3::new(1.0, 2.0, 3.0).length(), [INFO] [stderr] 88 | | (1.0f64 + 4.0f64 + 9.0f64).sqrt(), [INFO] [stderr] 89 | | ); [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/test.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | / assert_eq!( [INFO] [stderr] 91 | | Vec3::new(1.0, 2.0, 3.0).squared_length(), [INFO] [stderr] 92 | | 1.0f64 + 4.0f64 + 9.0f64, [INFO] [stderr] 93 | | ); [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3/test.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | / assert_eq!( [INFO] [stderr] 91 | | Vec3::new(1.0, 2.0, 3.0).squared_length(), [INFO] [stderr] 92 | | 1.0f64 + 4.0f64 + 9.0f64, [INFO] [stderr] 93 | | ); [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/ray/test.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | / assert_eq!( [INFO] [stderr] 37 | | 5.0, [INFO] [stderr] 38 | | ray.time(), [INFO] [stderr] 39 | | ); [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/ray/test.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | / assert_eq!( [INFO] [stderr] 37 | | 5.0, [INFO] [stderr] 38 | | ray.time(), [INFO] [stderr] 39 | | ); [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] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/camera/mod.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / pub fn new( [INFO] [stderr] 24 | | lookfrom: Vec3, lookat: Vec3, vup: Vec3, vfov: f64, [INFO] [stderr] 25 | | aspect: f64, aperture: f64, focus_dist: f64, t0: f64, t1: f64) -> Camera { [INFO] [stderr] 26 | | let theta = vfov * f64::consts::PI / 180.0; [INFO] [stderr] ... | [INFO] [stderr] 46 | | } [INFO] [stderr] 47 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `p`. [INFO] [stderr] --> src/perlin/mod.rs:31:18 [INFO] [stderr] | [INFO] [stderr] 31 | for i in 0..256 { [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] 31 | for in &mut p { [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `p` manually [INFO] [stderr] --> src/perlin/mod.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | / let temp = p[i]; [INFO] [stderr] 41 | | p[i] = p[target]; [INFO] [stderr] 42 | | p[target] = temp; [INFO] [stderr] | |____________________________^ help: try: `p.swap(i, target)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `p` [INFO] [stderr] --> src/perlin/mod.rs:48:18 [INFO] [stderr] | [INFO] [stderr] 48 | for i in 0..256 { [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] 48 | for (i, ) in p.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/scene/scene.rs:18:30 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn hitable(&self) -> &Box { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `&Hitable` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `scene::random_spheres::RandomSpheresFactory` [INFO] [stderr] --> src/scene/random_spheres.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn new() -> RandomSpheresFactory { RandomSpheresFactory {} } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 11 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene/random_spheres.rs:54:21 [INFO] [stderr] | [INFO] [stderr] 54 | (a as f64) + 0.9 * rng.gen::(), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(a)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/scene/random_spheres.rs:56:21 [INFO] [stderr] | [INFO] [stderr] 56 | (b as f64) + 0.9 * rng.gen::(), [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `scene::two_spheres::TwoSpheresFactory` [INFO] [stderr] --> src/scene/two_spheres.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn new() -> TwoSpheresFactory { TwoSpheresFactory {} } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 11 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `scene::perlin::PerlinFactory` [INFO] [stderr] --> src/scene/perlin.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn new() -> PerlinFactory { PerlinFactory {} } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 11 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/tracer/mod.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | (0..(ny as u64)).into_par_iter().for_each(|j| { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(ny)` [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 u64 may become silently lossy if types change [INFO] [stderr] --> src/tracer/mod.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | (0..(nx as u64)).into_par_iter().for_each(|i| { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(nx)` [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/tracer/mod.rs:55:59 [INFO] [stderr] | [INFO] [stderr] 55 | let u = (i as f64 + rng.gen::())/(nx as f64); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(nx)` [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/tracer/mod.rs:56:59 [INFO] [stderr] | [INFO] [stderr] 56 | let v = (j as f64 + rng.gen::())/(ny as f64); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(ny)` [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/tracer/mod.rs:61:24 [INFO] [stderr] | [INFO] [stderr] 61 | col /= ns as f64; [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(ns)` [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: aborting due to 13 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `raytracer`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | (nx as f64) / (ny as f64), [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(nx)` [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/main.rs:71:27 [INFO] [stderr] | [INFO] [stderr] 71 | (nx as f64) / (ny as f64), [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(ny)` [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/main.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | (nx as f64) / (ny as f64), [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(nx)` [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/main.rs:71:27 [INFO] [stderr] | [INFO] [stderr] 71 | (nx as f64) / (ny as f64), [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(ny)` [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: build failed [INFO] running `"docker" "inspect" "24067b0853b76962104e1a3f1cf066ba06d5f88d58551caab3b5db40ea70e804"` [INFO] running `"docker" "rm" "-f" "24067b0853b76962104e1a3f1cf066ba06d5f88d58551caab3b5db40ea70e804"` [INFO] [stdout] 24067b0853b76962104e1a3f1cf066ba06d5f88d58551caab3b5db40ea70e804