[INFO] updating cached repository ramonimbao/rt1w [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/ramonimbao/rt1w [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/ramonimbao/rt1w" "work/ex/clippy-test-run/sources/stable/gh/ramonimbao/rt1w"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/ramonimbao/rt1w'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/ramonimbao/rt1w" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ramonimbao/rt1w"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ramonimbao/rt1w'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] c920b913b609584337fffda108291e4b2d608a7a [INFO] sha for GitHub repo ramonimbao/rt1w: c920b913b609584337fffda108291e4b2d608a7a [INFO] validating manifest of ramonimbao/rt1w 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 ramonimbao/rt1w 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 ramonimbao/rt1w [INFO] finished frobbing ramonimbao/rt1w [INFO] frobbed toml for ramonimbao/rt1w written to work/ex/clippy-test-run/sources/stable/gh/ramonimbao/rt1w/Cargo.toml [INFO] started frobbing ramonimbao/rt1w [INFO] finished frobbing ramonimbao/rt1w [INFO] frobbed toml for ramonimbao/rt1w written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ramonimbao/rt1w/Cargo.toml [INFO] crate ramonimbao/rt1w 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 ramonimbao/rt1w against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/ramonimbao/rt1w:/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] 5e5a963cd77c144fbf6f8b2ef14d4b73519fcb7282f8d52ec8febb3b029984de [INFO] running `"docker" "start" "-a" "5e5a963cd77c144fbf6f8b2ef14d4b73519fcb7282f8d52ec8febb3b029984de"` [INFO] [stderr] Compiling structopt-derive v0.2.14 [INFO] [stderr] Checking structopt v0.2.14 [INFO] [stderr] Checking rt1w v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/shapes/plane.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | normal: normal, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `normal` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/textures/image_texture.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | let r = self.pixels[i + self.width as usize * j].x as f64; [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: 6th binding whose name is just one char [INFO] [stderr] --> src/textures/image_texture.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | let g = self.pixels[i + self.width as usize * j].y as f64; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 7th binding whose name is just one char [INFO] [stderr] --> src/textures/image_texture.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | let b = self.pixels[i + self.width as usize * j].z as f64; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 5th binding whose name is just one char [INFO] [stderr] --> src/util/perlin.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | let i = p.x.floor() as usize; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 6th binding whose name is just one char [INFO] [stderr] --> src/util/perlin.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let j = p.y.floor() as usize; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 7th binding whose name is just one char [INFO] [stderr] --> src/util/perlin.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | let k = p.z.floor() as usize; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 8th binding whose name is just one char [INFO] [stderr] --> src/util/perlin.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | let mut c = vec![vec![vec![Vec3::zero(); 2]; 2]; 2]; [INFO] [stderr] | ^ [INFO] [stderr] | [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/shapes/plane.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | normal: normal, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `normal` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/textures/image_texture.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | let r = self.pixels[i + self.width as usize * j].x as f64; [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: 6th binding whose name is just one char [INFO] [stderr] --> src/textures/image_texture.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | let g = self.pixels[i + self.width as usize * j].y as f64; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 7th binding whose name is just one char [INFO] [stderr] --> src/textures/image_texture.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | let b = self.pixels[i + self.width as usize * j].z as f64; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 5th binding whose name is just one char [INFO] [stderr] --> src/util/perlin.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | let i = p.x.floor() as usize; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 6th binding whose name is just one char [INFO] [stderr] --> src/util/perlin.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | let j = p.y.floor() as usize; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 7th binding whose name is just one char [INFO] [stderr] --> src/util/perlin.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | let k = p.z.floor() as usize; [INFO] [stderr] | ^ [INFO] [stderr] | [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: 8th binding whose name is just one char [INFO] [stderr] --> src/util/perlin.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | let mut c = vec![vec![vec![Vec3::zero(); 2]; 2]; 2]; [INFO] [stderr] | ^ [INFO] [stderr] | [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: unused import: `std::env` [INFO] [stderr] --> src/main.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::env; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/defaults.rs:13:29 [INFO] [stderr] | [INFO] [stderr] 13 | pub const OUTPUT_FILENAME: &'static str = "output.png"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unused import: `image` [INFO] [stderr] --> src/materials/lambertian.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use image; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/materials/lambertian.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/materials/lambertian.rs:38:18 [INFO] [stderr] | [INFO] [stderr] 38 | let result = match texture_type { [INFO] [stderr] | __________________^ [INFO] [stderr] 39 | | TextureType::Checkered => checkered_texture::load_from_json(&values), [INFO] [stderr] 40 | | TextureType::Constant => constant_texture::load_from_json(&values), [INFO] [stderr] 41 | | TextureType::Image => image_texture::load_from_json(&values), [INFO] [stderr] 42 | | TextureType::Noise => noise_texture::load_from_json(&values), [INFO] [stderr] 43 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/textures/checkered_texture.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | return self.odd.value(u, v, p); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.odd.value(u, v, p)` [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: unneeded return statement [INFO] [stderr] --> src/textures/checkered_texture.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | return self.even.value(u, v, p); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.even.value(u, v, p)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs` [INFO] [stderr] --> src/util/camera.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fs; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde_json::Value` [INFO] [stderr] --> src/util/camera.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use serde_json::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:60:27 [INFO] [stderr] | [INFO] [stderr] 60 | let output_filename = *&values["config"]["output"].as_str(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["config"]["output"].as_str()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::deref_addrof)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | let width = *&values["config"]["width"].as_u64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["config"]["width"].as_u64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:67:18 [INFO] [stderr] | [INFO] [stderr] 67 | let height = *&values["config"]["height"].as_u64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["config"]["height"].as_u64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:68:19 [INFO] [stderr] | [INFO] [stderr] 68 | let samples = *&values["config"]["samples"].as_u64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["config"]["samples"].as_u64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | *&values["camera"]["from"]["x"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["from"]["x"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | *&values["camera"]["from"]["y"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["from"]["y"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | *&values["camera"]["from"]["z"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["from"]["z"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | *&values["camera"]["to"]["x"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["to"]["x"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | *&values["camera"]["to"]["y"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["to"]["y"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | *&values["camera"]["to"]["z"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["to"]["z"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | *&values["camera"]["vertical"]["x"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["vertical"]["x"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:104:9 [INFO] [stderr] | [INFO] [stderr] 104 | *&values["camera"]["vertical"]["y"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["vertical"]["y"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:105:9 [INFO] [stderr] | [INFO] [stderr] 105 | *&values["camera"]["vertical"]["z"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["vertical"]["z"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:117:15 [INFO] [stderr] | [INFO] [stderr] 117 | let fov = *&values["camera"]["fov"].as_f64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["fov"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:123:18 [INFO] [stderr] | [INFO] [stderr] 123 | let aspect = *&values["camera"]["aspect_ratio"].as_f64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["aspect_ratio"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:129:20 [INFO] [stderr] | [INFO] [stderr] 129 | let aperture = *&values["camera"]["aperture"].as_f64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["aperture"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:135:26 [INFO] [stderr] | [INFO] [stderr] 135 | let focus_distance = *&values["camera"]["focus_distance"].as_f64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["focus_distance"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:142:9 [INFO] [stderr] | [INFO] [stderr] 142 | *&values["camera"]["t0"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["t0"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | *&values["camera"]["t1"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["t1"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: unused import: `Cuboid` [INFO] [stderr] --> src/util/world.rs:13:20 [INFO] [stderr] | [INFO] [stderr] 13 | cuboid::{self, Cuboid}, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `rotate::Rotate`, `translate::Translate` [INFO] [stderr] --> src/util/world.rs:22:24 [INFO] [stderr] | [INFO] [stderr] 22 | use crate::transform::{rotate::Rotate, translate::Translate}; [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util/world.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | / return attenuation * color(&scattered, world, depth + 1) [INFO] [stderr] 44 | | + if crate::defaults::ENABLE_LIGHTS { [INFO] [stderr] 45 | | emitted [INFO] [stderr] 46 | | } else { [INFO] [stderr] 47 | | Vec3::zero() [INFO] [stderr] 48 | | }; [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 43 | attenuation * color(&scattered, world, depth + 1) [INFO] [stderr] 44 | + if crate::defaults::ENABLE_LIGHTS { [INFO] [stderr] 45 | emitted [INFO] [stderr] 46 | } else { [INFO] [stderr] 47 | Vec3::zero() [INFO] [stderr] 48 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util/world.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | return emitted; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `emitted` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/util/world.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 52 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 53 | | if crate::defaults::ENABLE_LIGHTS { [INFO] [stderr] 54 | | Vec3::zero() [INFO] [stderr] 55 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 52 | } else if crate::defaults::ENABLE_LIGHTS { [INFO] [stderr] 53 | Vec3::zero() [INFO] [stderr] 54 | } else { [INFO] [stderr] 55 | let unit_direction = math::unit_vector(&r.direction); [INFO] [stderr] 56 | let t = 0.5 * (unit_direction.y + 1.0); [INFO] [stderr] 57 | Vec3::unit() * (1.0 - t) + Vec3::new(0.5, 0.7, 1.0) * t [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/util/world.rs:305:5 [INFO] [stderr] | [INFO] [stderr] 305 | list [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/util/world.rs:304:16 [INFO] [stderr] | [INFO] [stderr] 304 | let list = HitableList::new(list); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/util/world.rs:375:5 [INFO] [stderr] | [INFO] [stderr] 375 | list [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/util/world.rs:374:16 [INFO] [stderr] | [INFO] [stderr] 374 | let list = HitableList::new(list); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::env` [INFO] [stderr] --> src/main.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::env; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/defaults.rs:13:29 [INFO] [stderr] | [INFO] [stderr] 13 | pub const OUTPUT_FILENAME: &'static str = "output.png"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unused import: `image` [INFO] [stderr] --> src/materials/lambertian.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use image; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/materials/lambertian.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/materials/lambertian.rs:38:18 [INFO] [stderr] | [INFO] [stderr] 38 | let result = match texture_type { [INFO] [stderr] | __________________^ [INFO] [stderr] 39 | | TextureType::Checkered => checkered_texture::load_from_json(&values), [INFO] [stderr] 40 | | TextureType::Constant => constant_texture::load_from_json(&values), [INFO] [stderr] 41 | | TextureType::Image => image_texture::load_from_json(&values), [INFO] [stderr] 42 | | TextureType::Noise => noise_texture::load_from_json(&values), [INFO] [stderr] 43 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/textures/checkered_texture.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | return self.odd.value(u, v, p); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.odd.value(u, v, p)` [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: unneeded return statement [INFO] [stderr] --> src/textures/checkered_texture.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | return self.even.value(u, v, p); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.even.value(u, v, p)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs` [INFO] [stderr] --> src/util/camera.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fs; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde_json::Value` [INFO] [stderr] --> src/util/camera.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use serde_json::Value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:60:27 [INFO] [stderr] | [INFO] [stderr] 60 | let output_filename = *&values["config"]["output"].as_str(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["config"]["output"].as_str()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::deref_addrof)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | let width = *&values["config"]["width"].as_u64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["config"]["width"].as_u64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:67:18 [INFO] [stderr] | [INFO] [stderr] 67 | let height = *&values["config"]["height"].as_u64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["config"]["height"].as_u64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:68:19 [INFO] [stderr] | [INFO] [stderr] 68 | let samples = *&values["config"]["samples"].as_u64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["config"]["samples"].as_u64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | *&values["camera"]["from"]["x"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["from"]["x"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | *&values["camera"]["from"]["y"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["from"]["y"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | *&values["camera"]["from"]["z"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["from"]["z"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | *&values["camera"]["to"]["x"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["to"]["x"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | *&values["camera"]["to"]["y"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["to"]["y"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | *&values["camera"]["to"]["z"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["to"]["z"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:103:9 [INFO] [stderr] | [INFO] [stderr] 103 | *&values["camera"]["vertical"]["x"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["vertical"]["x"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:104:9 [INFO] [stderr] | [INFO] [stderr] 104 | *&values["camera"]["vertical"]["y"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["vertical"]["y"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:105:9 [INFO] [stderr] | [INFO] [stderr] 105 | *&values["camera"]["vertical"]["z"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["vertical"]["z"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:117:15 [INFO] [stderr] | [INFO] [stderr] 117 | let fov = *&values["camera"]["fov"].as_f64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["fov"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:123:18 [INFO] [stderr] | [INFO] [stderr] 123 | let aspect = *&values["camera"]["aspect_ratio"].as_f64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["aspect_ratio"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:129:20 [INFO] [stderr] | [INFO] [stderr] 129 | let aperture = *&values["camera"]["aperture"].as_f64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["aperture"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:135:26 [INFO] [stderr] | [INFO] [stderr] 135 | let focus_distance = *&values["camera"]["focus_distance"].as_f64(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["focus_distance"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:142:9 [INFO] [stderr] | [INFO] [stderr] 142 | *&values["camera"]["t0"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["t0"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: immediately dereferencing a reference [INFO] [stderr] --> src/util/config.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | *&values["camera"]["t1"].as_f64(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `values["camera"]["t1"].as_f64()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deref_addrof [INFO] [stderr] [INFO] [stderr] warning: unused import: `Cuboid` [INFO] [stderr] --> src/util/world.rs:13:20 [INFO] [stderr] | [INFO] [stderr] 13 | cuboid::{self, Cuboid}, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `rotate::Rotate`, `translate::Translate` [INFO] [stderr] --> src/util/world.rs:22:24 [INFO] [stderr] | [INFO] [stderr] 22 | use crate::transform::{rotate::Rotate, translate::Translate}; [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util/world.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | / return attenuation * color(&scattered, world, depth + 1) [INFO] [stderr] 44 | | + if crate::defaults::ENABLE_LIGHTS { [INFO] [stderr] 45 | | emitted [INFO] [stderr] 46 | | } else { [INFO] [stderr] 47 | | Vec3::zero() [INFO] [stderr] 48 | | }; [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 43 | attenuation * color(&scattered, world, depth + 1) [INFO] [stderr] 44 | + if crate::defaults::ENABLE_LIGHTS { [INFO] [stderr] 45 | emitted [INFO] [stderr] 46 | } else { [INFO] [stderr] 47 | Vec3::zero() [INFO] [stderr] 48 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/util/world.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | return emitted; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `emitted` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/util/world.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 52 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 53 | | if crate::defaults::ENABLE_LIGHTS { [INFO] [stderr] 54 | | Vec3::zero() [INFO] [stderr] 55 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 52 | } else if crate::defaults::ENABLE_LIGHTS { [INFO] [stderr] 53 | Vec3::zero() [INFO] [stderr] 54 | } else { [INFO] [stderr] 55 | let unit_direction = math::unit_vector(&r.direction); [INFO] [stderr] 56 | let t = 0.5 * (unit_direction.y + 1.0); [INFO] [stderr] 57 | Vec3::unit() * (1.0 - t) + Vec3::new(0.5, 0.7, 1.0) * t [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/util/world.rs:305:5 [INFO] [stderr] | [INFO] [stderr] 305 | list [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/util/world.rs:304:16 [INFO] [stderr] | [INFO] [stderr] 304 | let list = HitableList::new(list); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/util/world.rs:375:5 [INFO] [stderr] | [INFO] [stderr] 375 | list [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/util/world.rs:374:16 [INFO] [stderr] | [INFO] [stderr] 374 | let list = HitableList::new(list); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: field is never used: `w` [INFO] [stderr] --> src/util/camera.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | w: Vec3, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_default` [INFO] [stderr] --> src/main.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | fn get_default() -> ((Config, Camera), HitableList) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `help` [INFO] [stderr] --> src/main.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | fn help() { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused attribute [INFO] [stderr] --> src/main.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_attributes)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused attribute [INFO] [stderr] --> src/main.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/materials/dielectric.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / let cosine; [INFO] [stderr] 34 | | if math::dot(&r_in.direction, &rec.normal) > 0.0 { [INFO] [stderr] 35 | | outward_normal = -rec.normal; [INFO] [stderr] 36 | | ni_over_nt = self.refractive_index; [INFO] [stderr] ... | [INFO] [stderr] 42 | | cosine = -math::dot(&r_in.direction, &rec.normal) / r_in.direction.length(); [INFO] [stderr] 43 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 33 | let cosine = if math::dot(&r_in.direction, &rec.normal) > 0.0 { ..; self.refractive_index * math::dot(&r_in.direction, &rec.normal) [INFO] [stderr] 34 | / r_in.direction.length() } else { ..; -math::dot(&r_in.direction, &rec.normal) / r_in.direction.length() }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/shapes/cuboid.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn new(origin: Vec3, size: Vec3, material: Rc) -> Box { [INFO] [stderr] 23 | | let mut components: Vec> = Vec::new(); [INFO] [stderr] 24 | | [INFO] [stderr] 25 | | let min = origin - (size / 2.0); [INFO] [stderr] ... | [INFO] [stderr] 72 | | }) [INFO] [stderr] 73 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: field is never used: `w` [INFO] [stderr] --> src/util/camera.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | w: Vec3, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_default` [INFO] [stderr] --> src/main.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | fn get_default() -> ((Config, Camera), HitableList) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `help` [INFO] [stderr] --> src/main.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | fn help() { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused attribute [INFO] [stderr] --> src/main.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_attributes)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused attribute [INFO] [stderr] --> src/main.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/materials/dielectric.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / let cosine; [INFO] [stderr] 34 | | if math::dot(&r_in.direction, &rec.normal) > 0.0 { [INFO] [stderr] 35 | | outward_normal = -rec.normal; [INFO] [stderr] 36 | | ni_over_nt = self.refractive_index; [INFO] [stderr] ... | [INFO] [stderr] 42 | | cosine = -math::dot(&r_in.direction, &rec.normal) / r_in.direction.length(); [INFO] [stderr] 43 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 33 | let cosine = if math::dot(&r_in.direction, &rec.normal) > 0.0 { ..; self.refractive_index * math::dot(&r_in.direction, &rec.normal) [INFO] [stderr] 34 | / r_in.direction.length() } else { ..; -math::dot(&r_in.direction, &rec.normal) / r_in.direction.length() }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/shapes/cuboid.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn new(origin: Vec3, size: Vec3, material: Rc) -> Box { [INFO] [stderr] 23 | | let mut components: Vec> = Vec::new(); [INFO] [stderr] 24 | | [INFO] [stderr] 25 | | let min = origin - (size / 2.0); [INFO] [stderr] ... | [INFO] [stderr] 72 | | }) [INFO] [stderr] 73 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures/image_texture.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | rgb[0] as f64 / 255.0, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(rgb[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures/image_texture.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | rgb[0] as f64 / 255.0, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(rgb[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures/image_texture.rs:28:21 [INFO] [stderr] | [INFO] [stderr] 28 | rgb[1] 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/textures/image_texture.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | 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 u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures/image_texture.rs:28:21 [INFO] [stderr] | [INFO] [stderr] 28 | rgb[1] 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/textures/image_texture.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | 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 u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/textures/image_texture.rs:45:23 [INFO] [stderr] | [INFO] [stderr] 45 | let i = ((u * self.width as f64 / self.scale) as u32 % self.width) as usize; [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/textures/image_texture.rs:46:23 [INFO] [stderr] | [INFO] [stderr] 46 | let j = ((v * self.height as f64 / self.scale) as u32 % self.height) as usize; [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/textures/image_texture.rs:45:23 [INFO] [stderr] | [INFO] [stderr] 45 | let i = ((u * self.width as f64 / self.scale) as u32 % self.width) as usize; [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/textures/image_texture.rs:46:23 [INFO] [stderr] | [INFO] [stderr] 46 | let j = ((v * self.height as f64 / self.scale) as u32 % self.height) as usize; [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/transform/rotate.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | / pub fn new(object: Box, angles: Vec3) -> Box { [INFO] [stderr] 13 | | Box::new(Rotate { [INFO] [stderr] 14 | | object: RotateZ::new( [INFO] [stderr] 15 | | RotateY::new(RotateX::new(object, angles.x), angles.y), [INFO] [stderr] ... | [INFO] [stderr] 18 | | }) [INFO] [stderr] 19 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/transform/rotate.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | / pub fn new(object: Box, angle: f64) -> Box { [INFO] [stderr] 36 | | let radians = std::f64::consts::PI / 180.0 * angle; [INFO] [stderr] 37 | | Box::new(RotateY { [INFO] [stderr] 38 | | object, [INFO] [stderr] ... | [INFO] [stderr] 41 | | }) [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/transform/rotate.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | / pub fn new(object: Box, angle: f64) -> Box { [INFO] [stderr] 86 | | let radians = std::f64::consts::PI / 180.0 * angle; [INFO] [stderr] 87 | | Box::new(RotateX { [INFO] [stderr] 88 | | object, [INFO] [stderr] ... | [INFO] [stderr] 91 | | }) [INFO] [stderr] 92 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/transform/rotate.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | / pub fn new(object: Box, angles: Vec3) -> Box { [INFO] [stderr] 13 | | Box::new(Rotate { [INFO] [stderr] 14 | | object: RotateZ::new( [INFO] [stderr] 15 | | RotateY::new(RotateX::new(object, angles.x), angles.y), [INFO] [stderr] ... | [INFO] [stderr] 18 | | }) [INFO] [stderr] 19 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/transform/rotate.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | / pub fn new(object: Box, angle: f64) -> Box { [INFO] [stderr] 36 | | let radians = std::f64::consts::PI / 180.0 * angle; [INFO] [stderr] 37 | | Box::new(RotateY { [INFO] [stderr] 38 | | object, [INFO] [stderr] ... | [INFO] [stderr] 41 | | }) [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/transform/rotate.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 134 | / pub fn new(object: Box, angle: f64) -> Box { [INFO] [stderr] 135 | | let radians = std::f64::consts::PI / 180.0 * angle; [INFO] [stderr] 136 | | Box::new(RotateZ { [INFO] [stderr] 137 | | object, [INFO] [stderr] ... | [INFO] [stderr] 140 | | }) [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/transform/rotate.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | / pub fn new(object: Box, angle: f64) -> Box { [INFO] [stderr] 86 | | let radians = std::f64::consts::PI / 180.0 * angle; [INFO] [stderr] 87 | | Box::new(RotateX { [INFO] [stderr] 88 | | object, [INFO] [stderr] ... | [INFO] [stderr] 91 | | }) [INFO] [stderr] 92 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/transform/translate.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | / pub fn new(object: Box, offset: Vec3) -> Box { [INFO] [stderr] 14 | | Box::new(Translate { object, offset }) [INFO] [stderr] 15 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/transform/rotate.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 134 | / pub fn new(object: Box, angle: f64) -> Box { [INFO] [stderr] 135 | | let radians = std::f64::consts::PI / 180.0 * angle; [INFO] [stderr] 136 | | Box::new(RotateZ { [INFO] [stderr] 137 | | object, [INFO] [stderr] ... | [INFO] [stderr] 140 | | }) [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/transform/translate.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | / pub fn new(object: Box, offset: Vec3) -> Box { [INFO] [stderr] 14 | | Box::new(Translate { object, offset }) [INFO] [stderr] 15 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/util/camera.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | / pub fn new( [INFO] [stderr] 25 | | look_from: Vec3, [INFO] [stderr] 26 | | look_at: Vec3, [INFO] [stderr] 27 | | vup: Vec3, [INFO] [stderr] ... | [INFO] [stderr] 55 | | } [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/util/camera.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | / pub fn new( [INFO] [stderr] 25 | | look_from: Vec3, [INFO] [stderr] 26 | | look_at: Vec3, [INFO] [stderr] 27 | | vup: Vec3, [INFO] [stderr] ... | [INFO] [stderr] 55 | | } [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/util/camera.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | defaults::WIDTH as f64 / defaults::HEIGHT as f64, // Aspect ratio [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(defaults::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/util/camera.rs:76:38 [INFO] [stderr] | [INFO] [stderr] 76 | defaults::WIDTH as f64 / defaults::HEIGHT as f64, // Aspect ratio [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(defaults::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/util/camera.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | defaults::WIDTH as f64 / defaults::HEIGHT as f64, // Aspect ratio [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(defaults::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/util/camera.rs:76:38 [INFO] [stderr] | [INFO] [stderr] 76 | defaults::WIDTH as f64 / defaults::HEIGHT as f64, // Aspect ratio [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(defaults::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: this creates an owned instance just for comparison [INFO] [stderr] --> src/util/config.rs:36:20 [INFO] [stderr] | [INFO] [stderr] 36 | if filename == "".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `""` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/util/config.rs:126:14 [INFO] [stderr] | [INFO] [stderr] 126 | _ => width as f64 / height as f64, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(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/util/config.rs:126:29 [INFO] [stderr] | [INFO] [stderr] 126 | _ => width as f64 / height as f64, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/util/config.rs:36:20 [INFO] [stderr] | [INFO] [stderr] 36 | if filename == "".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `""` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/util/config.rs:126:14 [INFO] [stderr] | [INFO] [stderr] 126 | _ => width as f64 / height as f64, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(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/util/config.rs:126:29 [INFO] [stderr] | [INFO] [stderr] 126 | _ => width as f64 / height as f64, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(height)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the loop variable `di` is used to index `c` [INFO] [stderr] --> src/util/perlin.rs:30:19 [INFO] [stderr] | [INFO] [stderr] 30 | for di in 0..2 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 30 | for (di, ) in c.iter_mut().enumerate().take(2) { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/util/perlin.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | / (0..256) [INFO] [stderr] 60 | | .into_iter() [INFO] [stderr] | |____________________^ help: consider removing `.into_iter()`: `(0..256)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/util/perlin.rs:72:27 [INFO] [stderr] | [INFO] [stderr] 72 | let mut p: Vec = (0..256).into_iter().collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..256)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `p` manually [INFO] [stderr] --> src/util/perlin.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | / let temp = p[i as usize]; [INFO] [stderr] 83 | | p[i as usize] = p[target]; [INFO] [stderr] 84 | | p[target] = temp; [INFO] [stderr] | |________________________^ help: try: `p.swap(i as usize, target)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `di` is used to index `c` [INFO] [stderr] --> src/util/perlin.rs:30:19 [INFO] [stderr] | [INFO] [stderr] 30 | for di in 0..2 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 30 | for (di, ) in c.iter_mut().enumerate().take(2) { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `c` [INFO] [stderr] --> src/util/perlin.rs:94:14 [INFO] [stderr] | [INFO] [stderr] 94 | for i in 0..2 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 94 | for (i, ) in c.iter().enumerate().take(2) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/util/perlin.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | / (0..256) [INFO] [stderr] 60 | | .into_iter() [INFO] [stderr] | |____________________^ help: consider removing `.into_iter()`: `(0..256)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/util/perlin.rs:72:27 [INFO] [stderr] | [INFO] [stderr] 72 | let mut p: Vec = (0..256).into_iter().collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..256)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `p` manually [INFO] [stderr] --> src/util/perlin.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | / let temp = p[i as usize]; [INFO] [stderr] 83 | | p[i as usize] = p[target]; [INFO] [stderr] 84 | | p[target] = temp; [INFO] [stderr] | |________________________^ help: try: `p.swap(i as usize, target)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `c` [INFO] [stderr] --> src/util/perlin.rs:94:14 [INFO] [stderr] | [INFO] [stderr] 94 | for i in 0..2 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 94 | for (i, ) in c.iter().enumerate().take(2) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/util/world.rs:200:17 [INFO] [stderr] | [INFO] [stderr] 200 | a as f64 + 0.9 * rng.gen::(), [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/util/world.rs:202:17 [INFO] [stderr] | [INFO] [stderr] 202 | b as f64 + 0.9 * rng.gen::(), [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/util/world.rs:200:17 [INFO] [stderr] | [INFO] [stderr] 200 | a as f64 + 0.9 * rng.gen::(), [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/util/world.rs:202:17 [INFO] [stderr] | [INFO] [stderr] 202 | b as f64 + 0.9 * rng.gen::(), [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:71:26 [INFO] [stderr] | [INFO] [stderr] 71 | let u = (i as f64 + rng.gen::()) / config.width as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:71:57 [INFO] [stderr] | [INFO] [stderr] 71 | let u = (i as f64 + rng.gen::()) / config.width as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(config.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/main.rs:72:26 [INFO] [stderr] | [INFO] [stderr] 72 | let v = (j as f64 + rng.gen::()) / config.height as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(j)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:72:57 [INFO] [stderr] | [INFO] [stderr] 72 | let v = (j as f64 + rng.gen::()) / config.height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(config.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/main.rs:76:20 [INFO] [stderr] | [INFO] [stderr] 76 | col /= config.samples as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(config.samples)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:71:26 [INFO] [stderr] | [INFO] [stderr] 71 | let u = (i as f64 + rng.gen::()) / config.width as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(i)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:71:57 [INFO] [stderr] | [INFO] [stderr] 71 | let u = (i as f64 + rng.gen::()) / config.width as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(config.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/main.rs:72:26 [INFO] [stderr] | [INFO] [stderr] 72 | let v = (j as f64 + rng.gen::()) / config.height as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(j)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:72:57 [INFO] [stderr] | [INFO] [stderr] 72 | let v = (j as f64 + rng.gen::()) / config.height as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(config.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/main.rs:76:20 [INFO] [stderr] | [INFO] [stderr] 76 | col /= config.samples as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(config.samples)` [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] Finished dev [unoptimized + debuginfo] target(s) in 7.00s [INFO] running `"docker" "inspect" "5e5a963cd77c144fbf6f8b2ef14d4b73519fcb7282f8d52ec8febb3b029984de"` [INFO] running `"docker" "rm" "-f" "5e5a963cd77c144fbf6f8b2ef14d4b73519fcb7282f8d52ec8febb3b029984de"` [INFO] [stdout] 5e5a963cd77c144fbf6f8b2ef14d4b73519fcb7282f8d52ec8febb3b029984de