[INFO] cloning repository https://github.com/Ait0ne666/RayTracerChallenge [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ait0ne666/RayTracerChallenge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAit0ne666%2FRayTracerChallenge", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAit0ne666%2FRayTracerChallenge'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6c0535eaf90fead0d602abd6a7caf87b9279165c [INFO] checking Ait0ne666/RayTracerChallenge against try#6284d7b4bd27983dba388146648ab844ca7d032f for pr-152971 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAit0ne666%2FRayTracerChallenge" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Ait0ne666/RayTracerChallenge [INFO] finished tweaking git repo https://github.com/Ait0ne666/RayTracerChallenge [INFO] tweaked toml for git repo https://github.com/Ait0ne666/RayTracerChallenge written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Ait0ne666/RayTracerChallenge on toolchain 6284d7b4bd27983dba388146648ab844ca7d032f [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+6284d7b4bd27983dba388146648ab844ca7d032f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Ait0ne666/RayTracerChallenge 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" "+6284d7b4bd27983dba388146648ab844ca7d032f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+6284d7b4bd27983dba388146648ab844ca7d032f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5fc2f29b6deb5e26e517c9170c05d6f721a16c8e5b8a0f6bdcdc6e23f75412bf [INFO] running `Command { std: "docker" "start" "-a" "5fc2f29b6deb5e26e517c9170c05d6f721a16c8e5b8a0f6bdcdc6e23f75412bf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5fc2f29b6deb5e26e517c9170c05d6f721a16c8e5b8a0f6bdcdc6e23f75412bf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5fc2f29b6deb5e26e517c9170c05d6f721a16c8e5b8a0f6bdcdc6e23f75412bf", kill_on_drop: false }` [INFO] [stdout] 5fc2f29b6deb5e26e517c9170c05d6f721a16c8e5b8a0f6bdcdc6e23f75412bf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+6284d7b4bd27983dba388146648ab844ca7d032f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b9e7b4fea78bcfe82d1cf2f5ad515d970cb6983f39c121898a4bacc943fb7abe [INFO] running `Command { std: "docker" "start" "-a" "b9e7b4fea78bcfe82d1cf2f5ad515d970cb6983f39c121898a4bacc943fb7abe", kill_on_drop: false }` [INFO] [stderr] Checking raytracer v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `models::prelude::hit` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use models::prelude::hit; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::lighting` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use models::prelude::lighting; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::rotateZ` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use models::prelude::rotateZ; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::shearing` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use models::prelude::shearing; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::Intersect` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use models::prelude::Intersect; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::Normal` [INFO] [stdout] --> src/main.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use models::prelude::Normal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::Ray` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use models::prelude::Ray; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `playground::init` [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use playground::init; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `playground::tick` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use playground::tick; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::prelude::Canvas` [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use prelude::prelude::Canvas; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::prelude::Color` [INFO] [stdout] --> src/main.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use prelude::prelude::Color; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/models/canvas.rs:155:12 [INFO] [stdout] | [INFO] [stdout] 155 | if (row != "".to_string()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 155 - if (row != "".to_string()) { [INFO] [stdout] 155 + if row != "".to_string() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::prelude::*` [INFO] [stdout] --> src/models/ray.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::prelude::*` [INFO] [stdout] --> src/models/sphere.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/models/intersection.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 47 | if (dot_product < 0.0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 47 - if (dot_product < 0.0) { [INFO] [stdout] 47 + if dot_product < 0.0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/models/world.rs:77:20 [INFO] [stdout] | [INFO] [stdout] 77 | if (inter.t < distance) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 77 - if (inter.t < distance) { [INFO] [stdout] 77 + if inter.t < distance { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/models/world.rs:105:16 [INFO] [stdout] | [INFO] [stdout] 105 | if (b.t > a.t) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 105 - if (b.t > a.t) { [INFO] [stdout] 105 + if b.t > a.t { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::playground::*` [INFO] [stdout] --> src/main.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | pub use crate::playground::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::hit` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use models::prelude::hit; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::lighting` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use models::prelude::lighting; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::rotateZ` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use models::prelude::rotateZ; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::shearing` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use models::prelude::shearing; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::Intersect` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use models::prelude::Intersect; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::Normal` [INFO] [stdout] --> src/main.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use models::prelude::Normal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `models::prelude::Ray` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use models::prelude::Ray; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `playground::init` [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use playground::init; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `playground::tick` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use playground::tick; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::prelude::Canvas` [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use prelude::prelude::Canvas; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::prelude::Color` [INFO] [stdout] --> src/main.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use prelude::prelude::Color; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/models/canvas.rs:155:12 [INFO] [stdout] | [INFO] [stdout] 155 | if (row != "".to_string()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 155 - if (row != "".to_string()) { [INFO] [stdout] 155 + if row != "".to_string() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::prelude::*` [INFO] [stdout] --> src/models/ray.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::prelude::*` [INFO] [stdout] --> src/models/sphere.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/models/intersection.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 47 | if (dot_product < 0.0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 47 - if (dot_product < 0.0) { [INFO] [stdout] 47 + if dot_product < 0.0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/models/world.rs:77:20 [INFO] [stdout] | [INFO] [stdout] 77 | if (inter.t < distance) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 77 - if (inter.t < distance) { [INFO] [stdout] 77 + if inter.t < distance { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/models/world.rs:105:16 [INFO] [stdout] | [INFO] [stdout] 105 | if (b.t > a.t) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 105 - if (b.t > a.t) { [INFO] [stdout] 105 + if b.t > a.t { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::playground::*` [INFO] [stdout] --> src/main.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | pub use crate::playground::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ppm` [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | let ppm = canvas.to_ppm(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ppm` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Projectile` is never constructed [INFO] [stdout] --> src/models/projectile.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Projectile { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/models/projectile.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Projectile { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn new(position: Vector, velocity: Vector) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Environment` is never constructed [INFO] [stdout] --> src/models/gravity.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Environment { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/models/gravity.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Environment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn new(wind: Vector, gravity: Vector) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `appr_equal` is never used [INFO] [stdout] --> src/models/color.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Color { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn appr_equal(self, color:Color) ->bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `pixel_at` is never used [INFO] [stdout] --> src/models/canvas.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl Canvas { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn pixel_at(self, x: usize, y: usize) -> Pixel { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `approx_equal` is never used [INFO] [stdout] --> src/models/matrix.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Matrix { [INFO] [stdout] | ------------------------------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn approx_equal(self, _rhs: Matrix) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `isInvertible` and `inverse` are never used [INFO] [stdout] --> src/models/matrix.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 103 | impl Matrix<3,3> { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn isInvertible(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub fn inverse(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotateZ` is never used [INFO] [stdout] --> src/models/matrix.rs:371:8 [INFO] [stdout] | [INFO] [stdout] 371 | pub fn rotateZ(deg: f64) -> Matrix<4,4> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shearing` is never used [INFO] [stdout] --> src/models/matrix.rs:383:8 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn shearing(xy:f64, xz:f64, yx:f64, yz:f64, zx: f64, zy: f64) -> Matrix<4,4> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `setRadius` is never used [INFO] [stdout] --> src/models/sphere.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl Sphere { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn setRadius(&mut self, radius: f64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `t` and `inside` are never read [INFO] [stdout] --> src/models/intersection.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Computation { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 9 | pub t: f64, [INFO] [stdout] | ^ [INFO] [stdout] 10 | pub inside: bool [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_ambient` is never used [INFO] [stdout] --> src/models/object.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Object { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn set_ambient(&mut self, ambient: f64) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `default` is never used [INFO] [stdout] --> src/models/world.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl World { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] 12 | pub fn default() -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tick` is never used [INFO] [stdout] --> src/playground/mod.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn tick(env: Environment, proj: Projectile) -> Projectile { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init` is never used [INFO] [stdout] --> src/playground/mod.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn init() -> (Environment, Projectile) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/models/canvas.rs:102:16 [INFO] [stdout] | [INFO] [stdout] 102 | if red < 0 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/models/canvas.rs:113:16 [INFO] [stdout] | [INFO] [stdout] 113 | if green < 0 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/models/canvas.rs:124:16 [INFO] [stdout] | [INFO] [stdout] 124 | if blue < 0 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `setElement` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn setElement(&mut self, r: usize, c: usize, element: f64) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `set_element` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `newRow` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:116:29 [INFO] [stdout] | [INFO] [stdout] 116 | let mut newRow = r; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `new_row` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `newCol` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:117:29 [INFO] [stdout] | [INFO] [stdout] 117 | let mut newCol = c; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `new_col` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isInvertible` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub fn isInvertible(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `is_invertible` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `newRow` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:227:29 [INFO] [stdout] | [INFO] [stdout] 227 | let mut newRow = r; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `new_row` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `newCol` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:228:29 [INFO] [stdout] | [INFO] [stdout] 228 | let mut newCol = c; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `new_col` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isInvertible` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:288:12 [INFO] [stdout] | [INFO] [stdout] 288 | pub fn isInvertible(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `is_invertible` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotateX` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:350:8 [INFO] [stdout] | [INFO] [stdout] 350 | pub fn rotateX(deg: f64) -> Matrix<4,4> { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `rotate_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotateY` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:361:8 [INFO] [stdout] | [INFO] [stdout] 361 | pub fn rotateY(deg: f64) -> Matrix<4,4> { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `rotate_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotateZ` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:371:8 [INFO] [stdout] | [INFO] [stdout] 371 | pub fn rotateZ(deg: f64) -> Matrix<4,4> { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `rotate_z` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `setRadius` should have a snake case name [INFO] [stdout] --> src/models/sphere.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn setRadius(&mut self, radius: f64) { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `set_radius` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `setTransform` should have a snake case name [INFO] [stdout] --> src/models/sphere.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn setTransform(&mut self, transform: Matrix<4,4>) { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `set_transform` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `setMaterial` should have a snake case name [INFO] [stdout] --> src/models/sphere.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn setMaterial(&mut self, material: Material) { [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `set_material` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ppm` [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | let ppm = canvas.to_ppm(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ppm` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Projectile` is never constructed [INFO] [stdout] --> src/models/projectile.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Projectile { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/models/projectile.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Projectile { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn new(position: Vector, velocity: Vector) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Environment` is never constructed [INFO] [stdout] --> src/models/gravity.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Environment { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/models/gravity.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Environment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn new(wind: Vector, gravity: Vector) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `isInvertible` and `inverse` are never used [INFO] [stdout] --> src/models/matrix.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 103 | impl Matrix<3,3> { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn isInvertible(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub fn inverse(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `setRadius` is never used [INFO] [stdout] --> src/models/sphere.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl Sphere { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn setRadius(&mut self, radius: f64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `t` is never read [INFO] [stdout] --> src/models/intersection.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Computation { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 9 | pub t: f64, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tick` is never used [INFO] [stdout] --> src/playground/mod.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn tick(env: Environment, proj: Projectile) -> Projectile { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init` is never used [INFO] [stdout] --> src/playground/mod.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn init() -> (Environment, Projectile) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/models/canvas.rs:102:16 [INFO] [stdout] | [INFO] [stdout] 102 | if red < 0 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/models/canvas.rs:113:16 [INFO] [stdout] | [INFO] [stdout] 113 | if green < 0 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/models/canvas.rs:124:16 [INFO] [stdout] | [INFO] [stdout] 124 | if blue < 0 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `setElement` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn setElement(&mut self, r: usize, c: usize, element: f64) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `set_element` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `newRow` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:116:29 [INFO] [stdout] | [INFO] [stdout] 116 | let mut newRow = r; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `new_row` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `newCol` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:117:29 [INFO] [stdout] | [INFO] [stdout] 117 | let mut newCol = c; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `new_col` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isInvertible` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub fn isInvertible(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `is_invertible` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `newRow` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:227:29 [INFO] [stdout] | [INFO] [stdout] 227 | let mut newRow = r; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `new_row` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `newCol` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:228:29 [INFO] [stdout] | [INFO] [stdout] 228 | let mut newCol = c; [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `new_col` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `isInvertible` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:288:12 [INFO] [stdout] | [INFO] [stdout] 288 | pub fn isInvertible(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `is_invertible` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotateX` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:350:8 [INFO] [stdout] | [INFO] [stdout] 350 | pub fn rotateX(deg: f64) -> Matrix<4,4> { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `rotate_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotateY` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:361:8 [INFO] [stdout] | [INFO] [stdout] 361 | pub fn rotateY(deg: f64) -> Matrix<4,4> { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `rotate_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotateZ` should have a snake case name [INFO] [stdout] --> src/models/matrix.rs:371:8 [INFO] [stdout] | [INFO] [stdout] 371 | pub fn rotateZ(deg: f64) -> Matrix<4,4> { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `rotate_z` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `setRadius` should have a snake case name [INFO] [stdout] --> src/models/sphere.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn setRadius(&mut self, radius: f64) { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `set_radius` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `setTransform` should have a snake case name [INFO] [stdout] --> src/models/sphere.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn setTransform(&mut self, transform: Matrix<4,4>) { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `set_transform` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `setMaterial` should have a snake case name [INFO] [stdout] --> src/models/sphere.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn setMaterial(&mut self, material: Material) { [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `set_material` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.30s [INFO] running `Command { std: "docker" "inspect" "b9e7b4fea78bcfe82d1cf2f5ad515d970cb6983f39c121898a4bacc943fb7abe", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b9e7b4fea78bcfe82d1cf2f5ad515d970cb6983f39c121898a4bacc943fb7abe", kill_on_drop: false }` [INFO] [stdout] b9e7b4fea78bcfe82d1cf2f5ad515d970cb6983f39c121898a4bacc943fb7abe