[INFO] updating cached repository novoselov-ab/rusty-ray [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/novoselov-ab/rusty-ray [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/novoselov-ab/rusty-ray" "work/ex/clippy-test-run/sources/stable/gh/novoselov-ab/rusty-ray"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/novoselov-ab/rusty-ray'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/novoselov-ab/rusty-ray" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/novoselov-ab/rusty-ray"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/novoselov-ab/rusty-ray'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 0e3700d348ecf730f0cf9c4f90ee870044cd57b8 [INFO] sha for GitHub repo novoselov-ab/rusty-ray: 0e3700d348ecf730f0cf9c4f90ee870044cd57b8 [INFO] validating manifest of novoselov-ab/rusty-ray 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 novoselov-ab/rusty-ray 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 novoselov-ab/rusty-ray [INFO] finished frobbing novoselov-ab/rusty-ray [INFO] frobbed toml for novoselov-ab/rusty-ray written to work/ex/clippy-test-run/sources/stable/gh/novoselov-ab/rusty-ray/Cargo.toml [INFO] started frobbing novoselov-ab/rusty-ray [INFO] finished frobbing novoselov-ab/rusty-ray [INFO] frobbed toml for novoselov-ab/rusty-ray written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/novoselov-ab/rusty-ray/Cargo.toml [INFO] crate novoselov-ab/rusty-ray 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 novoselov-ab/rusty-ray against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/novoselov-ab/rusty-ray:/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] 9fc92eb6235c014359105b6efc876f6474be981fd20e7bd4c843aaeca7cc21ef [INFO] running `"docker" "start" "-a" "9fc92eb6235c014359105b6efc876f6474be981fd20e7bd4c843aaeca7cc21ef"` [INFO] [stderr] Compiling cc v1.0.2 [INFO] [stderr] Checking smallvec v0.4.4 [INFO] [stderr] Compiling x11-dl v2.16.0 [INFO] [stderr] Compiling glutin v0.10.0 [INFO] [stderr] Compiling glium v0.18.0 [INFO] [stderr] Checking image v0.17.0 [INFO] [stderr] Checking wayland-window v0.8.0 [INFO] [stderr] Compiling backtrace-sys v0.1.16 [INFO] [stderr] Checking winit v0.8.3 [INFO] [stderr] Checking winit v0.7.6 [INFO] [stderr] Checking glutin v0.9.2 [INFO] [stderr] Checking backtrace v0.3.3 [INFO] [stderr] Checking rusty-ray v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/math/vec3.rs:14:16 [INFO] [stderr] | [INFO] [stderr] 14 | Vec3 { x: x, y: y, z: z } [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/math/vec3.rs:14:22 [INFO] [stderr] | [INFO] [stderr] 14 | Vec3 { x: x, y: y, z: z } [INFO] [stderr] | ^^^^ help: replace it with: `y` [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/math/vec3.rs:14:28 [INFO] [stderr] | [INFO] [stderr] 14 | Vec3 { x: x, y: y, z: z } [INFO] [stderr] | ^^^^ help: replace it with: `z` [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/math/ray.rs:12:15 [INFO] [stderr] | [INFO] [stderr] 12 | Ray { origin: origin, dir: dir } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/math/ray.rs:12:31 [INFO] [stderr] | [INFO] [stderr] 12 | Ray { origin: origin, dir: dir } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `dir` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/core/util.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | let y = b as f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/raytracer.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | dimensions: dimensions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dimensions` [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/core/scene.rs:38:47 [INFO] [stderr] | [INFO] [stderr] 38 | Some(IntersectionResult { t: t, n: normal, material: self.material.clone()}) [INFO] [stderr] | ^^^^ help: replace it with: `t` [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/math/vec3.rs:14:16 [INFO] [stderr] | [INFO] [stderr] 14 | Vec3 { x: x, y: y, z: z } [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/math/vec3.rs:14:22 [INFO] [stderr] | [INFO] [stderr] 14 | Vec3 { x: x, y: y, z: z } [INFO] [stderr] | ^^^^ help: replace it with: `y` [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/math/vec3.rs:14:28 [INFO] [stderr] | [INFO] [stderr] 14 | Vec3 { x: x, y: y, z: z } [INFO] [stderr] | ^^^^ help: replace it with: `z` [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/math/ray.rs:12:15 [INFO] [stderr] | [INFO] [stderr] 12 | Ray { origin: origin, dir: dir } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/math/ray.rs:12:31 [INFO] [stderr] | [INFO] [stderr] 12 | Ray { origin: origin, dir: dir } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `dir` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/core/util.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | let y = b as f32; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/core/raytracer.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | dimensions: dimensions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dimensions` [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/core/scene.rs:38:47 [INFO] [stderr] | [INFO] [stderr] 38 | Some(IntersectionResult { t: t, n: normal, material: self.material.clone()}) [INFO] [stderr] | ^^^^ help: replace it with: `t` [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: long literal lacking separators [INFO] [stderr] --> src/support/camera.rs:40:24 [INFO] [stderr] | [INFO] [stderr] 40 | let fov: f32 = 3.141592 / 2.0; [INFO] [stderr] | ^^^^^^^^ help: consider: `3.141_592` [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/support/mod.rs:27:49 [INFO] [stderr] | [INFO] [stderr] 27 | let fixed_time_stamp = Duration::new(0, 16666667); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_666_667` [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/support/camera.rs:40:24 [INFO] [stderr] | [INFO] [stderr] 40 | let fov: f32 = 3.141592 / 2.0; [INFO] [stderr] | ^^^^^^^^ help: consider: `3.141_592` [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/support/mod.rs:27:49 [INFO] [stderr] | [INFO] [stderr] 27 | let fixed_time_stamp = Duration::new(0, 16666667); [INFO] [stderr] | ^^^^^^^^ help: consider: `16_666_667` [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: function is never used: `lerp` [INFO] [stderr] --> src/core/util.rs:37:1 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn lerp(a: u8, b: u8, t: f32) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `lerp_rgba` [INFO] [stderr] --> src/core/util.rs:43:1 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn lerp_rgba(im0: image::Rgba, im1: image::Rgba, x: f32) -> image::Rgba { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly [INFO] [stderr] --> src/support/camera.rs:40:24 [INFO] [stderr] | [INFO] [stderr] 40 | let fov: f32 = 3.141592 / 2.0; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::approx_constant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math/vec3.rs:146:17 [INFO] [stderr] | [INFO] [stderr] 146 | assert!(v1.dot(v2) == 32.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(v1.dot(v2) - 32.).abs() < error` [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/math/vec3.rs:146:17 [INFO] [stderr] | [INFO] [stderr] 146 | assert!(v1.dot(v2) == 32.); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/math/vec3.rs:151:17 [INFO] [stderr] | [INFO] [stderr] 151 | assert!(v1.square_length() == (1. + 2. * 2. + 3. * 3.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(v1.square_length() - ((1. + 2. * 2. + 3. * 3.))).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/math/vec3.rs:151:17 [INFO] [stderr] | [INFO] [stderr] 151 | assert!(v1.square_length() == (1. + 2. * 2. + 3. * 3.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/core/util.rs:34:15 [INFO] [stderr] | [INFO] [stderr] 34 | Vec3::new((p[0] as f32) / 255.0, (p[1] as f32) / 255.0, (p[2] as f32) / 255.0) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(p[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/core/util.rs:34:38 [INFO] [stderr] | [INFO] [stderr] 34 | Vec3::new((p[0] as f32) / 255.0, (p[1] as f32) / 255.0, (p[2] as f32) / 255.0) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(p[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/core/util.rs:34:61 [INFO] [stderr] | [INFO] [stderr] 34 | Vec3::new((p[0] as f32) / 255.0, (p[1] as f32) / 255.0, (p[2] as f32) / 255.0) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(p[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/core/util.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | let x = a as f32; [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(a)` [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/core/util.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | let y = b as f32; [INFO] [stderr] | ^^^^^^^^ help: try: `f32::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] error: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly [INFO] [stderr] --> src/core/raytracer.rs:73:18 [INFO] [stderr] | [INFO] [stderr] 73 | fov: 3.14 / 3., [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/raytracer.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | self.iters = self.iters + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.iters += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:91:41 [INFO] [stderr] | [INFO] [stderr] 91 | events_loop.poll_events(|event| match event { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 92 | | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 93 | | glutin::WindowEvent::Closed => action = support::Action::Stop, [INFO] [stderr] 94 | | _ => (), [INFO] [stderr] 95 | | }, [INFO] [stderr] 96 | | _ => (), [INFO] [stderr] 97 | | }); [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 91 | events_loop.poll_events(|event| if let glutin::Event::WindowEvent { event, .. } = event { match event { [INFO] [stderr] 92 | glutin::WindowEvent::Closed => action = support::Action::Stop, [INFO] [stderr] 93 | _ => (), [INFO] [stderr] 94 | } }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:92:57 [INFO] [stderr] | [INFO] [stderr] 92 | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] | _________________________________________________________^ [INFO] [stderr] 93 | | glutin::WindowEvent::Closed => action = support::Action::Stop, [INFO] [stderr] 94 | | _ => (), [INFO] [stderr] 95 | | }, [INFO] [stderr] | |_____________^ help: try this: `if let glutin::WindowEvent::Closed = event { action = support::Action::Stop }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rusty-ray`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: method is never used: `cross` [INFO] [stderr] --> src/math/vec3.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn cross(self, other: Self) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `length` [INFO] [stderr] --> src/math/vec3.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn length(&self) -> f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `lerp` [INFO] [stderr] --> src/core/util.rs:37:1 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn lerp(a: u8, b: u8, t: f32) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `lerp_rgba` [INFO] [stderr] --> src/core/util.rs:43:1 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn lerp_rgba(im0: image::Rgba, im1: image::Rgba, x: f32) -> image::Rgba { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly [INFO] [stderr] --> src/support/camera.rs:40:24 [INFO] [stderr] | [INFO] [stderr] 40 | let fov: f32 = 3.141592 / 2.0; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::approx_constant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/core/util.rs:34:15 [INFO] [stderr] | [INFO] [stderr] 34 | Vec3::new((p[0] as f32) / 255.0, (p[1] as f32) / 255.0, (p[2] as f32) / 255.0) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(p[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/core/util.rs:34:38 [INFO] [stderr] | [INFO] [stderr] 34 | Vec3::new((p[0] as f32) / 255.0, (p[1] as f32) / 255.0, (p[2] as f32) / 255.0) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(p[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/core/util.rs:34:61 [INFO] [stderr] | [INFO] [stderr] 34 | Vec3::new((p[0] as f32) / 255.0, (p[1] as f32) / 255.0, (p[2] as f32) / 255.0) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f32::from(p[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/core/util.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | let x = a as f32; [INFO] [stderr] | ^^^^^^^^ help: try: `f32::from(a)` [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/core/util.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | let y = b as f32; [INFO] [stderr] | ^^^^^^^^ help: try: `f32::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] error: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly [INFO] [stderr] --> src/core/raytracer.rs:73:18 [INFO] [stderr] | [INFO] [stderr] 73 | fov: 3.14 / 3., [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/raytracer.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | self.iters = self.iters + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.iters += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:91:41 [INFO] [stderr] | [INFO] [stderr] 91 | events_loop.poll_events(|event| match event { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 92 | | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 93 | | glutin::WindowEvent::Closed => action = support::Action::Stop, [INFO] [stderr] 94 | | _ => (), [INFO] [stderr] 95 | | }, [INFO] [stderr] 96 | | _ => (), [INFO] [stderr] 97 | | }); [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 91 | events_loop.poll_events(|event| if let glutin::Event::WindowEvent { event, .. } = event { match event { [INFO] [stderr] 92 | glutin::WindowEvent::Closed => action = support::Action::Stop, [INFO] [stderr] 93 | _ => (), [INFO] [stderr] 94 | } }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:92:57 [INFO] [stderr] | [INFO] [stderr] 92 | glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] | _________________________________________________________^ [INFO] [stderr] 93 | | glutin::WindowEvent::Closed => action = support::Action::Stop, [INFO] [stderr] 94 | | _ => (), [INFO] [stderr] 95 | | }, [INFO] [stderr] | |_____________^ help: try this: `if let glutin::WindowEvent::Closed = event { action = support::Action::Stop }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rusty-ray`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "9fc92eb6235c014359105b6efc876f6474be981fd20e7bd4c843aaeca7cc21ef"` [INFO] running `"docker" "rm" "-f" "9fc92eb6235c014359105b6efc876f6474be981fd20e7bd4c843aaeca7cc21ef"` [INFO] [stdout] 9fc92eb6235c014359105b6efc876f6474be981fd20e7bd4c843aaeca7cc21ef