[INFO] updating cached repository seenaburns/raytracer [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/seenaburns/raytracer [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/seenaburns/raytracer" "work/ex/clippy-test-run/sources/stable/gh/seenaburns/raytracer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/seenaburns/raytracer'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/seenaburns/raytracer" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/seenaburns/raytracer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/seenaburns/raytracer'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 7da8434a5151bdb590e0763b0fd62ab95fa05cda [INFO] sha for GitHub repo seenaburns/raytracer: 7da8434a5151bdb590e0763b0fd62ab95fa05cda [INFO] validating manifest of seenaburns/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 seenaburns/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 seenaburns/raytracer [INFO] finished frobbing seenaburns/raytracer [INFO] frobbed toml for seenaburns/raytracer written to work/ex/clippy-test-run/sources/stable/gh/seenaburns/raytracer/Cargo.toml [INFO] started frobbing seenaburns/raytracer [INFO] finished frobbing seenaburns/raytracer [INFO] frobbed toml for seenaburns/raytracer written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/seenaburns/raytracer/Cargo.toml [INFO] crate seenaburns/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 seenaburns/raytracer against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/seenaburns/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] 9f39ab4d0bb91cb99abee6648af4019c092c26431a5481ea7c79a286cab9b7b8 [INFO] running `"docker" "start" "-a" "9f39ab4d0bb91cb99abee6648af4019c092c26431a5481ea7c79a286cab9b7b8"` [INFO] [stderr] Blocking waiting for file lock on the registry index [INFO] [stderr] Checking num_cpus v1.6.2 [INFO] [stderr] Checking time v0.1.38 [INFO] [stderr] Checking deflate v0.7.14 [INFO] [stderr] Checking rayon-core v1.2.1 [INFO] [stderr] Checking png v0.8.0 [INFO] [stderr] Checking rayon v0.8.2 [INFO] [stderr] Checking jpeg-decoder v0.1.13 [INFO] [stderr] Checking image v0.14.0 [INFO] [stderr] Checking raytracer v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/model/bvh.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | left: left, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `left` [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/model/bvh.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | right: right, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `right` [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/model/bvh.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | bounding_box: bounding_box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bounding_box` [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/model/hitable.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | h: h [INFO] [stderr] | ^^^^ help: replace it with: `h` [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/model/hitable.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | h: h, [INFO] [stderr] | ^^^^ help: replace it with: `h` [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/model/hitable.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | offset: offset [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `offset` [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/model/hitable.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | h: h, [INFO] [stderr] | ^^^^ help: replace it with: `h` [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/model/hitable.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | axis: axis, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `axis` [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/model/hitable.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | cos_theta: cos_theta, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cos_theta` [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/model/hitable.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | sin_theta: sin_theta, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sin_theta` [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/model/hitable.rs:141:17 [INFO] [stderr] | [INFO] [stderr] 141 | min: min, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `min` [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/model/hitable.rs:142:17 [INFO] [stderr] | [INFO] [stderr] 142 | max: max, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `max` [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/model/sphere.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | t: t, [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/model/sphere.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | u: u, [INFO] [stderr] | ^^^^ help: replace it with: `u` [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/model/sphere.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | v: v, [INFO] [stderr] | ^^^^ help: replace it with: `v` [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/model/cube.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | sides: sides [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `sides` [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/model/rect.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | k : k, [INFO] [stderr] | ^^^^^ help: replace it with: `k` [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/model/rect.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | k : k, [INFO] [stderr] | ^^^^^ help: replace it with: `k` [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/model/rect.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | k : k, [INFO] [stderr] | ^^^^^ help: replace it with: `k` [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/model/rect.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | t: t, [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/model/rect.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | p: p, [INFO] [stderr] | ^^^^ help: replace it with: `p` [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/model/constant_medium.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | density: density [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `density` [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/model/constant_medium.rs:68:25 [INFO] [stderr] | [INFO] [stderr] 68 | t: t, [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/model/mod.rs:40:17 [INFO] [stderr] | [INFO] [stderr] 40 | Model { geometry: geometry, shader: shader } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `geometry` [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/model/mod.rs:40:37 [INFO] [stderr] | [INFO] [stderr] 40 | Model { geometry: geometry, shader: shader } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `shader` [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/shader/material.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | albedo: albedo [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `albedo` [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/shader/material.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | albedo: albedo, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `albedo` [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/shader/material.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | index: index [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [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/shader/material.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | emit: emit, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `emit` [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/shader/texture.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | scale: scale, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scale` [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/shader/texture.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | scale: scale, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scale` [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/shader/texture.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | turb_depth: turb_depth, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `turb_depth` [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/shader/texture.rs:228:13 [INFO] [stderr] | [INFO] [stderr] 228 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [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/shader/texture.rs:229:13 [INFO] [stderr] | [INFO] [stderr] 229 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | origin: origin, [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/camera.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | u: u, [INFO] [stderr] | ^^^^ help: replace it with: `u` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | v: v, [INFO] [stderr] | ^^^^ help: replace it with: `v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | lens_radius: lens_radius, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lens_radius` [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/render.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | let r = camera.get_ray(u, v, rng); [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/render.rs:205:29 [INFO] [stderr] | [INFO] [stderr] 205 | center: center, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `center` [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/render.rs:214:29 [INFO] [stderr] | [INFO] [stderr] 214 | center: center, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `center` [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/render.rs:227:29 [INFO] [stderr] | [INFO] [stderr] 227 | center: center, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `center` [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/vec3.rs:17:16 [INFO] [stderr] | [INFO] [stderr] 17 | Vec3 { x: x, y: y, z: z, } [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/vec3.rs:17:22 [INFO] [stderr] | [INFO] [stderr] 17 | 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/vec3.rs:17:28 [INFO] [stderr] | [INFO] [stderr] 17 | 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/model/bvh.rs:149:13 [INFO] [stderr] | [INFO] [stderr] 149 | left: left, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `left` [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/model/bvh.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | right: right, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `right` [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/model/bvh.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | bounding_box: bounding_box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `bounding_box` [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/model/hitable.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | h: h [INFO] [stderr] | ^^^^ help: replace it with: `h` [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/model/hitable.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | h: h, [INFO] [stderr] | ^^^^ help: replace it with: `h` [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/model/hitable.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | offset: offset [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `offset` [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/model/hitable.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | h: h, [INFO] [stderr] | ^^^^ help: replace it with: `h` [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/model/hitable.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | axis: axis, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `axis` [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/model/hitable.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | cos_theta: cos_theta, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cos_theta` [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/model/hitable.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | sin_theta: sin_theta, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sin_theta` [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/model/hitable.rs:141:17 [INFO] [stderr] | [INFO] [stderr] 141 | min: min, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `min` [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/model/hitable.rs:142:17 [INFO] [stderr] | [INFO] [stderr] 142 | max: max, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `max` [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/model/sphere.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | t: t, [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/model/sphere.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | u: u, [INFO] [stderr] | ^^^^ help: replace it with: `u` [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/model/sphere.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | v: v, [INFO] [stderr] | ^^^^ help: replace it with: `v` [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/model/cube.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | sides: sides [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `sides` [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/model/rect.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | k : k, [INFO] [stderr] | ^^^^^ help: replace it with: `k` [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/model/rect.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | k : k, [INFO] [stderr] | ^^^^^ help: replace it with: `k` [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/model/rect.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | k : k, [INFO] [stderr] | ^^^^^ help: replace it with: `k` [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/model/rect.rs:101:13 [INFO] [stderr] | [INFO] [stderr] 101 | t: t, [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/model/rect.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | p: p, [INFO] [stderr] | ^^^^ help: replace it with: `p` [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/model/constant_medium.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | density: density [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `density` [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/model/constant_medium.rs:68:25 [INFO] [stderr] | [INFO] [stderr] 68 | t: t, [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/model/mod.rs:40:17 [INFO] [stderr] | [INFO] [stderr] 40 | Model { geometry: geometry, shader: shader } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `geometry` [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/model/mod.rs:40:37 [INFO] [stderr] | [INFO] [stderr] 40 | Model { geometry: geometry, shader: shader } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `shader` [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/shader/material.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | albedo: albedo [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `albedo` [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/shader/material.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | albedo: albedo, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `albedo` [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/shader/material.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | index: index [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [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/shader/material.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | emit: emit, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `emit` [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/shader/texture.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | scale: scale, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scale` [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/shader/texture.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | scale: scale, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scale` [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/shader/texture.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | turb_depth: turb_depth, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `turb_depth` [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/shader/texture.rs:228:13 [INFO] [stderr] | [INFO] [stderr] 228 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [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/shader/texture.rs:229:13 [INFO] [stderr] | [INFO] [stderr] 229 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | origin: origin, [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/camera.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | u: u, [INFO] [stderr] | ^^^^ help: replace it with: `u` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | v: v, [INFO] [stderr] | ^^^^ help: replace it with: `v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/camera.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | lens_radius: lens_radius, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lens_radius` [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/render.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | let r = camera.get_ray(u, v, rng); [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/render.rs:205:29 [INFO] [stderr] | [INFO] [stderr] 205 | center: center, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `center` [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/render.rs:214:29 [INFO] [stderr] | [INFO] [stderr] 214 | center: center, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `center` [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/render.rs:227:29 [INFO] [stderr] | [INFO] [stderr] 227 | center: center, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `center` [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/vec3.rs:17:16 [INFO] [stderr] | [INFO] [stderr] 17 | Vec3 { x: x, y: y, z: z, } [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/vec3.rs:17:22 [INFO] [stderr] | [INFO] [stderr] 17 | 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/vec3.rs:17:28 [INFO] [stderr] | [INFO] [stderr] 17 | 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: unneeded return statement [INFO] [stderr] --> src/shader/material.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | return Some((attentuation, scattered)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((attentuation, scattered))` [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: long literal lacking separators [INFO] [stderr] --> src/render.rs:17:27 [INFO] [stderr] | [INFO] [stderr] 17 | const MIN_DISTANCE: f64 = 0.000001; [INFO] [stderr] | ^^^^^^^^ help: consider: `0.000_001` [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/util.rs:19:21 [INFO] [stderr] | [INFO] [stderr] 19 | (f1-f2).abs() < 0.000001 [INFO] [stderr] | ^^^^^^^^ help: consider: `0.000_001` [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 variable: `rng` [INFO] [stderr] --> src/shader/material.rs:123:49 [INFO] [stderr] | [INFO] [stderr] 123 | fn scatter(&self, r: &Ray, hit: &HitRecord, rng: &mut XorShiftRng) -> Option<(Vec3, Ray)> { [INFO] [stderr] | ^^^ help: consider using `_rng` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/shader/material.rs:161:51 [INFO] [stderr] | [INFO] [stderr] 161 | fn scatter(&self, _r: &Ray, _hit: &HitRecord, rng: &mut XorShiftRng) -> Option<(Vec3, Ray)> { [INFO] [stderr] | ^^^ help: consider using `_rng` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `u` [INFO] [stderr] --> src/shader/material.rs:179:23 [INFO] [stderr] | [INFO] [stderr] 179 | fn emitted(&self, u: f64, v: f64, p: &Vec3) -> Option { [INFO] [stderr] | ^ help: consider using `_u` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/shader/material.rs:179:31 [INFO] [stderr] | [INFO] [stderr] 179 | fn emitted(&self, u: f64, v: f64, p: &Vec3) -> Option { [INFO] [stderr] | ^ help: consider using `_v` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/shader/material.rs:179:39 [INFO] [stderr] | [INFO] [stderr] 179 | fn emitted(&self, u: f64, v: f64, p: &Vec3) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/shader/material.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | return Some((attentuation, scattered)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((attentuation, scattered))` [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: long literal lacking separators [INFO] [stderr] --> src/render.rs:17:27 [INFO] [stderr] | [INFO] [stderr] 17 | const MIN_DISTANCE: f64 = 0.000001; [INFO] [stderr] | ^^^^^^^^ help: consider: `0.000_001` [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/util.rs:19:21 [INFO] [stderr] | [INFO] [stderr] 19 | (f1-f2).abs() < 0.000001 [INFO] [stderr] | ^^^^^^^^ help: consider: `0.000_001` [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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/model/bvh.rs:84:29 [INFO] [stderr] | [INFO] [stderr] 84 | let x = (i as i32 as f64)*self.max.x + ((1-i) as i32 as f64)*self.min.x; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(i as i32)` [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/model/bvh.rs:84:60 [INFO] [stderr] | [INFO] [stderr] 84 | let x = (i as i32 as f64)*self.max.x + ((1-i) as i32 as f64)*self.min.x; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((1-i) as i32)` [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/model/bvh.rs:85:29 [INFO] [stderr] | [INFO] [stderr] 85 | let y = (j as i32 as f64)*self.max.y + ((1-j) as i32 as f64)*self.min.y; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(j as i32)` [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/model/bvh.rs:85:60 [INFO] [stderr] | [INFO] [stderr] 85 | let y = (j as i32 as f64)*self.max.y + ((1-j) as i32 as f64)*self.min.y; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((1-j) as i32)` [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/model/bvh.rs:86:29 [INFO] [stderr] | [INFO] [stderr] 86 | let z = (k as i32 as f64)*self.max.z + ((1-k) as i32 as f64)*self.min.z; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(k as i32)` [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/model/bvh.rs:86:60 [INFO] [stderr] | [INFO] [stderr] 86 | let z = (k as i32 as f64)*self.max.z + ((1-k) as i32 as f64)*self.min.z; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((1-k) as i32)` [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 seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/model/bvh.rs:118:30 [INFO] [stderr] | [INFO] [stderr] 118 | hitables.sort_by(|a: &Box, b: &Box| { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `&BVHItem` [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 seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/model/bvh.rs:118:48 [INFO] [stderr] | [INFO] [stderr] 118 | hitables.sort_by(|a: &Box, b: &Box| { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `&BVHItem` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:140:30 [INFO] [stderr] | [INFO] [stderr] 140 | let fi = i as i32 as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(i as i32)` [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/shader/texture.rs:141:30 [INFO] [stderr] | [INFO] [stderr] 141 | let fj = j as i32 as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(j as i32)` [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/shader/texture.rs:142:30 [INFO] [stderr] | [INFO] [stderr] 142 | let fk = k as i32 as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(k as i32)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/shader/texture.rs:156:26 [INFO] [stderr] | [INFO] [stderr] 156 | let mut temp_p = p.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*p` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `p` manually [INFO] [stderr] --> src/shader/texture.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | / let tmp = p[i]; [INFO] [stderr] 186 | | p[i] = p[target]; [INFO] [stderr] 187 | | p[target] = tmp; [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: use of `expect` followed by a function call [INFO] [stderr] --> src/shader/texture.rs:224:12 [INFO] [stderr] | [INFO] [stderr] 224 | .expect(&format!("Could not open image texture: {}", path)).to_rgb(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Could not open image texture: {}", path))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:236:21 [INFO] [stderr] | [INFO] [stderr] 236 | let i = u * (self.width as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:237:27 [INFO] [stderr] | [INFO] [stderr] 237 | let j = (1.0-v) * (self.height as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:240:23 [INFO] [stderr] | [INFO] [stderr] 240 | let i = i.min(self.width as f64 - 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:243:23 [INFO] [stderr] | [INFO] [stderr] 243 | let j = j.min(self.height as f64 - 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:246:19 [INFO] [stderr] | [INFO] [stderr] 246 | Vec3::new(rgb[0] as f64, rgb[1] as f64, rgb[2] as f64) / 255.0 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(rgb[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:246:34 [INFO] [stderr] | [INFO] [stderr] 246 | Vec3::new(rgb[0] as f64, rgb[1] as f64, rgb[2] as f64) / 255.0 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(rgb[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 f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:246:49 [INFO] [stderr] | [INFO] [stderr] 246 | Vec3::new(rgb[0] as f64, rgb[1] as f64, rgb[2] as f64) / 255.0 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(rgb[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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bench.rs:17:28 [INFO] [stderr] | [INFO] [stderr] 17 | let rays_per_sec = rays as f64 / runtime; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(rays)` [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/bench.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | (nx as f64) / (ny 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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bench.rs:45:23 [INFO] [stderr] | [INFO] [stderr] 45 | (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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:75:37 [INFO] [stderr] | [INFO] [stderr] 75 | let c = c / (spp as f64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(spp)` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/render.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | writeln!(&mut ::std::io::stderr(), "Thread {} done", nth); [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] = 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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:116:14 [INFO] [stderr] | [INFO] [stderr] 116 | let u = (x as f64 + rng.gen::()) / (nx as f64); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:116:45 [INFO] [stderr] | [INFO] [stderr] 116 | let u = (x 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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:117:14 [INFO] [stderr] | [INFO] [stderr] 117 | let v = (y as f64 + rng.gen::()) / (ny as f64); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:117:45 [INFO] [stderr] | [INFO] [stderr] 117 | let v = (y 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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/render.rs:129:60 [INFO] [stderr] | [INFO] [stderr] 129 | let emitted = material.emitted(h.u, h.v, &h.p).unwrap_or(Vec3::new(0.0,0.0,0.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Vec3::new(0.0,0.0,0.0))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:196:17 [INFO] [stderr] | [INFO] [stderr] 196 | a as f64 + 0.9 * random::(), [INFO] [stderr] | ^^^^^^^^ help: try: `f64::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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:198:17 [INFO] [stderr] | [INFO] [stderr] 198 | b as f64 + 0.9 * random::(), [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] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/util.rs:14:14 [INFO] [stderr] | [INFO] [stderr] 14 | AXIS.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vec3.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | / match a { [INFO] [stderr] 22 | | &Axis::X => self.x, [INFO] [stderr] 23 | | &Axis::Y => self.y, [INFO] [stderr] 24 | | &Axis::Z => self.z, [INFO] [stderr] 25 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 21 | match *a { [INFO] [stderr] 22 | Axis::X => self.x, [INFO] [stderr] 23 | Axis::Y => self.y, [INFO] [stderr] 24 | Axis::Z => self.z, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/vec3.rs:29:25 [INFO] [stderr] | [INFO] [stderr] 29 | let mut new_v = self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vec3.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | / match a { [INFO] [stderr] 31 | | &Axis::X => new_v.x = value, [INFO] [stderr] 32 | | &Axis::Y => new_v.y = value, [INFO] [stderr] 33 | | &Axis::Z => new_v.z = value, [INFO] [stderr] 34 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 30 | match *a { [INFO] [stderr] 31 | Axis::X => new_v.x = value, [INFO] [stderr] 32 | Axis::Y => new_v.y = value, [INFO] [stderr] 33 | Axis::Z => new_v.z = value, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vec3.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | / match axis { [INFO] [stderr] 79 | | &Axis::X => self.rotate_x(cos_theta, sin_theta), [INFO] [stderr] 80 | | &Axis::Y => self.rotate_y(cos_theta, sin_theta), [INFO] [stderr] 81 | | &Axis::Z => self.rotate_z(cos_theta, sin_theta), [INFO] [stderr] 82 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 78 | match *axis { [INFO] [stderr] 79 | Axis::X => self.rotate_x(cos_theta, sin_theta), [INFO] [stderr] 80 | Axis::Y => self.rotate_y(cos_theta, sin_theta), [INFO] [stderr] 81 | Axis::Z => self.rotate_z(cos_theta, sin_theta), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/vec3.rs:143:26 [INFO] [stderr] | [INFO] [stderr] 143 | Vec3 { x: self.x - other.x, y: self.y - other.y, z: self.z - other.z, } [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::suspicious_arithmetic_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/vec3.rs:143:47 [INFO] [stderr] | [INFO] [stderr] 143 | Vec3 { x: self.x - other.x, y: self.y - other.y, z: self.z - other.z, } [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/vec3.rs:143:68 [INFO] [stderr] | [INFO] [stderr] 143 | Vec3 { x: self.x - other.x, y: self.y - other.y, z: self.z - other.z, } [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 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 variable: `rng` [INFO] [stderr] --> src/shader/material.rs:123:49 [INFO] [stderr] | [INFO] [stderr] 123 | fn scatter(&self, r: &Ray, hit: &HitRecord, rng: &mut XorShiftRng) -> Option<(Vec3, Ray)> { [INFO] [stderr] | ^^^ help: consider using `_rng` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/shader/material.rs:161:51 [INFO] [stderr] | [INFO] [stderr] 161 | fn scatter(&self, _r: &Ray, _hit: &HitRecord, rng: &mut XorShiftRng) -> Option<(Vec3, Ray)> { [INFO] [stderr] | ^^^ help: consider using `_rng` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `u` [INFO] [stderr] --> src/shader/material.rs:179:23 [INFO] [stderr] | [INFO] [stderr] 179 | fn emitted(&self, u: f64, v: f64, p: &Vec3) -> Option { [INFO] [stderr] | ^ help: consider using `_u` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/shader/material.rs:179:31 [INFO] [stderr] | [INFO] [stderr] 179 | fn emitted(&self, u: f64, v: f64, p: &Vec3) -> Option { [INFO] [stderr] | ^ help: consider using `_v` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/shader/material.rs:179:39 [INFO] [stderr] | [INFO] [stderr] 179 | fn emitted(&self, u: f64, v: f64, p: &Vec3) -> Option { [INFO] [stderr] | ^ help: consider using `_p` instead [INFO] [stderr] [INFO] [stderr] warning: function is never used: `test_perlin_generate` [INFO] [stderr] --> src/shader/texture.rs:254:5 [INFO] [stderr] | [INFO] [stderr] 254 | fn test_perlin_generate() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/model/bvh.rs:84:29 [INFO] [stderr] | [INFO] [stderr] 84 | let x = (i as i32 as f64)*self.max.x + ((1-i) as i32 as f64)*self.min.x; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(i as i32)` [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/model/bvh.rs:84:60 [INFO] [stderr] | [INFO] [stderr] 84 | let x = (i as i32 as f64)*self.max.x + ((1-i) as i32 as f64)*self.min.x; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((1-i) as i32)` [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/model/bvh.rs:85:29 [INFO] [stderr] | [INFO] [stderr] 85 | let y = (j as i32 as f64)*self.max.y + ((1-j) as i32 as f64)*self.min.y; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(j as i32)` [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/model/bvh.rs:85:60 [INFO] [stderr] | [INFO] [stderr] 85 | let y = (j as i32 as f64)*self.max.y + ((1-j) as i32 as f64)*self.min.y; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((1-j) as i32)` [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/model/bvh.rs:86:29 [INFO] [stderr] | [INFO] [stderr] 86 | let z = (k as i32 as f64)*self.max.z + ((1-k) as i32 as f64)*self.min.z; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(k as i32)` [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/model/bvh.rs:86:60 [INFO] [stderr] | [INFO] [stderr] 86 | let z = (k as i32 as f64)*self.max.z + ((1-k) as i32 as f64)*self.min.z; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((1-k) as i32)` [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 seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/model/bvh.rs:118:30 [INFO] [stderr] | [INFO] [stderr] 118 | hitables.sort_by(|a: &Box, b: &Box| { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `&BVHItem` [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 seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/model/bvh.rs:118:48 [INFO] [stderr] | [INFO] [stderr] 118 | hitables.sort_by(|a: &Box, b: &Box| { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `&BVHItem` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/model/sphere.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | assert!(res.clone().unwrap().t == expected.t); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(res.clone().unwrap().t - expected.t).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/model/sphere.rs:97:17 [INFO] [stderr] | [INFO] [stderr] 97 | assert!(res.clone().unwrap().t == expected.t); [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/model/constant_medium.rs:112:17 [INFO] [stderr] | [INFO] [stderr] 112 | assert!(res.clone().unwrap().0.t == 4.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(res.clone().unwrap().0.t - 4.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/model/constant_medium.rs:112:17 [INFO] [stderr] | [INFO] [stderr] 112 | assert!(res.clone().unwrap().0.t == 4.0); [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/model/constant_medium.rs:113:17 [INFO] [stderr] | [INFO] [stderr] 113 | assert!(res.clone().unwrap().1.t == 6.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(res.clone().unwrap().1.t - 6.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/model/constant_medium.rs:113:17 [INFO] [stderr] | [INFO] [stderr] 113 | assert!(res.clone().unwrap().1.t == 6.0); [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:140:30 [INFO] [stderr] | [INFO] [stderr] 140 | let fi = i as i32 as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(i as i32)` [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/shader/texture.rs:141:30 [INFO] [stderr] | [INFO] [stderr] 141 | let fj = j as i32 as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(j as i32)` [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/shader/texture.rs:142:30 [INFO] [stderr] | [INFO] [stderr] 142 | let fk = k as i32 as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(k as i32)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/shader/texture.rs:156:26 [INFO] [stderr] | [INFO] [stderr] 156 | let mut temp_p = p.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*p` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `p` manually [INFO] [stderr] --> src/shader/texture.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | / let tmp = p[i]; [INFO] [stderr] 186 | | p[i] = p[target]; [INFO] [stderr] 187 | | p[target] = tmp; [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: use of `expect` followed by a function call [INFO] [stderr] --> src/shader/texture.rs:224:12 [INFO] [stderr] | [INFO] [stderr] 224 | .expect(&format!("Could not open image texture: {}", path)).to_rgb(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Could not open image texture: {}", path))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:236:21 [INFO] [stderr] | [INFO] [stderr] 236 | let i = u * (self.width as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:237:27 [INFO] [stderr] | [INFO] [stderr] 237 | let j = (1.0-v) * (self.height as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:240:23 [INFO] [stderr] | [INFO] [stderr] 240 | let i = i.min(self.width as f64 - 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.width)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:243:23 [INFO] [stderr] | [INFO] [stderr] 243 | let j = j.min(self.height as f64 - 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:246:19 [INFO] [stderr] | [INFO] [stderr] 246 | Vec3::new(rgb[0] as f64, rgb[1] as f64, rgb[2] as f64) / 255.0 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(rgb[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:246:34 [INFO] [stderr] | [INFO] [stderr] 246 | Vec3::new(rgb[0] as f64, rgb[1] as f64, rgb[2] as f64) / 255.0 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(rgb[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 f64 may become silently lossy if types change [INFO] [stderr] --> src/shader/texture.rs:246:49 [INFO] [stderr] | [INFO] [stderr] 246 | Vec3::new(rgb[0] as f64, rgb[1] as f64, rgb[2] as f64) / 255.0 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(rgb[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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/shader/texture.rs:257:21 [INFO] [stderr] | [INFO] [stderr] 257 | assert!(i.length() == 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(i.length() - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/shader/texture.rs:257:21 [INFO] [stderr] | [INFO] [stderr] 257 | assert!(i.length() == 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bench.rs:17:28 [INFO] [stderr] | [INFO] [stderr] 17 | let rays_per_sec = rays as f64 / runtime; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(rays)` [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/bench.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 45 | (nx as f64) / (ny 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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bench.rs:45:23 [INFO] [stderr] | [INFO] [stderr] 45 | (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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:75:37 [INFO] [stderr] | [INFO] [stderr] 75 | let c = c / (spp as f64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(spp)` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/render.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | writeln!(&mut ::std::io::stderr(), "Thread {} done", nth); [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] = 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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:116:14 [INFO] [stderr] | [INFO] [stderr] 116 | let u = (x as f64 + rng.gen::()) / (nx as f64); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:116:45 [INFO] [stderr] | [INFO] [stderr] 116 | let u = (x 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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:117:14 [INFO] [stderr] | [INFO] [stderr] 117 | let v = (y as f64 + rng.gen::()) / (ny as f64); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:117:45 [INFO] [stderr] | [INFO] [stderr] 117 | let v = (y 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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/render.rs:129:60 [INFO] [stderr] | [INFO] [stderr] 129 | let emitted = material.emitted(h.u, h.v, &h.p).unwrap_or(Vec3::new(0.0,0.0,0.0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| Vec3::new(0.0,0.0,0.0))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:196:17 [INFO] [stderr] | [INFO] [stderr] 196 | a as f64 + 0.9 * random::(), [INFO] [stderr] | ^^^^^^^^ help: try: `f64::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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/render.rs:198:17 [INFO] [stderr] | [INFO] [stderr] 198 | b as f64 + 0.9 * random::(), [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] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/util.rs:14:14 [INFO] [stderr] | [INFO] [stderr] 14 | AXIS.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vec3.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | / match a { [INFO] [stderr] 22 | | &Axis::X => self.x, [INFO] [stderr] 23 | | &Axis::Y => self.y, [INFO] [stderr] 24 | | &Axis::Z => self.z, [INFO] [stderr] 25 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 21 | match *a { [INFO] [stderr] 22 | Axis::X => self.x, [INFO] [stderr] 23 | Axis::Y => self.y, [INFO] [stderr] 24 | Axis::Z => self.z, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/vec3.rs:29:25 [INFO] [stderr] | [INFO] [stderr] 29 | let mut new_v = self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vec3.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | / match a { [INFO] [stderr] 31 | | &Axis::X => new_v.x = value, [INFO] [stderr] 32 | | &Axis::Y => new_v.y = value, [INFO] [stderr] 33 | | &Axis::Z => new_v.z = value, [INFO] [stderr] 34 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 30 | match *a { [INFO] [stderr] 31 | Axis::X => new_v.x = value, [INFO] [stderr] 32 | Axis::Y => new_v.y = value, [INFO] [stderr] 33 | Axis::Z => new_v.z = value, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/vec3.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | / match axis { [INFO] [stderr] 79 | | &Axis::X => self.rotate_x(cos_theta, sin_theta), [INFO] [stderr] 80 | | &Axis::Y => self.rotate_y(cos_theta, sin_theta), [INFO] [stderr] 81 | | &Axis::Z => self.rotate_z(cos_theta, sin_theta), [INFO] [stderr] 82 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 78 | match *axis { [INFO] [stderr] 79 | Axis::X => self.rotate_x(cos_theta, sin_theta), [INFO] [stderr] 80 | Axis::Y => self.rotate_y(cos_theta, sin_theta), [INFO] [stderr] 81 | Axis::Z => self.rotate_z(cos_theta, sin_theta), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/vec3.rs:143:26 [INFO] [stderr] | [INFO] [stderr] 143 | Vec3 { x: self.x - other.x, y: self.y - other.y, z: self.z - other.z, } [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::suspicious_arithmetic_impl)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/vec3.rs:143:47 [INFO] [stderr] | [INFO] [stderr] 143 | Vec3 { x: self.x - other.x, y: self.y - other.y, z: self.z - other.z, } [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: Suspicious use of binary operator in `Div` impl [INFO] [stderr] --> src/vec3.rs:143:68 [INFO] [stderr] | [INFO] [stderr] 143 | Vec3 { x: self.x - other.x, y: self.y - other.y, z: self.z - other.z, } [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_arithmetic_impl [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/vec3.rs:255:17 [INFO] [stderr] | [INFO] [stderr] 255 | assert!(Vec3::new(-2.0,1.0,1.0).squared_length() == 6.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(Vec3::new(-2.0,1.0,1.0).squared_length() - 6.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3.rs:255:17 [INFO] [stderr] | [INFO] [stderr] 255 | assert!(Vec3::new(-2.0,1.0,1.0).squared_length() == 6.0) [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/vec3.rs:275:17 [INFO] [stderr] | [INFO] [stderr] 275 | assert!(a.dot(b) == 32.0) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(a.dot(b) - 32.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/vec3.rs:275:17 [INFO] [stderr] | [INFO] [stderr] 275 | assert!(a.dot(b) == 32.0) [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: aborting due to 10 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" "9f39ab4d0bb91cb99abee6648af4019c092c26431a5481ea7c79a286cab9b7b8"` [INFO] running `"docker" "rm" "-f" "9f39ab4d0bb91cb99abee6648af4019c092c26431a5481ea7c79a286cab9b7b8"` [INFO] [stdout] 9f39ab4d0bb91cb99abee6648af4019c092c26431a5481ea7c79a286cab9b7b8