[INFO] updating cached repository DaanMiddelkoop/RealisticCircles [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/DaanMiddelkoop/RealisticCircles [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/DaanMiddelkoop/RealisticCircles" "work/ex/clippy-test-run/sources/stable/gh/DaanMiddelkoop/RealisticCircles"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/DaanMiddelkoop/RealisticCircles'... [INFO] [stderr] done. [INFO] [stderr] Checking out files: 30% (203/665) Checking out files: 31% (207/665) Checking out files: 32% (213/665) Checking out files: 33% (220/665) Checking out files: 34% (227/665) Checking out files: 35% (233/665) Checking out files: 36% (240/665) Checking out files: 37% (247/665) Checking out files: 38% (253/665) Checking out files: 39% (260/665) Checking out files: 40% (266/665) Checking out files: 41% (273/665) Checking out files: 42% (280/665) Checking out files: 43% (286/665) Checking out files: 44% (293/665) Checking out files: 45% (300/665) Checking out files: 46% (306/665) Checking out files: 47% (313/665) Checking out files: 48% (320/665) Checking out files: 49% (326/665) Checking out files: 50% (333/665) Checking out files: 51% (340/665) Checking out files: 52% (346/665) Checking out files: 53% (353/665) Checking out files: 54% (360/665) Checking out files: 55% (366/665) Checking out files: 56% (373/665) Checking out files: 57% (380/665) Checking out files: 58% (386/665) Checking out files: 59% (393/665) Checking out files: 60% (399/665) Checking out files: 61% (406/665) Checking out files: 62% (413/665) Checking out files: 63% (419/665) Checking out files: 64% (426/665) Checking out files: 65% (433/665) Checking out files: 66% (439/665) Checking out files: 67% (446/665) Checking out files: 68% (453/665) Checking out files: 69% (459/665) Checking out files: 70% (466/665) Checking out files: 71% (473/665) Checking out files: 72% (479/665) Checking out files: 73% (486/665) Checking out files: 74% (493/665) Checking out files: 75% (499/665) Checking out files: 76% (506/665) Checking out files: 77% (513/665) Checking out files: 78% (519/665) Checking out files: 79% (526/665) Checking out files: 80% (532/665) Checking out files: 81% (539/665) Checking out files: 82% (546/665) Checking out files: 83% (552/665) Checking out files: 84% (559/665) Checking out files: 85% (566/665) Checking out files: 86% (572/665) Checking out files: 87% (579/665) Checking out files: 88% (586/665) Checking out files: 89% (592/665) Checking out files: 90% (599/665) Checking out files: 91% (606/665) Checking out files: 92% (612/665) Checking out files: 93% (619/665) Checking out files: 94% (626/665) Checking out files: 95% (632/665) Checking out files: 96% (639/665) Checking out files: 97% (646/665) Checking out files: 98% (652/665) Checking out files: 99% (659/665) Checking out files: 100% (665/665) Checking out files: 100% (665/665), done. [INFO] running `"git" "clone" "work/cache/sources/gh/DaanMiddelkoop/RealisticCircles" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/DaanMiddelkoop/RealisticCircles"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/DaanMiddelkoop/RealisticCircles'... [INFO] [stderr] done. [INFO] [stderr] Checking out files: 49% (329/665) Checking out files: 50% (333/665) Checking out files: 51% (340/665) Checking out files: 52% (346/665) Checking out files: 53% (353/665) Checking out files: 54% (360/665) Checking out files: 55% (366/665) Checking out files: 56% (373/665) Checking out files: 57% (380/665) Checking out files: 58% (386/665) Checking out files: 59% (393/665) Checking out files: 60% (399/665) Checking out files: 61% (406/665) Checking out files: 62% (413/665) Checking out files: 63% (419/665) Checking out files: 64% (426/665) Checking out files: 65% (433/665) Checking out files: 66% (439/665) Checking out files: 67% (446/665) Checking out files: 68% (453/665) Checking out files: 69% (459/665) Checking out files: 70% (466/665) Checking out files: 71% (473/665) Checking out files: 72% (479/665) Checking out files: 73% (486/665) Checking out files: 74% (493/665) Checking out files: 75% (499/665) Checking out files: 76% (506/665) Checking out files: 77% (513/665) Checking out files: 78% (519/665) Checking out files: 79% (526/665) Checking out files: 80% (532/665) Checking out files: 81% (539/665) Checking out files: 82% (546/665) Checking out files: 83% (552/665) Checking out files: 84% (559/665) Checking out files: 85% (566/665) Checking out files: 86% (572/665) Checking out files: 87% (579/665) Checking out files: 88% (586/665) Checking out files: 89% (592/665) Checking out files: 90% (599/665) Checking out files: 91% (606/665) Checking out files: 92% (612/665) Checking out files: 93% (619/665) Checking out files: 94% (626/665) Checking out files: 95% (632/665) Checking out files: 96% (639/665) Checking out files: 97% (646/665) Checking out files: 98% (652/665) Checking out files: 99% (659/665) Checking out files: 100% (665/665) Checking out files: 100% (665/665), done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 418efa2f5d5a1eea0cbbe574096e90787e8c5dc1 [INFO] sha for GitHub repo DaanMiddelkoop/RealisticCircles: 418efa2f5d5a1eea0cbbe574096e90787e8c5dc1 [INFO] validating manifest of DaanMiddelkoop/RealisticCircles on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of DaanMiddelkoop/RealisticCircles on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing DaanMiddelkoop/RealisticCircles [INFO] finished frobbing DaanMiddelkoop/RealisticCircles [INFO] frobbed toml for DaanMiddelkoop/RealisticCircles written to work/ex/clippy-test-run/sources/stable/gh/DaanMiddelkoop/RealisticCircles/Cargo.toml [INFO] started frobbing DaanMiddelkoop/RealisticCircles [INFO] finished frobbing DaanMiddelkoop/RealisticCircles [INFO] frobbed toml for DaanMiddelkoop/RealisticCircles written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/DaanMiddelkoop/RealisticCircles/Cargo.toml [INFO] crate DaanMiddelkoop/RealisticCircles has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting DaanMiddelkoop/RealisticCircles against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/DaanMiddelkoop/RealisticCircles:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 88c03e7f9d24e95ac1ee0873b2b966836eece955b203d80e885ebd8ce8e20f17 [INFO] running `"docker" "start" "-a" "88c03e7f9d24e95ac1ee0873b2b966836eece955b203d80e885ebd8ce8e20f17"` [INFO] [stderr] Checking bmp v0.4.0 [INFO] [stderr] Checking threads_pool v0.1.7 [INFO] [stderr] Checking RealisticCircles v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/vector.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [INFO] [stderr] --> src/vector.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] | [INFO] [stderr] --> src/vector.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/vector.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/vector.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | z: z, [INFO] [stderr] | ^^^^ help: replace it with: `z` [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/vector.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | z: z, [INFO] [stderr] | ^^^^ help: replace it with: `z` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | hitpoint: hitpoint, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hitpoint` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | hitpoint: hitpoint, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `hitpoint` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/vector.rs:34:12 [INFO] [stderr] | [INFO] [stderr] 34 | if (self.length < 0.0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/vector.rs:53:9 [INFO] [stderr] | [INFO] [stderr] 53 | x [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/vector.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | let x = (self.x * other.x) + (self.y * other.y) + (self.z * other.z); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:107:8 [INFO] [stderr] | [INFO] [stderr] 107 | if (result.hit) { [INFO] [stderr] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:130:12 [INFO] [stderr] | [INFO] [stderr] 130 | if (result.hit && result.distance < closest_dist) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:148:8 [INFO] [stderr] | [INFO] [stderr] 148 | if (b >= sphere.radius || angle > f32::consts::PI / 2.0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:155:32 [INFO] [stderr] | [INFO] [stderr] 155 | let hit_distance = h - g - 0.000001; [INFO] [stderr] | ^^^^^^^^ help: consider: `0.000_001` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:170:8 [INFO] [stderr] | [INFO] [stderr] 170 | if (bounces > 0) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:188:12 [INFO] [stderr] | [INFO] [stderr] 188 | if (new_result.hit && new_result.distance < new_direction.length()&& new_result.distance > 0.01) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:215:12 [INFO] [stderr] | [INFO] [stderr] 215 | if (new_result.hit) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:280:5 [INFO] [stderr] | [INFO] [stderr] 280 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:268:22 [INFO] [stderr] | [INFO] [stderr] 268 | let mut result = direction.add(&term); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `while` condition [INFO] [stderr] --> src/main.rs:243:11 [INFO] [stderr] | [INFO] [stderr] 243 | while ((random.x * random.x) + (random.y * random.y) + (random.z * random.z) > 1.0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/vector.rs:34:12 [INFO] [stderr] | [INFO] [stderr] 34 | if (self.length < 0.0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/vector.rs:53:9 [INFO] [stderr] | [INFO] [stderr] 53 | x [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/vector.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | let x = (self.x * other.x) + (self.y * other.y) + (self.z * other.z); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:107:8 [INFO] [stderr] | [INFO] [stderr] 107 | if (result.hit) { [INFO] [stderr] | ^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:130:12 [INFO] [stderr] | [INFO] [stderr] 130 | if (result.hit && result.distance < closest_dist) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:148:8 [INFO] [stderr] | [INFO] [stderr] 148 | if (b >= sphere.radius || angle > f32::consts::PI / 2.0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:155:32 [INFO] [stderr] | [INFO] [stderr] 155 | let hit_distance = h - g - 0.000001; [INFO] [stderr] | ^^^^^^^^ help: consider: `0.000_001` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:170:8 [INFO] [stderr] | [INFO] [stderr] 170 | if (bounces > 0) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:188:12 [INFO] [stderr] | [INFO] [stderr] 188 | if (new_result.hit && new_result.distance < new_direction.length()&& new_result.distance > 0.01) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:215:12 [INFO] [stderr] | [INFO] [stderr] 215 | if (new_result.hit) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:280:5 [INFO] [stderr] | [INFO] [stderr] 280 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:268:22 [INFO] [stderr] | [INFO] [stderr] 268 | let mut result = direction.add(&term); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `while` condition [INFO] [stderr] --> src/main.rs:243:11 [INFO] [stderr] | [INFO] [stderr] 243 | while ((random.x * random.x) + (random.y * random.y) + (random.z * random.z) > 1.0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused variable: `width` [INFO] [stderr] --> src/main.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let width = bitmap.get_width(); [INFO] [stderr] | ^^^^^ help: consider using `_width` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `worker_id` [INFO] [stderr] --> src/main.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | let mut worker_id = pool.get_first_worker_id().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^ help: consider using `_worker_id` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `poollock` [INFO] [stderr] --> src/main.rs:48:17 [INFO] [stderr] | [INFO] [stderr] 48 | let poollock = c.clone(); [INFO] [stderr] | ^^^^^^^^ help: consider using `_poollock` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `total_color` [INFO] [stderr] --> src/main.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | let mut total_color = Vector::new(1.0, 1.0, 1.0); [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_total_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hit_something` [INFO] [stderr] --> src/main.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | let mut hit_something = false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_hit_something` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | let mut bitmap = bmp::open("2000x2000.bmp").unwrap(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | let mut worker_id = pool.get_first_worker_id().unwrap() as u32; [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | let mut result = trace_ray(position, trace_direction, world, 2); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:178:9 [INFO] [stderr] | [INFO] [stderr] 178 | let mut total_color = Vector::new(1.0, 1.0, 1.0); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:180:9 [INFO] [stderr] | [INFO] [stderr] 180 | let mut hit_something = false; [INFO] [stderr] | ----^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:268:9 [INFO] [stderr] | [INFO] [stderr] 268 | let mut result = direction.add(&term); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: crate `RealisticCircles` should have a snake case name such as `realistic_circles` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: method `crossProduct` should have a snake case name such as `cross_product` [INFO] [stderr] --> src/vector.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / pub fn crossProduct(&self, other: &Vector) -> Vector { [INFO] [stderr] 24 | | Vector { [INFO] [stderr] 25 | | x: (self.y * other.z) - (other.y * self.z), [INFO] [stderr] 26 | | y: (self.z * other.x) - (other.z * self.x), [INFO] [stderr] ... | [INFO] [stderr] 30 | | } [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `width` [INFO] [stderr] --> src/main.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let width = bitmap.get_width(); [INFO] [stderr] | ^^^^^ help: consider using `_width` instead [INFO] [stderr] | [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `world::World` [INFO] [stderr] --> src/world.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn new() -> Self { [INFO] [stderr] 18 | | let mut globes = Vec::new(); [INFO] [stderr] 19 | | globes.push(Globe { [INFO] [stderr] 20 | | position: Vector::new(5.0, 0.0, -2.0), [INFO] [stderr] ... | [INFO] [stderr] 62 | | } [INFO] [stderr] 63 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 6 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `worker_id` [INFO] [stderr] --> src/main.rs:39:13 [INFO] [stderr] | [INFO] [stderr] 39 | let mut worker_id = pool.get_first_worker_id().unwrap() as u32; [INFO] [stderr] | ^^^^^^^^^ help: consider using `_worker_id` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `poollock` [INFO] [stderr] --> src/main.rs:48:17 [INFO] [stderr] | [INFO] [stderr] 48 | let poollock = c.clone(); [INFO] [stderr] | ^^^^^^^^ help: consider using `_poollock` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `total_color` [INFO] [stderr] --> src/main.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | let mut total_color = Vector::new(1.0, 1.0, 1.0); [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_total_color` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hit_something` [INFO] [stderr] --> src/main.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | let mut hit_something = false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_hit_something` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | let mut bitmap = bmp::open("2000x2000.bmp").unwrap(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | let mut worker_id = pool.get_first_worker_id().unwrap() as u32; [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | let mut result = trace_ray(position, trace_direction, world, 2); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:178:9 [INFO] [stderr] | [INFO] [stderr] 178 | let mut total_color = Vector::new(1.0, 1.0, 1.0); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:180:9 [INFO] [stderr] | [INFO] [stderr] 180 | let mut hit_something = false; [INFO] [stderr] | ----^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:231:23 [INFO] [stderr] | [INFO] [stderr] 231 | result.color.r = (result.color.r as f32 * result.light_intensity).min(original_color.r as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(result.color.r)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:268:9 [INFO] [stderr] | [INFO] [stderr] 268 | let mut result = direction.add(&term); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:231:75 [INFO] [stderr] | [INFO] [stderr] 231 | result.color.r = (result.color.r as f32 * result.light_intensity).min(original_color.r as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(original_color.r)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:232:23 [INFO] [stderr] | [INFO] [stderr] 232 | result.color.g = (result.color.g as f32 * result.light_intensity).min(original_color.g as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(result.color.g)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:232:75 [INFO] [stderr] | [INFO] [stderr] 232 | result.color.g = (result.color.g as f32 * result.light_intensity).min(original_color.g as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(original_color.g)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:233:23 [INFO] [stderr] | [INFO] [stderr] 233 | result.color.b = (result.color.b as f32 * result.light_intensity).min(original_color.b as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(result.color.b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:233:75 [INFO] [stderr] | [INFO] [stderr] 233 | result.color.b = (result.color.b as f32 * result.light_intensity).min(original_color.b as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(original_color.b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `TraceResult` [INFO] [stderr] --> src/main.rs:294:5 [INFO] [stderr] | [INFO] [stderr] 294 | / pub fn new() -> Self { [INFO] [stderr] 295 | | TraceResult { [INFO] [stderr] 296 | | hit: false, [INFO] [stderr] 297 | | distance: 0.0, [INFO] [stderr] ... | [INFO] [stderr] 303 | | } [INFO] [stderr] 304 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 293 | impl Default for TraceResult { [INFO] [stderr] 294 | fn default() -> Self { [INFO] [stderr] 295 | Self::new() [INFO] [stderr] 296 | } [INFO] [stderr] 297 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: crate `RealisticCircles` should have a snake case name such as `realistic_circles` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: method `crossProduct` should have a snake case name such as `cross_product` [INFO] [stderr] --> src/vector.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / pub fn crossProduct(&self, other: &Vector) -> Vector { [INFO] [stderr] 24 | | Vector { [INFO] [stderr] 25 | | x: (self.y * other.z) - (other.y * self.z), [INFO] [stderr] 26 | | y: (self.z * other.x) - (other.z * self.x), [INFO] [stderr] ... | [INFO] [stderr] 30 | | } [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `world::World` [INFO] [stderr] --> src/world.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn new() -> Self { [INFO] [stderr] 18 | | let mut globes = Vec::new(); [INFO] [stderr] 19 | | globes.push(Globe { [INFO] [stderr] 20 | | position: Vector::new(5.0, 0.0, -2.0), [INFO] [stderr] ... | [INFO] [stderr] 62 | | } [INFO] [stderr] 63 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 6 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:231:23 [INFO] [stderr] | [INFO] [stderr] 231 | result.color.r = (result.color.r as f32 * result.light_intensity).min(original_color.r as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(result.color.r)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:231:75 [INFO] [stderr] | [INFO] [stderr] 231 | result.color.r = (result.color.r as f32 * result.light_intensity).min(original_color.r as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(original_color.r)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:232:23 [INFO] [stderr] | [INFO] [stderr] 232 | result.color.g = (result.color.g as f32 * result.light_intensity).min(original_color.g as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(result.color.g)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:232:75 [INFO] [stderr] | [INFO] [stderr] 232 | result.color.g = (result.color.g as f32 * result.light_intensity).min(original_color.g as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(original_color.g)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:233:23 [INFO] [stderr] | [INFO] [stderr] 233 | result.color.b = (result.color.b as f32 * result.light_intensity).min(original_color.b as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(result.color.b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:233:75 [INFO] [stderr] | [INFO] [stderr] 233 | result.color.b = (result.color.b as f32 * result.light_intensity).min(original_color.b as f32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(original_color.b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `TraceResult` [INFO] [stderr] --> src/main.rs:294:5 [INFO] [stderr] | [INFO] [stderr] 294 | / pub fn new() -> Self { [INFO] [stderr] 295 | | TraceResult { [INFO] [stderr] 296 | | hit: false, [INFO] [stderr] 297 | | distance: 0.0, [INFO] [stderr] ... | [INFO] [stderr] 303 | | } [INFO] [stderr] 304 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 293 | impl Default for TraceResult { [INFO] [stderr] 294 | fn default() -> Self { [INFO] [stderr] 295 | Self::new() [INFO] [stderr] 296 | } [INFO] [stderr] 297 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.23s [INFO] running `"docker" "inspect" "88c03e7f9d24e95ac1ee0873b2b966836eece955b203d80e885ebd8ce8e20f17"` [INFO] running `"docker" "rm" "-f" "88c03e7f9d24e95ac1ee0873b2b966836eece955b203d80e885ebd8ce8e20f17"` [INFO] [stdout] 88c03e7f9d24e95ac1ee0873b2b966836eece955b203d80e885ebd8ce8e20f17