[INFO] cloning repository https://github.com/RoBaaaT/rusty-pt [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/RoBaaaT/rusty-pt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRoBaaaT%2Frusty-pt", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRoBaaaT%2Frusty-pt'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4e85f5a2c62449764f1f42af02c918511a88f020 [INFO] linting RoBaaaT/rusty-pt against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRoBaaaT%2Frusty-pt" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/RoBaaaT/rusty-pt [INFO] finished tweaking git repo https://github.com/RoBaaaT/rusty-pt [INFO] tweaked toml for git repo https://github.com/RoBaaaT/rusty-pt written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/RoBaaaT/rusty-pt 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/RoBaaaT/rusty-pt 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 deflate v1.0.0 [INFO] [stderr] Downloaded png v0.17.5 [INFO] [stderr] Downloaded progress v0.2.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] dd348f71ef302ee48519216a5e3441508cca277d53bf3ac18184189b08e2a979 [INFO] running `Command { std: "docker" "start" "-a" "dd348f71ef302ee48519216a5e3441508cca277d53bf3ac18184189b08e2a979", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dd348f71ef302ee48519216a5e3441508cca277d53bf3ac18184189b08e2a979", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dd348f71ef302ee48519216a5e3441508cca277d53bf3ac18184189b08e2a979", kill_on_drop: false }` [INFO] [stdout] dd348f71ef302ee48519216a5e3441508cca277d53bf3ac18184189b08e2a979 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 5652ababf6f379f6c195679bf837679d41afa175da087ded84afffc2075de60a [INFO] running `Command { std: "docker" "start" "-a" "5652ababf6f379f6c195679bf837679d41afa175da087ded84afffc2075de60a", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.126 [INFO] [stderr] Compiling crc32fast v1.3.2 [INFO] [stderr] Checking ppv-lite86 v0.2.16 [INFO] [stderr] Checking adler32 v1.2.0 [INFO] [stderr] Checking miniz_oxide v0.5.3 [INFO] [stderr] Checking deflate v1.0.0 [INFO] [stderr] Checking png v0.17.5 [INFO] [stderr] Checking getrandom v0.2.7 [INFO] [stderr] Checking terminal_size v0.1.17 [INFO] [stderr] Checking progress v0.2.0 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rusty-pt v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/aabb.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | AABB { min: min, max: max } [INFO] [stdout] | ^^^^^^^^ help: replace it with: `min` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/aabb.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | AABB { min: min, max: max } [INFO] [stdout] | ^^^^^^^^ help: replace it with: `max` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:54:18 [INFO] [stdout] | [INFO] [stdout] 54 | Sphere { center: center, radius: radius, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `center` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:54:34 [INFO] [stdout] | [INFO] [stdout] 54 | Sphere { center: center, radius: radius, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `radius` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:54:50 [INFO] [stdout] | [INFO] [stdout] 54 | Sphere { center: center, radius: radius, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `material` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:60:50 [INFO] [stdout] | [INFO] [stdout] 60 | Plane { normal: Vec3::normalize(normal), distance: distance, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `distance` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:60:70 [INFO] [stdout] | [INFO] [stdout] 60 | Plane { normal: Vec3::normalize(normal), distance: distance, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `material` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:66:20 [INFO] [stdout] | [INFO] [stdout] 66 | Triangle { p0: p0, p1: p1, p2: p2, material: material } [INFO] [stdout] | ^^^^^^ help: replace it with: `p0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:66:28 [INFO] [stdout] | [INFO] [stdout] 66 | Triangle { p0: p0, p1: p1, p2: p2, material: material } [INFO] [stdout] | ^^^^^^ help: replace it with: `p1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:66:36 [INFO] [stdout] | [INFO] [stdout] 66 | Triangle { p0: p0, p1: p1, p2: p2, material: material } [INFO] [stdout] | ^^^^^^ help: replace it with: `p2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:66:44 [INFO] [stdout] | [INFO] [stdout] 66 | Triangle { p0: p0, p1: p1, p2: p2, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `material` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:110:19 [INFO] [stdout] | [INFO] [stdout] 110 | BVHNode { left: left, right: right, bounding_box: AABB::new(min, max) } [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:110:31 [INFO] [stdout] | [INFO] [stdout] 110 | BVHNode { left: left, right: right, bounding_box: AABB::new(min, max) } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:156:51 [INFO] [stdout] | [INFO] [stdout] 156 | return Some(HitRecord { t: temp1, p: p, normal: (p - self.center) / self.radius, material: self.material }); [INFO] [stdout] | ^^^^ help: replace it with: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:161:51 [INFO] [stdout] | [INFO] [stdout] 161 | return Some(HitRecord { t: temp2, p: p, normal: (p - self.center) / self.radius, material: self.material }); [INFO] [stdout] | ^^^^ help: replace it with: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:184:21 [INFO] [stdout] | [INFO] [stdout] 184 | t: t, p: ray.origin() + t * ray.direction(), [INFO] [stdout] | ^^^^ help: replace it with: `t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:221:29 [INFO] [stdout] | [INFO] [stdout] 221 | ... t: t, p: ray.origin() + t * ray.direction(), [INFO] [stdout] | ^^^^ help: replace it with: `t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/camera.rs:28:42 [INFO] [stdout] | [INFO] [stdout] 28 | lens_radius: aperture / 2.0, u: u, v: v [INFO] [stdout] | ^^^^ help: replace it with: `u` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/camera.rs:28:48 [INFO] [stdout] | [INFO] [stdout] 28 | lens_radius: aperture / 2.0, u: u, v: v [INFO] [stdout] | ^^^^ help: replace it with: `v` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/aabb.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | AABB { min: min, max: max } [INFO] [stdout] | ^^^^^^^^ help: replace it with: `min` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/aabb.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | AABB { min: min, max: max } [INFO] [stdout] | ^^^^^^^^ help: replace it with: `max` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:54:18 [INFO] [stdout] | [INFO] [stdout] 54 | Sphere { center: center, radius: radius, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `center` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:54:34 [INFO] [stdout] | [INFO] [stdout] 54 | Sphere { center: center, radius: radius, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `radius` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/material.rs:44:22 [INFO] [stdout] | [INFO] [stdout] 44 | Lambertian { albedo: albedo } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `albedo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:54:50 [INFO] [stdout] | [INFO] [stdout] 54 | Sphere { center: center, radius: radius, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `material` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/material.rs:50:17 [INFO] [stdout] | [INFO] [stdout] 50 | Metal { albedo: albedo, roughness: roughness } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `albedo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/material.rs:50:33 [INFO] [stdout] | [INFO] [stdout] 50 | Metal { albedo: albedo, roughness: roughness } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `roughness` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:60:50 [INFO] [stdout] | [INFO] [stdout] 60 | Plane { normal: Vec3::normalize(normal), distance: distance, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `distance` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:60:70 [INFO] [stdout] | [INFO] [stdout] 60 | Plane { normal: Vec3::normalize(normal), distance: distance, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `material` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/material.rs:56:22 [INFO] [stdout] | [INFO] [stdout] 56 | Dielectric { refractive_index: refractive_index } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `refractive_index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:66:20 [INFO] [stdout] | [INFO] [stdout] 66 | Triangle { p0: p0, p1: p1, p2: p2, material: material } [INFO] [stdout] | ^^^^^^ help: replace it with: `p0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/material.rs:62:24 [INFO] [stdout] | [INFO] [stdout] 62 | DiffuseLight { emit: emit } [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `emit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:66:28 [INFO] [stdout] | [INFO] [stdout] 66 | Triangle { p0: p0, p1: p1, p2: p2, material: material } [INFO] [stdout] | ^^^^^^ help: replace it with: `p1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:66:36 [INFO] [stdout] | [INFO] [stdout] 66 | Triangle { p0: p0, p1: p1, p2: p2, material: material } [INFO] [stdout] | ^^^^^^ help: replace it with: `p2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:66:44 [INFO] [stdout] | [INFO] [stdout] 66 | Triangle { p0: p0, p1: p1, p2: p2, material: material } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `material` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:110:19 [INFO] [stdout] | [INFO] [stdout] 110 | BVHNode { left: left, right: right, bounding_box: AABB::new(min, max) } [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:110:31 [INFO] [stdout] | [INFO] [stdout] 110 | BVHNode { left: left, right: right, bounding_box: AABB::new(min, max) } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture/perlin.rs:67:23 [INFO] [stdout] | [INFO] [stdout] 67 | PerlinNoise { random: random, x_permutation: x_perm, y_permutation: y_perm, z_permutation: z_perm } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `random` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:36:27 [INFO] [stdout] | [INFO] [stdout] 36 | ConstantTexture { color: color } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:156:51 [INFO] [stdout] | [INFO] [stdout] 156 | return Some(HitRecord { t: temp1, p: p, normal: (p - self.center) / self.radius, material: self.material }); [INFO] [stdout] | ^^^^ help: replace it with: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:161:51 [INFO] [stdout] | [INFO] [stdout] 161 | return Some(HitRecord { t: temp2, p: p, normal: (p - self.center) / self.radius, material: self.material }); [INFO] [stdout] | ^^^^ help: replace it with: `p` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:42:26 [INFO] [stdout] | [INFO] [stdout] 42 | CheckerTexture { even: even, odd: odd, frequency: frequency } [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `even` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:42:38 [INFO] [stdout] | [INFO] [stdout] 42 | CheckerTexture { even: even, odd: odd, frequency: frequency } [INFO] [stdout] | ^^^^^^^^ help: replace it with: `odd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:184:21 [INFO] [stdout] | [INFO] [stdout] 184 | t: t, p: ray.origin() + t * ray.direction(), [INFO] [stdout] | ^^^^ help: replace it with: `t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:42:48 [INFO] [stdout] | [INFO] [stdout] 42 | CheckerTexture { even: even, odd: odd, frequency: frequency } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `frequency` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:48:24 [INFO] [stdout] | [INFO] [stdout] 48 | NoiseTexture { frequency: frequency, noise: Arc::new(RwLock::new(PerlinNoise::new())) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `frequency` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:54:25 [INFO] [stdout] | [INFO] [stdout] 54 | MarbleTexture { frequency: frequency, noise: Arc::new(RwLock::new(PerlinNoise::new())) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `frequency` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/hitable/mod.rs:221:29 [INFO] [stdout] | [INFO] [stdout] 221 | ... t: t, p: ray.origin() + t * ray.direction(), [INFO] [stdout] | ^^^^ help: replace it with: `t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/camera.rs:28:42 [INFO] [stdout] | [INFO] [stdout] 28 | lens_radius: aperture / 2.0, u: u, v: v [INFO] [stdout] | ^^^^ help: replace it with: `u` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/camera.rs:28:48 [INFO] [stdout] | [INFO] [stdout] 28 | lens_radius: aperture / 2.0, u: u, v: v [INFO] [stdout] | ^^^^ help: replace it with: `v` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/material.rs:44:22 [INFO] [stdout] | [INFO] [stdout] 44 | Lambertian { albedo: albedo } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `albedo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/material.rs:50:17 [INFO] [stdout] | [INFO] [stdout] 50 | Metal { albedo: albedo, roughness: roughness } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `albedo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/material.rs:50:33 [INFO] [stdout] | [INFO] [stdout] 50 | Metal { albedo: albedo, roughness: roughness } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `roughness` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/material.rs:56:22 [INFO] [stdout] | [INFO] [stdout] 56 | Dielectric { refractive_index: refractive_index } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `refractive_index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/material.rs:62:24 [INFO] [stdout] | [INFO] [stdout] 62 | DiffuseLight { emit: emit } [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `emit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture/perlin.rs:67:23 [INFO] [stdout] | [INFO] [stdout] 67 | PerlinNoise { random: random, x_permutation: x_perm, y_permutation: y_perm, z_permutation: z_perm } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `random` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:36:27 [INFO] [stdout] | [INFO] [stdout] 36 | ConstantTexture { color: color } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:42:26 [INFO] [stdout] | [INFO] [stdout] 42 | CheckerTexture { even: even, odd: odd, frequency: frequency } [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `even` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:42:38 [INFO] [stdout] | [INFO] [stdout] 42 | CheckerTexture { even: even, odd: odd, frequency: frequency } [INFO] [stdout] | ^^^^^^^^ help: replace it with: `odd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:42:48 [INFO] [stdout] | [INFO] [stdout] 42 | CheckerTexture { even: even, odd: odd, frequency: frequency } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `frequency` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:48:24 [INFO] [stdout] | [INFO] [stdout] 48 | NoiseTexture { frequency: frequency, noise: Arc::new(RwLock::new(PerlinNoise::new())) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `frequency` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/texture.rs:54:25 [INFO] [stdout] | [INFO] [stdout] 54 | MarbleTexture { frequency: frequency, noise: Arc::new(RwLock::new(PerlinNoise::new())) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `frequency` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AABB` contains a capitalized acronym [INFO] [stdout] --> src/hitable/aabb.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct AABB { [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Aabb` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AABB` contains a capitalized acronym [INFO] [stdout] --> src/hitable/aabb.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct AABB { [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Aabb` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/hitable/mod.rs:210:16 [INFO] [stdout] | [INFO] [stdout] 210 | if u < 0.0 || u > 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use: `!(0.0..=1.0).contains(&u)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: float equality check without `.abs()` [INFO] [stdout] --> src/hitable/mod.rs:245:16 [INFO] [stdout] | [INFO] [stdout] 245 | if max[dim] - min[dim] < f32::EPSILON { [INFO] [stdout] | -------------------^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: add `.abs()`: `(max[dim] - min[dim]).abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_equality_without_abs [INFO] [stdout] = note: `#[warn(clippy::float_equality_without_abs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hitable/mod.rs:256:34 [INFO] [stdout] | [INFO] [stdout] 256 | if self.bounding_box.hit(&ray, t_min, t_max) { [INFO] [stdout] | ^^^^ help: change this to: `ray` [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: manual implementation of `Option::map` [INFO] [stdout] --> src/hitable/mod.rs:276:20 [INFO] [stdout] | [INFO] [stdout] 276 | } else if let Some(right) = right_rec { [INFO] [stdout] | ____________________^ [INFO] [stdout] 277 | | Some(HitRecord { [INFO] [stdout] 278 | | t: right.t, p: right.p, [INFO] [stdout] 279 | | normal: right.normal, [INFO] [stdout] ... | [INFO] [stdout] 282 | | None [INFO] [stdout] 283 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 276 ~ } else { right_rec.map(|right| HitRecord { [INFO] [stdout] 277 + t: right.t, p: right.p, [INFO] [stdout] 278 + normal: right.normal, [INFO] [stdout] 279 + material: right.material }) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/material.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | return Vec3::zero(); [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] 8 - return Vec3::zero(); [INFO] [stdout] 8 + Vec3::zero() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/material.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | return false; [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] 143 - return false; [INFO] [stdout] 143 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/material.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | return textures[self.emit].value(u, v, p, textures); [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] 147 - return textures[self.emit].value(u, v, p, textures); [INFO] [stdout] 147 + textures[self.emit].value(u, v, p, textures) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping elements of `input` manually [INFO] [stdout] --> src/texture/perlin.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | / let tmp = input[target]; [INFO] [stdout] 15 | | input[target] = input[i]; [INFO] [stdout] 16 | | input[i] = tmp; [INFO] [stdout] | |_______________________^ help: try: `input.swap(target, i);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `result` [INFO] [stdout] --> src/texture/perlin.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | for i in 0..256 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 22 - for i in 0..256 { [INFO] [stdout] 22 + for (i, ) in result.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/hitable/mod.rs:210:16 [INFO] [stdout] | [INFO] [stdout] 210 | if u < 0.0 || u > 1.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use: `!(0.0..=1.0).contains(&u)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/texture/perlin.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | if accu > 1.0 { 1.0 } else if accu < 0.0 { 0.0 } else { accu } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `accu.clamp(0.0, 1.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `random` [INFO] [stdout] --> src/texture/perlin.rs:59:18 [INFO] [stdout] | [INFO] [stdout] 59 | for i in 0..256 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 59 - for i in 0..256 { [INFO] [stdout] 59 + for in &mut random { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: float equality check without `.abs()` [INFO] [stdout] --> src/hitable/mod.rs:245:16 [INFO] [stdout] | [INFO] [stdout] 245 | if max[dim] - min[dim] < f32::EPSILON { [INFO] [stdout] | -------------------^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: add `.abs()`: `(max[dim] - min[dim]).abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_equality_without_abs [INFO] [stdout] = note: `#[warn(clippy::float_equality_without_abs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/hitable/mod.rs:256:34 [INFO] [stdout] | [INFO] [stdout] 256 | if self.bounding_box.hit(&ray, t_min, t_max) { [INFO] [stdout] | ^^^^ help: change this to: `ray` [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: manual implementation of `Option::map` [INFO] [stdout] --> src/hitable/mod.rs:276:20 [INFO] [stdout] | [INFO] [stdout] 276 | } else if let Some(right) = right_rec { [INFO] [stdout] | ____________________^ [INFO] [stdout] 277 | | Some(HitRecord { [INFO] [stdout] 278 | | t: right.t, p: right.p, [INFO] [stdout] 279 | | normal: right.normal, [INFO] [stdout] ... | [INFO] [stdout] 282 | | None [INFO] [stdout] 283 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 276 ~ } else { right_rec.map(|right| HitRecord { [INFO] [stdout] 277 + t: right.t, p: right.p, [INFO] [stdout] 278 + normal: right.normal, [INFO] [stdout] 279 + material: right.material }) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/material.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | return Vec3::zero(); [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] 8 - return Vec3::zero(); [INFO] [stdout] 8 + Vec3::zero() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | return emitted + attenuation * color(&scattered, world, textures, depth + 1); [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] 52 - return emitted + attenuation * color(&scattered, world, textures, depth + 1); [INFO] [stdout] 52 + emitted + attenuation * color(&scattered, world, textures, depth + 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:54:13 [INFO] [stdout] | [INFO] [stdout] 54 | return emitted; [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] 54 - return emitted; [INFO] [stdout] 54 + emitted [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return Vec3::zero(); [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] 57 - return Vec3::zero(); [INFO] [stdout] 57 + Vec3::zero() [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:51:47 [INFO] [stdout] | [INFO] [stdout] 51 | if depth < 50 && rec.material.scatter(&ray, &rec, &mut attenuation, &mut scattered, textures) { [INFO] [stdout] | ^^^^ help: change this to: `ray` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/main.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | / fn render_thread(channel: Sender, width: u32, height: u32, tiles: Arc>>, samples: usize, [INFO] [stdout] 65 | | world: Arc, camera: Arc, textures: Arc>>, out: Arc>>) { [INFO] [stdout] | |______________________________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:81:51 [INFO] [stdout] | [INFO] [stdout] 81 | col += color(&r, &*world, &*textures, 0); [INFO] [stdout] | ^^^^^^^^^^ help: try: `&textures` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/main.rs:88:32 [INFO] [stdout] | [INFO] [stdout] 88 | local_data[((y * TILE_SIZE + x) * 3 + 0) as usize] = ir; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((y * TILE_SIZE + x) * 3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/material.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | return false; [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] 143 - return false; [INFO] [stdout] 143 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/material.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | return textures[self.emit].value(u, v, p, textures); [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] 147 - return textures[self.emit].value(u, v, p, textures); [INFO] [stdout] 147 + textures[self.emit].value(u, v, p, textures) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping elements of `input` manually [INFO] [stdout] --> src/texture/perlin.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | / let tmp = input[target]; [INFO] [stdout] 15 | | input[target] = input[i]; [INFO] [stdout] 16 | | input[i] = tmp; [INFO] [stdout] | |_______________________^ help: try: `input.swap(target, i);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:233:15 [INFO] [stdout] | [INFO] [stdout] 233 | while !rx.try_recv().is_err() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `rx.try_recv().is_ok()` [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: the loop variable `i` is used to index `result` [INFO] [stdout] --> src/texture/perlin.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | for i in 0..256 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 22 - for i in 0..256 { [INFO] [stdout] 22 + for (i, ) in result.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/texture/perlin.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | if accu > 1.0 { 1.0 } else if accu < 0.0 { 0.0 } else { accu } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `accu.clamp(0.0, 1.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.72s [INFO] [stdout] warning: the loop variable `i` is only used to index `random` [INFO] [stdout] --> src/texture/perlin.rs:59:18 [INFO] [stdout] | [INFO] [stdout] 59 | for i in 0..256 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 59 - for i in 0..256 { [INFO] [stdout] 59 + for in &mut random { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | return emitted + attenuation * color(&scattered, world, textures, depth + 1); [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] 52 - return emitted + attenuation * color(&scattered, world, textures, depth + 1); [INFO] [stdout] 52 + emitted + attenuation * color(&scattered, world, textures, depth + 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:54:13 [INFO] [stdout] | [INFO] [stdout] 54 | return emitted; [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] 54 - return emitted; [INFO] [stdout] 54 + emitted [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return Vec3::zero(); [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] 57 - return Vec3::zero(); [INFO] [stdout] 57 + Vec3::zero() [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:51:47 [INFO] [stdout] | [INFO] [stdout] 51 | if depth < 50 && rec.material.scatter(&ray, &rec, &mut attenuation, &mut scattered, textures) { [INFO] [stdout] | ^^^^ help: change this to: `ray` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/main.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | / fn render_thread(channel: Sender, width: u32, height: u32, tiles: Arc>>, samples: usize, [INFO] [stdout] 65 | | world: Arc, camera: Arc, textures: Arc>>, out: Arc>>) { [INFO] [stdout] | |______________________________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | / match writer.write_image_data(&data.read().unwrap()) { [INFO] [stdout] 251 | | Err(why) => panic!("couldn't write image data to {}: {}", path_display, why), [INFO] [stdout] 252 | | Ok(_) => () [INFO] [stdout] 253 | | }; [INFO] [stdout] | |_________^ help: try: `if let Err(why) = writer.write_image_data(&data.read().unwrap()) { panic!("couldn't write image data to {}: {}", path_display, why) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `subsec_millis()` is more concise than this calculation [INFO] [stdout] --> src/main.rs:257:62 [INFO] [stdout] | [INFO] [stdout] 257 | println!("setup: \t{}.{:09} s", elapsed_setup.as_secs(), elapsed_setup.subsec_nanos() / 1000000); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `elapsed_setup.subsec_millis()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stdout] = note: `#[warn(clippy::duration_subsec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `subsec_millis()` is more concise than this calculation [INFO] [stdout] --> src/main.rs:258:63 [INFO] [stdout] | [INFO] [stdout] 258 | println!("render:\t{}.{:03} s", elapsed_render.as_secs(), elapsed_render.subsec_nanos() / 1000000); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `elapsed_render.subsec_millis()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:81:51 [INFO] [stdout] | [INFO] [stdout] 81 | col += color(&r, &*world, &*textures, 0); [INFO] [stdout] | ^^^^^^^^^^ help: try: `&textures` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/main.rs:88:32 [INFO] [stdout] | [INFO] [stdout] 88 | local_data[((y * TILE_SIZE + x) * 3 + 0) as usize] = ir; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((y * TILE_SIZE + x) * 3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:233:15 [INFO] [stdout] | [INFO] [stdout] 233 | while !rx.try_recv().is_err() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `rx.try_recv().is_ok()` [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | / match writer.write_image_data(&data.read().unwrap()) { [INFO] [stdout] 251 | | Err(why) => panic!("couldn't write image data to {}: {}", path_display, why), [INFO] [stdout] 252 | | Ok(_) => () [INFO] [stdout] 253 | | }; [INFO] [stdout] | |_________^ help: try: `if let Err(why) = writer.write_image_data(&data.read().unwrap()) { panic!("couldn't write image data to {}: {}", path_display, why) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `subsec_millis()` is more concise than this calculation [INFO] [stdout] --> src/main.rs:257:62 [INFO] [stdout] | [INFO] [stdout] 257 | println!("setup: \t{}.{:09} s", elapsed_setup.as_secs(), elapsed_setup.subsec_nanos() / 1000000); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `elapsed_setup.subsec_millis()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stdout] = note: `#[warn(clippy::duration_subsec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `subsec_millis()` is more concise than this calculation [INFO] [stdout] --> src/main.rs:258:63 [INFO] [stdout] | [INFO] [stdout] 258 | println!("render:\t{}.{:03} s", elapsed_render.as_secs(), elapsed_render.subsec_nanos() / 1000000); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `elapsed_render.subsec_millis()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "5652ababf6f379f6c195679bf837679d41afa175da087ded84afffc2075de60a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5652ababf6f379f6c195679bf837679d41afa175da087ded84afffc2075de60a", kill_on_drop: false }` [INFO] [stdout] 5652ababf6f379f6c195679bf837679d41afa175da087ded84afffc2075de60a