[INFO] cloning repository https://github.com/TomChiavegato/ray_tracer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TomChiavegato/ray_tracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTomChiavegato%2Fray_tracer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTomChiavegato%2Fray_tracer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7fb5adc0e35b15f1926d712ef5241e2017794967 [INFO] linting TomChiavegato/ray_tracer against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTomChiavegato%2Fray_tracer" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/TomChiavegato/ray_tracer [INFO] finished tweaking git repo https://github.com/TomChiavegato/ray_tracer [INFO] tweaked toml for git repo https://github.com/TomChiavegato/ray_tracer written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/TomChiavegato/ray_tracer on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/TomChiavegato/ray_tracer already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cast_trait v0.1.2 [INFO] [stderr] Downloaded vec3 v0.2.1 [INFO] [stderr] Downloaded indicatif v0.17.6 [INFO] [stderr] Downloaded portable-atomic v1.4.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] fa150866a5e6f916571eb8a1e996cf9a050133b9e4242da012319b3af39e7f3e [INFO] running `Command { std: "docker" "start" "-a" "fa150866a5e6f916571eb8a1e996cf9a050133b9e4242da012319b3af39e7f3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fa150866a5e6f916571eb8a1e996cf9a050133b9e4242da012319b3af39e7f3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fa150866a5e6f916571eb8a1e996cf9a050133b9e4242da012319b3af39e7f3e", kill_on_drop: false }` [INFO] [stdout] fa150866a5e6f916571eb8a1e996cf9a050133b9e4242da012319b3af39e7f3e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a03a92e3ab0bb10f56bbda9c1eb9800a87e9d82dbf0151f54d0e62e82fb71804 [INFO] running `Command { std: "docker" "start" "-a" "a03a92e3ab0bb10f56bbda9c1eb9800a87e9d82dbf0151f54d0e62e82fb71804", kill_on_drop: false }` [INFO] [stderr] Compiling memoffset v0.9.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.16 [INFO] [stderr] Compiling crossbeam-epoch v0.9.15 [INFO] [stderr] Compiling rayon-core v1.12.0 [INFO] [stderr] Compiling num-traits v0.2.16 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Compiling portable-atomic v1.4.3 [INFO] [stderr] Checking unicode-width v0.1.10 [INFO] [stderr] Checking cast_trait v0.1.2 [INFO] [stderr] Checking glam v0.24.1 [INFO] [stderr] Checking getrandom v0.2.10 [INFO] [stderr] Checking console v0.15.7 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking itertools v0.11.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking crossbeam-deque v0.8.3 [INFO] [stderr] Checking rayon v1.8.0 [INFO] [stderr] Checking vec3 v0.2.1 [INFO] [stderr] Checking indicatif v0.17.6 [INFO] [stderr] Checking ray_tracing v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: methods `clear` and `add` are never used [INFO] [stdout] --> src/main.rs:146:8 [INFO] [stdout] | [INFO] [stdout] 145 | impl HittableList{ [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 146 | fn clear(&mut self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | fn add(&mut self, object: T) where T: Hittable + Sync + 'static,{ [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_value` and `aspect_ratio` are never read [INFO] [stdout] --> src/main.rs:325:5 [INFO] [stdout] | [INFO] [stdout] 322 | struct Camera{ [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 325 | max_value: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 326 | aspect_ratio: f64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 111 | if !hit.is_none(){ [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `hit.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `hit` after checking its variant with `is_none` [INFO] [stdout] --> src/main.rs:112:30 [INFO] [stdout] | [INFO] [stdout] 111 | if !hit.is_none(){ [INFO] [stdout] | ------------- the check is happening here [INFO] [stdout] 112 | let hit_record = hit.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | return (1.0 - a) * DVec3::new(1.0, 1.0, 1.0) + a * DVec3::new(0.5, 0.7, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 123 - return (1.0 - a) * DVec3::new(1.0, 1.0, 1.0) + a * DVec3::new(0.5, 0.7, 1.0); [INFO] [stdout] 123 + (1.0 - a) * DVec3::new(1.0, 1.0, 1.0) + a * DVec3::new(0.5, 0.7, 1.0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:109:29 [INFO] [stdout] | [INFO] [stdout] 109 | let hit = world.hit(&self, &((0.001)..f64::INFINITY)); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/main.rs:105:36 [INFO] [stdout] | [INFO] [stdout] 105 | fn color(&self, world: &T, background_color: &DVec3, depth: u8) -> DVec3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_background_color` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/main.rs:117:58 [INFO] [stdout] | [INFO] [stdout] 117 | return *attenuation*new_ray.color(world, background_color, depth-1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion [INFO] [stdout] = note: `#[warn(clippy::only_used_in_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:171:16 [INFO] [stdout] | [INFO] [stdout] 171 | if !hit.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `hit.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `hit` after checking its variant with `is_none` [INFO] [stdout] --> src/main.rs:172:30 [INFO] [stdout] | [INFO] [stdout] 171 | if !hit.is_none() { [INFO] [stdout] | ------------- the check is happening here [INFO] [stdout] 172 | let record = hit.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | return Some(closest_so_far); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 185 - return Some(closest_so_far); [INFO] [stdout] 185 + Some(closest_so_far) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `clear` and `add` are never used [INFO] [stdout] --> src/main.rs:146:8 [INFO] [stdout] | [INFO] [stdout] 145 | impl HittableList{ [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 146 | fn clear(&mut self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | fn add(&mut self, object: T) where T: Hittable + Sync + 'static,{ [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_value` and `aspect_ratio` are never read [INFO] [stdout] --> src/main.rs:325:5 [INFO] [stdout] | [INFO] [stdout] 322 | struct Camera{ [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 325 | max_value: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 326 | aspect_ratio: f64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | / return Some(HitRecord{ [INFO] [stdout] 235 | | t, [INFO] [stdout] 236 | | p, [INFO] [stdout] 237 | | normal, [INFO] [stdout] ... | [INFO] [stdout] 240 | | front_face, [INFO] [stdout] 241 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 234 ~ Some(HitRecord{ [INFO] [stdout] 235 + t, [INFO] [stdout] 236 + p, [INFO] [stdout] 237 + normal, [INFO] [stdout] 238 + incident_dir: r.direction, [INFO] [stdout] 239 + material: self.material.clone(), [INFO] [stdout] 240 + front_face, [INFO] [stdout] 241 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | return Some(closest_so_far); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 314 - return Some(closest_so_far); [INFO] [stdout] 314 + Some(closest_so_far) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 111 | if !hit.is_none(){ [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `hit.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `hit` after checking its variant with `is_none` [INFO] [stdout] --> src/main.rs:112:30 [INFO] [stdout] | [INFO] [stdout] 111 | if !hit.is_none(){ [INFO] [stdout] | ------------- the check is happening here [INFO] [stdout] 112 | let hit_record = hit.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | return (1.0 - a) * DVec3::new(1.0, 1.0, 1.0) + a * DVec3::new(0.5, 0.7, 1.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 123 - return (1.0 - a) * DVec3::new(1.0, 1.0, 1.0) + a * DVec3::new(0.5, 0.7, 1.0); [INFO] [stdout] 123 + (1.0 - a) * DVec3::new(1.0, 1.0, 1.0) + a * DVec3::new(0.5, 0.7, 1.0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:109:29 [INFO] [stdout] | [INFO] [stdout] 109 | let hit = world.hit(&self, &((0.001)..f64::INFINITY)); [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: parameter is only used in recursion [INFO] [stdout] --> src/main.rs:105:36 [INFO] [stdout] | [INFO] [stdout] 105 | fn color(&self, world: &T, background_color: &DVec3, depth: u8) -> DVec3 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_background_color` [INFO] [stdout] | [INFO] [stdout] note: parameter used here [INFO] [stdout] --> src/main.rs:117:58 [INFO] [stdout] | [INFO] [stdout] 117 | return *attenuation*new_ray.color(world, background_color, depth-1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion [INFO] [stdout] = note: `#[warn(clippy::only_used_in_recursion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:319:5 [INFO] [stdout] | [INFO] [stdout] 319 | return (normal.dot(p)-normal.dot(q))/normal.dot(m); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 319 - return (normal.dot(p)-normal.dot(q))/normal.dot(m); [INFO] [stdout] 319 + (normal.dot(p)-normal.dot(q))/normal.dot(m) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:363:9 [INFO] [stdout] | [INFO] [stdout] 363 | / return Camera{ [INFO] [stdout] 364 | | image_width, [INFO] [stdout] 365 | | image_height, [INFO] [stdout] 366 | | max_value, [INFO] [stdout] ... | [INFO] [stdout] 374 | | max_depth: 10, [INFO] [stdout] 375 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 363 ~ Camera{ [INFO] [stdout] 364 + image_width, [INFO] [stdout] 365 + image_height, [INFO] [stdout] 366 + max_value, [INFO] [stdout] 367 + aspect_ratio, [INFO] [stdout] 368 + center: camera_center, [INFO] [stdout] 369 + pixel_delta_u, [INFO] [stdout] 370 + pixel_delta_v, [INFO] [stdout] 371 + pixel00_loc, [INFO] [stdout] 372 + samples_per_pixel: 64, [INFO] [stdout] 373 + background_color: DVec3::new(0.5, 0.7, 1.0), [INFO] [stdout] 374 + max_depth: 10, [INFO] [stdout] 375 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | return Ray { origin: self.center, direction: ray_direction }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 395 - return Ray { origin: self.center, direction: ray_direction }; [INFO] [stdout] 395 + Ray { origin: self.center, direction: ray_direction } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:171:16 [INFO] [stdout] | [INFO] [stdout] 171 | if !hit.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `hit.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `hit` after checking its variant with `is_none` [INFO] [stdout] --> src/main.rs:172:30 [INFO] [stdout] | [INFO] [stdout] 171 | if !hit.is_none() { [INFO] [stdout] | ------------- the check is happening here [INFO] [stdout] 172 | let record = hit.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | return Some(closest_so_far); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 185 - return Some(closest_so_far); [INFO] [stdout] 185 + Some(closest_so_far) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | / return Some(HitRecord{ [INFO] [stdout] 235 | | t, [INFO] [stdout] 236 | | p, [INFO] [stdout] 237 | | normal, [INFO] [stdout] ... | [INFO] [stdout] 240 | | front_face, [INFO] [stdout] 241 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 234 ~ Some(HitRecord{ [INFO] [stdout] 235 + t, [INFO] [stdout] 236 + p, [INFO] [stdout] 237 + normal, [INFO] [stdout] 238 + incident_dir: r.direction, [INFO] [stdout] 239 + material: self.material.clone(), [INFO] [stdout] 240 + front_face, [INFO] [stdout] 241 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:314:9 [INFO] [stdout] | [INFO] [stdout] 314 | return Some(closest_so_far); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 314 - return Some(closest_so_far); [INFO] [stdout] 314 + Some(closest_so_far) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/main.rs:424:48 [INFO] [stdout] | [INFO] [stdout] 424 | let multisampled_pixel_color = (0..(self.samples_per_pixel)).into_iter().map(|_| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..(self.samples_per_pixel))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:467:5 [INFO] [stdout] | [INFO] [stdout] 467 | return -1.*rand_vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 467 - return -1.*rand_vec; [INFO] [stdout] 467 + -1.*rand_vec [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:489:17 [INFO] [stdout] | [INFO] [stdout] 489 | return Some((new_ray, attenuation)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 489 - return Some((new_ray, attenuation)); [INFO] [stdout] 489 + Some((new_ray, attenuation)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:500:17 [INFO] [stdout] | [INFO] [stdout] 500 | return Some((new_ray, attenuation)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 500 - return Some((new_ray, attenuation)); [INFO] [stdout] 500 + Some((new_ray, attenuation)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:319:5 [INFO] [stdout] | [INFO] [stdout] 319 | return (normal.dot(p)-normal.dot(q))/normal.dot(m); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 319 - return (normal.dot(p)-normal.dot(q))/normal.dot(m); [INFO] [stdout] 319 + (normal.dot(p)-normal.dot(q))/normal.dot(m) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:363:9 [INFO] [stdout] | [INFO] [stdout] 363 | / return Camera{ [INFO] [stdout] 364 | | image_width, [INFO] [stdout] 365 | | image_height, [INFO] [stdout] 366 | | max_value, [INFO] [stdout] ... | [INFO] [stdout] 374 | | max_depth: 10, [INFO] [stdout] 375 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 363 ~ Camera{ [INFO] [stdout] 364 + image_width, [INFO] [stdout] 365 + image_height, [INFO] [stdout] 366 + max_value, [INFO] [stdout] 367 + aspect_ratio, [INFO] [stdout] 368 + center: camera_center, [INFO] [stdout] 369 + pixel_delta_u, [INFO] [stdout] 370 + pixel_delta_v, [INFO] [stdout] 371 + pixel00_loc, [INFO] [stdout] 372 + samples_per_pixel: 64, [INFO] [stdout] 373 + background_color: DVec3::new(0.5, 0.7, 1.0), [INFO] [stdout] 374 + max_depth: 10, [INFO] [stdout] 375 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 395 | return Ray { origin: self.center, direction: ray_direction }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 395 - return Ray { origin: self.center, direction: ray_direction }; [INFO] [stdout] 395 + Ray { origin: self.center, direction: ray_direction } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/main.rs:504:17 [INFO] [stdout] | [INFO] [stdout] 504 | let refraction_ratio: f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `refraction_ratio` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 504 ~ [INFO] [stdout] 505 ~ let refraction_ratio: f64 = if hit_record.front_face { 1.0/index_of_refraction } [INFO] [stdout] 506 ~ else { *index_of_refraction }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/main.rs:515:17 [INFO] [stdout] | [INFO] [stdout] 515 | let direction; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `direction` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 515 ~ [INFO] [stdout] 516 | [INFO] [stdout] 517 | let mut rng = rand::thread_rng(); [INFO] [stdout] 518 | [INFO] [stdout] 519 ~ let direction = if cannot_refract || reflectance(cos_theta, refraction_ratio) > rng.gen::() { [INFO] [stdout] 520 | //reflect [INFO] [stdout] 521 ~ reflect(r_incoming, normal, &0.0) [INFO] [stdout] 522 | }else{ [INFO] [stdout] 523 | //can refract [INFO] [stdout] 524 ~ refract(r_incoming, normal, refraction_ratio) [INFO] [stdout] 525 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:543:5 [INFO] [stdout] | [INFO] [stdout] 543 | return r0 + (1.0-r0)*(1.0-cosine).powi(5); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 543 - return r0 + (1.0-r0)*(1.0-cosine).powi(5); [INFO] [stdout] 543 + r0 + (1.0-r0)*(1.0-cosine).powi(5) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:547:5 [INFO] [stdout] | [INFO] [stdout] 547 | return (n1.sqrt()*255.0, n2.sqrt()*255.0, n3.sqrt()*255.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 547 - return (n1.sqrt()*255.0, n2.sqrt()*255.0, n3.sqrt()*255.0); [INFO] [stdout] 547 + (n1.sqrt()*255.0, n2.sqrt()*255.0, n3.sqrt()*255.0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:569:5 [INFO] [stdout] | [INFO] [stdout] 569 | return r_prime_perpendicular + r_prime_parallel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 569 - return r_prime_perpendicular + r_prime_parallel; [INFO] [stdout] 569 + r_prime_perpendicular + r_prime_parallel [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> src/main.rs:424:48 [INFO] [stdout] | [INFO] [stdout] 424 | let multisampled_pixel_color = (0..(self.samples_per_pixel)).into_iter().map(|_| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..(self.samples_per_pixel))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:467:5 [INFO] [stdout] | [INFO] [stdout] 467 | return -1.*rand_vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 467 - return -1.*rand_vec; [INFO] [stdout] 467 + -1.*rand_vec [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:489:17 [INFO] [stdout] | [INFO] [stdout] 489 | return Some((new_ray, attenuation)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 489 - return Some((new_ray, attenuation)); [INFO] [stdout] 489 + Some((new_ray, attenuation)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:500:17 [INFO] [stdout] | [INFO] [stdout] 500 | return Some((new_ray, attenuation)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 500 - return Some((new_ray, attenuation)); [INFO] [stdout] 500 + Some((new_ray, attenuation)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/main.rs:504:17 [INFO] [stdout] | [INFO] [stdout] 504 | let refraction_ratio: f64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `refraction_ratio` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 504 ~ [INFO] [stdout] 505 ~ let refraction_ratio: f64 = if hit_record.front_face { 1.0/index_of_refraction } [INFO] [stdout] 506 ~ else { *index_of_refraction }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/main.rs:515:17 [INFO] [stdout] | [INFO] [stdout] 515 | let direction; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `direction` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 515 ~ [INFO] [stdout] 516 | [INFO] [stdout] 517 | let mut rng = rand::thread_rng(); [INFO] [stdout] 518 | [INFO] [stdout] 519 ~ let direction = if cannot_refract || reflectance(cos_theta, refraction_ratio) > rng.gen::() { [INFO] [stdout] 520 | //reflect [INFO] [stdout] 521 ~ reflect(r_incoming, normal, &0.0) [INFO] [stdout] 522 | }else{ [INFO] [stdout] 523 | //can refract [INFO] [stdout] 524 ~ refract(r_incoming, normal, refraction_ratio) [INFO] [stdout] 525 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:543:5 [INFO] [stdout] | [INFO] [stdout] 543 | return r0 + (1.0-r0)*(1.0-cosine).powi(5); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 543 - return r0 + (1.0-r0)*(1.0-cosine).powi(5); [INFO] [stdout] 543 + r0 + (1.0-r0)*(1.0-cosine).powi(5) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:547:5 [INFO] [stdout] | [INFO] [stdout] 547 | return (n1.sqrt()*255.0, n2.sqrt()*255.0, n3.sqrt()*255.0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 547 - return (n1.sqrt()*255.0, n2.sqrt()*255.0, n3.sqrt()*255.0); [INFO] [stdout] 547 + (n1.sqrt()*255.0, n2.sqrt()*255.0, n3.sqrt()*255.0) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:569:5 [INFO] [stdout] | [INFO] [stdout] 569 | return r_prime_perpendicular + r_prime_parallel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 569 - return r_prime_perpendicular + r_prime_parallel; [INFO] [stdout] 569 + r_prime_perpendicular + r_prime_parallel [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.35s [INFO] running `Command { std: "docker" "inspect" "a03a92e3ab0bb10f56bbda9c1eb9800a87e9d82dbf0151f54d0e62e82fb71804", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a03a92e3ab0bb10f56bbda9c1eb9800a87e9d82dbf0151f54d0e62e82fb71804", kill_on_drop: false }` [INFO] [stdout] a03a92e3ab0bb10f56bbda9c1eb9800a87e9d82dbf0151f54d0e62e82fb71804