[INFO] updating cached repository mattboran/RustRT [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mattboran/RustRT [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mattboran/RustRT" "work/ex/clippy-test-run/sources/stable/gh/mattboran/RustRT"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/mattboran/RustRT'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mattboran/RustRT" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mattboran/RustRT"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mattboran/RustRT'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] acf5898a7404b60faaa955a19940f1be986fb871 [INFO] sha for GitHub repo mattboran/RustRT: acf5898a7404b60faaa955a19940f1be986fb871 [INFO] validating manifest of mattboran/RustRT 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 mattboran/RustRT 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 mattboran/RustRT [INFO] finished frobbing mattboran/RustRT [INFO] frobbed toml for mattboran/RustRT written to work/ex/clippy-test-run/sources/stable/gh/mattboran/RustRT/Cargo.toml [INFO] started frobbing mattboran/RustRT [INFO] finished frobbing mattboran/RustRT [INFO] frobbed toml for mattboran/RustRT written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mattboran/RustRT/Cargo.toml [INFO] crate mattboran/RustRT 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 mattboran/RustRT 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/mattboran/RustRT:/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] 673e05c6af7bf8cc351a652d9d21b628090bc2b1fd47984cc23c0d1b4570d34a [INFO] running `"docker" "start" "-a" "673e05c6af7bf8cc351a652d9d21b628090bc2b1fd47984cc23c0d1b4570d34a"` [INFO] [stderr] Checking raytracer v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::io::Error` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io::Error; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Closed01`, `random` [INFO] [stderr] --> src/main.rs:12:12 [INFO] [stderr] | [INFO] [stderr] 12 | use rand::{random, Closed01}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `M_PI_2`, `M_PI`, `SAMPLES` [INFO] [stderr] --> src/geom.rs:1:33 [INFO] [stderr] | [INFO] [stderr] 1 | use {vec3, ReflT, X_RES, Y_RES, SAMPLES, M_PI, M_PI_2, EPSILON}; [INFO] [stderr] | ^^^^^^^ ^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/geom.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:32:20 [INFO] [stderr] | [INFO] [stderr] 32 | static M_PI: f64 = 3.14159265359; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `3.141_592_653_59` [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/main.rs:33:22 [INFO] [stderr] | [INFO] [stderr] 33 | static M_PI_2: f64 = 1.57079632679; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `1.570_796_326_79` [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: unused import: `std::io::Error` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io::Error; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Closed01`, `random` [INFO] [stderr] --> src/main.rs:12:12 [INFO] [stderr] | [INFO] [stderr] 12 | use rand::{random, Closed01}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `M_PI_2`, `M_PI`, `SAMPLES` [INFO] [stderr] --> src/geom.rs:1:33 [INFO] [stderr] | [INFO] [stderr] 1 | use {vec3, ReflT, X_RES, Y_RES, SAMPLES, M_PI, M_PI_2, EPSILON}; [INFO] [stderr] | ^^^^^^^ ^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/geom.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:32:20 [INFO] [stderr] | [INFO] [stderr] 32 | static M_PI: f64 = 3.14159265359; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `3.141_592_653_59` [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/main.rs:33:22 [INFO] [stderr] | [INFO] [stderr] 33 | static M_PI_2: f64 = 1.57079632679; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `1.570_796_326_79` [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: unused import: `geom::Intersectable` [INFO] [stderr] --> src/main.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use geom::Intersectable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `img` [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | fn write_to_ppm(img: &mut Vec) -> Result<(), WriteError>{ [INFO] [stderr] | ^^^ help: consider using `_img` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mkvec3` [INFO] [stderr] --> src/main.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | let mkvec3: fn(f64, f64, f64) -> vec3::vec3; [INFO] [stderr] | ^^^^^^ help: consider using `_mkvec3` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mkray` [INFO] [stderr] --> src/main.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | let mkray: fn(vec3::vec3, vec3::vec3) -> geom::Ray; [INFO] [stderr] | ^^^^^ help: consider using `_mkray` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mksphere` [INFO] [stderr] --> src/main.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | let mksphere: fn(vec3::vec3, f64) -> geom::Sphere; [INFO] [stderr] | ^^^^^^^^ help: consider using `_mksphere` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mktri` [INFO] [stderr] --> src/main.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | let mktri: fn(vec3::vec3, vec3::vec3, vec3::vec3) -> geom::Triangle; [INFO] [stderr] | ^^^^^ help: consider using `_mktri` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mkcam` [INFO] [stderr] --> src/main.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | let mkcam: fn(vec3::vec3, vec3::vec3, vec3::vec3, vec3::vec3) -> geom::Camera; [INFO] [stderr] | ^^^^^ help: consider using `_mkcam` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mkcam` [INFO] [stderr] --> src/main.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | let mkcam = geom::Camera::new; [INFO] [stderr] | ^^^^^ help: consider using `_mkcam` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sph` [INFO] [stderr] --> src/main.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let sph = mksphere(mkvec3(0.0, 1.0, 1.0), 0.5); [INFO] [stderr] | ^^^ help: consider using `_sph` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `numpixels` [INFO] [stderr] --> src/main.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | let numpixels = (X_RES * Y_RES) as usize; [INFO] [stderr] | ^^^^^^^^^ help: consider using `_numpixels` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `j` [INFO] [stderr] --> src/main.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | for j in 0..Y_RES{ [INFO] [stderr] | ^ help: consider using `_j` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | for i in 0..X_RES{ [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `this_pixel` [INFO] [stderr] --> src/main.rs:119:21 [INFO] [stderr] | [INFO] [stderr] 119 | let mut this_pixel = mkvec3(0.0, 0.0,0.0); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_this_pixel` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dx` [INFO] [stderr] --> src/geom.rs:259:17 [INFO] [stderr] | [INFO] [stderr] 259 | let dx: f64 = r1.sqrt() - 1.0; [INFO] [stderr] | ^^ help: consider using `_dx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dx` [INFO] [stderr] --> src/geom.rs:261:17 [INFO] [stderr] | [INFO] [stderr] 261 | let dx: f64 = 1.0 - ((2.0 - r1).sqrt()); [INFO] [stderr] | ^^ help: consider using `_dx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dy` [INFO] [stderr] --> src/geom.rs:264:17 [INFO] [stderr] | [INFO] [stderr] 264 | let dy: f64 = r2.sqrt() - 1.0; [INFO] [stderr] | ^^ help: consider using `_dy` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dy` [INFO] [stderr] --> src/geom.rs:266:17 [INFO] [stderr] | [INFO] [stderr] 266 | let dy: f64 = 1.0 - ((2.0 - r1).sqrt()); [INFO] [stderr] | ^^ help: consider using `_dy` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `j` [INFO] [stderr] --> src/geom.rs:249:39 [INFO] [stderr] | [INFO] [stderr] 249 | pub fn compute_ray(&self, i: i32, j: i32) -> Ray{ [INFO] [stderr] | ^ help: consider using `_j` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | fn from(e: std::io::Error) -> WriteError{ [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/geom.rs:256:13 [INFO] [stderr] | [INFO] [stderr] 256 | let mut dx = 0.0; [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/geom.rs:257:13 [INFO] [stderr] | [INFO] [stderr] 257 | let mut dy = 0.0; [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `clamp` [INFO] [stderr] --> src/vec3.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | pub fn clamp(val: f64) -> f64{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `gamma_correct` [INFO] [stderr] --> src/vec3.rs:114:1 [INFO] [stderr] | [INFO] [stderr] 114 | pub fn gamma_correct(input: f64) -> i32{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `position` [INFO] [stderr] --> src/geom.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | position: vec3::vec3, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `direction` [INFO] [stderr] --> src/geom.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | direction: vec3::vec3, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `up` [INFO] [stderr] --> src/geom.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | up: vec3::vec3, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `right` [INFO] [stderr] --> src/geom.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | right: vec3::vec3 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `p` [INFO] [stderr] --> src/geom.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | p: [i32;3] [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `compute_ray` [INFO] [stderr] --> src/geom.rs:249:5 [INFO] [stderr] | [INFO] [stderr] 249 | pub fn compute_ray(&self, i: i32, j: i32) -> Ray{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `SAMPLES` [INFO] [stderr] --> src/main.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | static SAMPLES: i32 = 50; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `USE_MULTI_THREADING` [INFO] [stderr] --> src/main.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | static USE_MULTI_THREADING: bool = false; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `M_PI` [INFO] [stderr] --> src/main.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | static M_PI: f64 = 3.14159265359; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `M_PI_2` [INFO] [stderr] --> src/main.rs:33:1 [INFO] [stderr] | [INFO] [stderr] 33 | static M_PI_2: f64 = 1.57079632679; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `vec3` should have a camel case name such as `Vec3` [INFO] [stderr] --> src/vec3.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | / pub struct vec3{ [INFO] [stderr] 8 | | pub x: f64, [INFO] [stderr] 9 | | pub y: f64, [INFO] [stderr] 10 | | pub z: f64, [INFO] [stderr] 11 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vec3.rs:145:21 [INFO] [stderr] | [INFO] [stderr] 145 | let other = other as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(other)` [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/vec3.rs:185:21 [INFO] [stderr] | [INFO] [stderr] 185 | let other = other as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(other)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vec3.rs:225:21 [INFO] [stderr] | [INFO] [stderr] 225 | let other = other as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(other)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vec3.rs:265:21 [INFO] [stderr] | [INFO] [stderr] 265 | let other = other as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(other)` [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: variable `P` should have a snake case name such as `p` [INFO] [stderr] --> src/geom.rs:174:13 [INFO] [stderr] | [INFO] [stderr] 174 | let P: vec3::vec3 = r.dir.cross(&edge2); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `T` should have a snake case name such as `t` [INFO] [stderr] --> src/geom.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | let T: vec3::vec3 = r.origin - self.v0; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variable `Q` should have a snake case name such as `q` [INFO] [stderr] --> src/geom.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | let Q: vec3::vec3 = T.cross(&edge1); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variable `P` should have a snake case name such as `p` [INFO] [stderr] --> src/geom.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let P: vec3::vec3 = r.dir.cross(&edge2); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variable `T` should have a snake case name such as `t` [INFO] [stderr] --> src/geom.rs:220:13 [INFO] [stderr] | [INFO] [stderr] 220 | let T: vec3::vec3 = r.origin - self.v0; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variable `Q` should have a snake case name such as `q` [INFO] [stderr] --> src/geom.rs:227:13 [INFO] [stderr] | [INFO] [stderr] 227 | let Q: vec3::vec3 = T.cross(&edge1); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/geom.rs:270:23 [INFO] [stderr] | [INFO] [stderr] 270 | let float_i = i as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/geom.rs:271:27 [INFO] [stderr] | [INFO] [stderr] 271 | let float_X_RES = X_RES as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(X_RES)` [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: variable `float_X_RES` should have a snake case name such as `float_x_res` [INFO] [stderr] --> src/geom.rs:271:13 [INFO] [stderr] | [INFO] [stderr] 271 | let float_X_RES = X_RES as f64; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/geom.rs:272:23 [INFO] [stderr] | [INFO] [stderr] 272 | let float_j = i as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/geom.rs:273:27 [INFO] [stderr] | [INFO] [stderr] 273 | let float_Y_RES = Y_RES as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(Y_RES)` [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: variable `float_Y_RES` should have a snake case name such as `float_y_res` [INFO] [stderr] --> src/geom.rs:273:13 [INFO] [stderr] | [INFO] [stderr] 273 | let float_Y_RES = Y_RES as f64; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly [INFO] [stderr] --> src/main.rs:32:20 [INFO] [stderr] | [INFO] [stderr] 32 | static M_PI: f64 = 3.14159265359; [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: approximate value of `f{32, 64}::consts::FRAC_PI_2` found. Consider using it directly [INFO] [stderr] --> src/main.rs:33:22 [INFO] [stderr] | [INFO] [stderr] 33 | static M_PI_2: f64 = 1.57079632679; [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:128:5 [INFO] [stderr] | [INFO] [stderr] 128 | write_to_ppm(&mut img); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 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: unused import: `geom::Intersectable` [INFO] [stderr] --> src/main.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use geom::Intersectable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `img` [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | fn write_to_ppm(img: &mut Vec) -> Result<(), WriteError>{ [INFO] [stderr] | ^^^ help: consider using `_img` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mkvec3` [INFO] [stderr] --> src/main.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | let mkvec3: fn(f64, f64, f64) -> vec3::vec3; [INFO] [stderr] | ^^^^^^ help: consider using `_mkvec3` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mkray` [INFO] [stderr] --> src/main.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | let mkray: fn(vec3::vec3, vec3::vec3) -> geom::Ray; [INFO] [stderr] | ^^^^^ help: consider using `_mkray` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mksphere` [INFO] [stderr] --> src/main.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | let mksphere: fn(vec3::vec3, f64) -> geom::Sphere; [INFO] [stderr] | ^^^^^^^^ help: consider using `_mksphere` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mktri` [INFO] [stderr] --> src/main.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | let mktri: fn(vec3::vec3, vec3::vec3, vec3::vec3) -> geom::Triangle; [INFO] [stderr] | ^^^^^ help: consider using `_mktri` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mkcam` [INFO] [stderr] --> src/main.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | let mkcam: fn(vec3::vec3, vec3::vec3, vec3::vec3, vec3::vec3) -> geom::Camera; [INFO] [stderr] | ^^^^^ help: consider using `_mkcam` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mkcam` [INFO] [stderr] --> src/main.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | let mkcam = geom::Camera::new; [INFO] [stderr] | ^^^^^ help: consider using `_mkcam` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sph` [INFO] [stderr] --> src/main.rs:97:9 [INFO] [stderr] | [INFO] [stderr] 97 | let sph = mksphere(mkvec3(0.0, 1.0, 1.0), 0.5); [INFO] [stderr] | ^^^ help: consider using `_sph` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `numpixels` [INFO] [stderr] --> src/main.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | let numpixels = (X_RES * Y_RES) as usize; [INFO] [stderr] | ^^^^^^^^^ help: consider using `_numpixels` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `j` [INFO] [stderr] --> src/main.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | for j in 0..Y_RES{ [INFO] [stderr] | ^ help: consider using `_j` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/main.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | for i in 0..X_RES{ [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `this_pixel` [INFO] [stderr] --> src/main.rs:119:21 [INFO] [stderr] | [INFO] [stderr] 119 | let mut this_pixel = mkvec3(0.0, 0.0,0.0); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_this_pixel` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dx` [INFO] [stderr] --> src/geom.rs:259:17 [INFO] [stderr] | [INFO] [stderr] 259 | let dx: f64 = r1.sqrt() - 1.0; [INFO] [stderr] | ^^ help: consider using `_dx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dx` [INFO] [stderr] --> src/geom.rs:261:17 [INFO] [stderr] | [INFO] [stderr] 261 | let dx: f64 = 1.0 - ((2.0 - r1).sqrt()); [INFO] [stderr] | ^^ help: consider using `_dx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dy` [INFO] [stderr] --> src/geom.rs:264:17 [INFO] [stderr] | [INFO] [stderr] 264 | let dy: f64 = r2.sqrt() - 1.0; [INFO] [stderr] | ^^ help: consider using `_dy` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dy` [INFO] [stderr] --> src/geom.rs:266:17 [INFO] [stderr] | [INFO] [stderr] 266 | let dy: f64 = 1.0 - ((2.0 - r1).sqrt()); [INFO] [stderr] | ^^ help: consider using `_dy` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `j` [INFO] [stderr] --> src/geom.rs:249:39 [INFO] [stderr] | [INFO] [stderr] 249 | pub fn compute_ray(&self, i: i32, j: i32) -> Ray{ [INFO] [stderr] | ^ help: consider using `_j` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/main.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | fn from(e: std::io::Error) -> WriteError{ [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/geom.rs:256:13 [INFO] [stderr] | [INFO] [stderr] 256 | let mut dx = 0.0; [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/geom.rs:257:13 [INFO] [stderr] | [INFO] [stderr] 257 | let mut dy = 0.0; [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `clamp` [INFO] [stderr] --> src/vec3.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | pub fn clamp(val: f64) -> f64{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `gamma_correct` [INFO] [stderr] --> src/vec3.rs:114:1 [INFO] [stderr] | [INFO] [stderr] 114 | pub fn gamma_correct(input: f64) -> i32{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `position` [INFO] [stderr] --> src/geom.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | position: vec3::vec3, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `direction` [INFO] [stderr] --> src/geom.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | direction: vec3::vec3, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `up` [INFO] [stderr] --> src/geom.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | up: vec3::vec3, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `right` [INFO] [stderr] --> src/geom.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | right: vec3::vec3 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `p` [INFO] [stderr] --> src/geom.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | p: [i32;3] [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `compute_ray` [INFO] [stderr] --> src/geom.rs:249:5 [INFO] [stderr] | [INFO] [stderr] 249 | pub fn compute_ray(&self, i: i32, j: i32) -> Ray{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `SAMPLES` [INFO] [stderr] --> src/main.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | static SAMPLES: i32 = 50; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `USE_MULTI_THREADING` [INFO] [stderr] --> src/main.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | static USE_MULTI_THREADING: bool = false; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `M_PI` [INFO] [stderr] --> src/main.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | static M_PI: f64 = 3.14159265359; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static item is never used: `M_PI_2` [INFO] [stderr] --> src/main.rs:33:1 [INFO] [stderr] | [INFO] [stderr] 33 | static M_PI_2: f64 = 1.57079632679; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `vec3` should have a camel case name such as `Vec3` [INFO] [stderr] --> src/vec3.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | / pub struct vec3{ [INFO] [stderr] 8 | | pub x: f64, [INFO] [stderr] 9 | | pub y: f64, [INFO] [stderr] 10 | | pub z: f64, [INFO] [stderr] 11 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vec3.rs:145:21 [INFO] [stderr] | [INFO] [stderr] 145 | let other = other as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(other)` [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/vec3.rs:185:21 [INFO] [stderr] | [INFO] [stderr] 185 | let other = other as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(other)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vec3.rs:225:21 [INFO] [stderr] | [INFO] [stderr] 225 | let other = other as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(other)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/vec3.rs:265:21 [INFO] [stderr] | [INFO] [stderr] 265 | let other = other as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(other)` [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: variable `P` should have a snake case name such as `p` [INFO] [stderr] --> src/geom.rs:174:13 [INFO] [stderr] | [INFO] [stderr] 174 | let P: vec3::vec3 = r.dir.cross(&edge2); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `T` should have a snake case name such as `t` [INFO] [stderr] --> src/geom.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | let T: vec3::vec3 = r.origin - self.v0; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variable `Q` should have a snake case name such as `q` [INFO] [stderr] --> src/geom.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | let Q: vec3::vec3 = T.cross(&edge1); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variable `P` should have a snake case name such as `p` [INFO] [stderr] --> src/geom.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | let P: vec3::vec3 = r.dir.cross(&edge2); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variable `T` should have a snake case name such as `t` [INFO] [stderr] --> src/geom.rs:220:13 [INFO] [stderr] | [INFO] [stderr] 220 | let T: vec3::vec3 = r.origin - self.v0; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: variable `Q` should have a snake case name such as `q` [INFO] [stderr] --> src/geom.rs:227:13 [INFO] [stderr] | [INFO] [stderr] 227 | let Q: vec3::vec3 = T.cross(&edge1); [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/geom.rs:270:23 [INFO] [stderr] | [INFO] [stderr] 270 | let float_i = i as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/geom.rs:271:27 [INFO] [stderr] | [INFO] [stderr] 271 | let float_X_RES = X_RES as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(X_RES)` [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: variable `float_X_RES` should have a snake case name such as `float_x_res` [INFO] [stderr] --> src/geom.rs:271:13 [INFO] [stderr] | [INFO] [stderr] 271 | let float_X_RES = X_RES as f64; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/geom.rs:272:23 [INFO] [stderr] | [INFO] [stderr] 272 | let float_j = i as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/geom.rs:273:27 [INFO] [stderr] | [INFO] [stderr] 273 | let float_Y_RES = Y_RES as f64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(Y_RES)` [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: variable `float_Y_RES` should have a snake case name such as `float_y_res` [INFO] [stderr] --> src/geom.rs:273:13 [INFO] [stderr] | [INFO] [stderr] 273 | let float_Y_RES = Y_RES as f64; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly [INFO] [stderr] --> src/main.rs:32:20 [INFO] [stderr] | [INFO] [stderr] 32 | static M_PI: f64 = 3.14159265359; [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: approximate value of `f{32, 64}::consts::FRAC_PI_2` found. Consider using it directly [INFO] [stderr] --> src/main.rs:33:22 [INFO] [stderr] | [INFO] [stderr] 33 | static M_PI_2: f64 = 1.57079632679; [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:128:5 [INFO] [stderr] | [INFO] [stderr] 128 | write_to_ppm(&mut img); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `raytracer`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "673e05c6af7bf8cc351a652d9d21b628090bc2b1fd47984cc23c0d1b4570d34a"` [INFO] running `"docker" "rm" "-f" "673e05c6af7bf8cc351a652d9d21b628090bc2b1fd47984cc23c0d1b4570d34a"` [INFO] [stdout] 673e05c6af7bf8cc351a652d9d21b628090bc2b1fd47984cc23c0d1b4570d34a