[INFO] cloning repository https://github.com/PixelboysTM/ray_tracing_rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/PixelboysTM/ray_tracing_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPixelboysTM%2Fray_tracing_rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPixelboysTM%2Fray_tracing_rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6b2ac60fc19e623542e3e7bf95cc10cc5553d526 [INFO] testing PixelboysTM/ray_tracing_rust against master#160e7623e8cbbf1feab2b6e2a24733a98c7bde9c for pr-145628-retry-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPixelboysTM%2Fray_tracing_rust" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/PixelboysTM/ray_tracing_rust [INFO] finished tweaking git repo https://github.com/PixelboysTM/ray_tracing_rust [INFO] tweaked toml for git repo https://github.com/PixelboysTM/ray_tracing_rust written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/PixelboysTM/ray_tracing_rust on toolchain 160e7623e8cbbf1feab2b6e2a24733a98c7bde9c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+160e7623e8cbbf1feab2b6e2a24733a98c7bde9c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/PixelboysTM/ray_tracing_rust 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" "+160e7623e8cbbf1feab2b6e2a24733a98c7bde9c" "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-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+160e7623e8cbbf1feab2b6e2a24733a98c7bde9c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2f1c9b3b11154d08664b38dda9a47e4eadef2b32eeb9ee35ddda577e7bac3c76 [INFO] running `Command { std: "docker" "start" "-a" "2f1c9b3b11154d08664b38dda9a47e4eadef2b32eeb9ee35ddda577e7bac3c76", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2f1c9b3b11154d08664b38dda9a47e4eadef2b32eeb9ee35ddda577e7bac3c76", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2f1c9b3b11154d08664b38dda9a47e4eadef2b32eeb9ee35ddda577e7bac3c76", kill_on_drop: false }` [INFO] [stdout] 2f1c9b3b11154d08664b38dda9a47e4eadef2b32eeb9ee35ddda577e7bac3c76 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+160e7623e8cbbf1feab2b6e2a24733a98c7bde9c" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 71e19ccefab0f1afcfe2aaf502a934f9b7c72a0e2f127f762ba2f0992a67f470 [INFO] running `Command { std: "docker" "start" "-a" "71e19ccefab0f1afcfe2aaf502a934f9b7c72a0e2f127f762ba2f0992a67f470", kill_on_drop: false }` [INFO] [stderr] Compiling memoffset v0.9.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.16 [INFO] [stderr] Compiling crossbeam-epoch v0.9.15 [INFO] [stderr] Compiling simd-adler32 v0.3.7 [INFO] [stderr] Compiling rayon-core v1.12.0 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling either v1.9.0 [INFO] [stderr] Compiling bytemuck v1.14.0 [INFO] [stderr] Compiling half v2.2.1 [INFO] [stderr] Compiling smallvec v1.11.1 [INFO] [stderr] Compiling miniz_oxide v0.7.1 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling fdeflate v0.3.1 [INFO] [stderr] Compiling zune-inflate v0.2.54 [INFO] [stderr] Compiling bit_field v0.10.2 [INFO] [stderr] Compiling flume v0.11.0 [INFO] [stderr] Compiling gif v0.12.0 [INFO] [stderr] Compiling qoi v0.4.1 [INFO] [stderr] Compiling crossbeam-deque v0.8.3 [INFO] [stderr] Compiling flate2 v1.0.28 [INFO] [stderr] Compiling png v0.17.10 [INFO] [stderr] Compiling rayon v1.8.0 [INFO] [stderr] Compiling exr v1.71.0 [INFO] [stderr] Compiling num-rational v0.4.1 [INFO] [stderr] Compiling jpeg-decoder v0.3.0 [INFO] [stderr] Compiling tiff v0.9.0 [INFO] [stderr] Compiling image v0.24.7 [INFO] [stderr] Compiling ray_tracing_rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::arch::x86_64` [INFO] [stdout] --> src/camera.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::arch::x86_64; [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: `checker::CheckerPattern` [INFO] [stdout] --> src/patterns.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use checker::CheckerPattern; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `gradient::GradientPattern` [INFO] [stdout] --> src/patterns.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use gradient::GradientPattern; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ring::RingPattern` [INFO] [stdout] --> src/patterns.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ring::RingPattern; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stripe::StripePattern` [INFO] [stdout] --> src/patterns.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use stripe::StripePattern; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Sphere` [INFO] [stdout] --> src/ray.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | shapes::{Shape, Sphere}, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `matrix::helpers::Mat4` and `patterns::Pattern` [INFO] [stdout] --> src/tuples.rs:183:17 [INFO] [stdout] | [INFO] [stdout] 183 | use crate::{matrix::helpers::Mat4, patterns::Pattern}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/world.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/main.rs:203:9 [INFO] [stdout] | [INFO] [stdout] 203 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rc::Rc` [INFO] [stdout] --> src/main.rs:272:15 [INFO] [stdout] | [INFO] [stdout] 272 | use std::{rc::Rc, time::Instant}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rc::Rc` [INFO] [stdout] --> src/main.rs:367:15 [INFO] [stdout] | [INFO] [stdout] 367 | use std::{rc::Rc, time::Instant}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `shapes::Shape` [INFO] [stdout] --> src/patterns/stripe.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | shapes::Shape, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/shapes/plane.rs:57:31 [INFO] [stdout] | [INFO] [stdout] 57 | fn local_normal_at(&self, p: crate::tuples::Tuple) -> crate::tuples::Tuple { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `fov` is never read [INFO] [stdout] --> src/camera.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct Camera { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | fov: f64, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `hsize`, `vsize`, `fov`, and `pixel_size` are never used [INFO] [stdout] --> src/camera.rs:73:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl Camera { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn hsize(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn vsize(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn fov(&self) -> f64 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn pixel_size(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `clone` is never used [INFO] [stdout] --> src/material.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl Material { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 44 | pub fn clone(m: &Material) -> Material { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_transform` is never used [INFO] [stdout] --> src/patterns.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub trait Pattern: Debug { [INFO] [stdout] | ------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 23 | fn set_transform(&mut self, new_transform: Mat4); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TestPattern` is never constructed [INFO] [stdout] --> src/patterns.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct TestPattern { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/patterns.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl TestPattern { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 39 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CheckerPattern` is never constructed [INFO] [stdout] --> src/patterns/checker.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct CheckerPattern { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `a`, and `b` are never used [INFO] [stdout] --> src/patterns/checker.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl CheckerPattern { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 15 | pub fn new(a: Tuple, b: Tuple) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn a(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn b(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GradientPattern` is never constructed [INFO] [stdout] --> src/patterns/gradient.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct GradientPattern { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `a`, and `b` are never used [INFO] [stdout] --> src/patterns/gradient.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl GradientPattern { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 12 | pub fn new(a: Tuple, b: Tuple) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn a(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn b(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RingPattern` is never constructed [INFO] [stdout] --> src/patterns/ring.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct RingPattern { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `a`, and `b` are never used [INFO] [stdout] --> src/patterns/ring.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl RingPattern { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 15 | pub fn new(a: Tuple, b: Tuple) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn a(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn b(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StripePattern` is never constructed [INFO] [stdout] --> src/patterns/stripe.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct StripePattern { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `a`, and `b` are never used [INFO] [stdout] --> src/patterns/stripe.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl StripePattern { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 17 | pub fn new(a: Tuple, b: Tuple) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn a(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn b(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `object` is never used [INFO] [stdout] --> src/ray.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl<'a> Intersection<'a> { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn object(&self) -> &'a dyn Shape { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `t` and `inside` are never read [INFO] [stdout] --> src/ray.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 71 | pub struct Computations<'a> { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 72 | pub t: f64, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub inside: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TestShape` is never constructed [INFO] [stdout] --> src/shapes.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct TestShape { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/shapes.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 51 | impl TestShape { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 52 | pub fn new() -> TestShape { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotation_x` is never used [INFO] [stdout] --> src/transformation.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn rotation_x(rad: f64) -> Mat4 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotation_y` is never used [INFO] [stdout] --> src/transformation.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn rotation_y(rad: f64) -> Mat4 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotation_z` is never used [INFO] [stdout] --> src/transformation.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn rotation_z(rad: f64) -> Mat4 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shearing` is never used [INFO] [stdout] --> src/transformation.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn shearing(xy: f64, xz: f64, yx: f64, yz: f64, zx: f64, zy: f64) -> Mat4 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `rotation_x`, `rotation_y`, `rotation_z`, and `shearing` are never used [INFO] [stdout] --> src/transformation.rs:135:16 [INFO] [stdout] | [INFO] [stdout] 120 | impl TransformationBuilder { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn rotation_x(mut self, rad: f64) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn rotation_y(mut self, rad: f64) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn rotation_z(mut self, rad: f64) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn shearing(mut self, xy: f64, xz: f64, yx: f64, yz: f64, zx: f64, zy: f64) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tuple` is never used [INFO] [stdout] --> src/tuples.rs:187:12 [INFO] [stdout] | [INFO] [stdout] 187 | pub fn tuple(x: F1, y: F2, z: F3, w: F4) -> Tuple [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `red` is never used [INFO] [stdout] --> src/tuples.rs:227:22 [INFO] [stdout] | [INFO] [stdout] 227 | pub const fn red() -> Tuple { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `green` is never used [INFO] [stdout] --> src/tuples.rs:231:22 [INFO] [stdout] | [INFO] [stdout] 231 | pub const fn green() -> Tuple { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blue` is never used [INFO] [stdout] --> src/tuples.rs:235:22 [INFO] [stdout] | [INFO] [stdout] 235 | pub const fn blue() -> Tuple { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `white` is never used [INFO] [stdout] --> src/tuples.rs:238:22 [INFO] [stdout] | [INFO] [stdout] 238 | pub const fn white() -> Tuple { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `one` is never used [INFO] [stdout] --> src/tuples.rs:253:22 [INFO] [stdout] | [INFO] [stdout] 253 | pub const fn one() -> Tuple { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `zero` is never used [INFO] [stdout] --> src/tuples.rs:261:22 [INFO] [stdout] | [INFO] [stdout] 261 | pub const fn zero() -> Tuple { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `one` is never used [INFO] [stdout] --> src/tuples.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 265 | pub const fn one() -> Tuple { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `objetcs` and `light_mut` are never used [INFO] [stdout] --> src/world.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl World { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn objetcs(&self) -> &Vec> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn light_mut(&mut self) -> Option<&mut PointLight> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tick` is never used [INFO] [stdout] --> src/main.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | fn tick(env: (Tuple, Tuple), proj: (Tuple, Tuple)) -> (Tuple, Tuple) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tick` is never used [INFO] [stdout] --> src/main.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | fn tick(env: (Tuple, Tuple), proj: (Tuple, Tuple)) -> (Tuple, Tuple) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:162:12 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:214:12 [INFO] [stdout] | [INFO] [stdout] 214 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:284:12 [INFO] [stdout] | [INFO] [stdout] 284 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ray.rs:53:26 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn prepare_comps(&self, ray: &Ray) -> Computations { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 53 | pub fn prepare_comps(&self, ray: &Ray) -> Computations<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ray.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | fn hit(&self) -> Option; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 82 | fn hit(&self) -> Option>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ray.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 86 | fn hit(&self) -> Option { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 86 | fn hit(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shapes.rs:21:24 [INFO] [stdout] | [INFO] [stdout] 21 | fn local_intersect(&self, ray: &Ray) -> Vec; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 21 | fn local_intersect(&self, ray: &Ray) -> Vec>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shapes.rs:24:18 [INFO] [stdout] | [INFO] [stdout] 24 | fn intersect(&self, ray: &Ray) -> Vec { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 24 | fn intersect(&self, ray: &Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shapes.rs:82:24 [INFO] [stdout] | [INFO] [stdout] 82 | fn local_intersect(&self, ray: &Ray) -> Vec { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 82 | fn local_intersect(&self, ray: &Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shapes/plane.rs:46:24 [INFO] [stdout] | [INFO] [stdout] 46 | fn local_intersect(&self, ray: &crate::ray::Ray) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 46 | fn local_intersect(&self, ray: &crate::ray::Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shapes/sphere.rs:49:24 [INFO] [stdout] | [INFO] [stdout] 49 | fn local_intersect(&self, ray: &Ray) -> Vec { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 49 | fn local_intersect(&self, ray: &Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/world.rs:42:22 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn intersect(&self, ray: &Ray) -> Vec { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 42 | pub fn intersect(&self, ray: &Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/main.rs:310:66 [INFO] [stdout] | [INFO] [stdout] 310 | right_wall.set_material(Material::clone(&floor.material().clone())); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `Material` does not implement `Clone`, so calling `clone` on `&Material` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 310 - right_wall.set_material(Material::clone(&floor.material().clone())); [INFO] [stdout] 310 + right_wall.set_material(Material::clone(&floor.material())); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `Material`, implement `Clone` for it [INFO] [stdout] --> src/material.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 + #[derive(Clone)] [INFO] [stdout] 15 | pub struct Material { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.72s [INFO] running `Command { std: "docker" "inspect" "71e19ccefab0f1afcfe2aaf502a934f9b7c72a0e2f127f762ba2f0992a67f470", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "71e19ccefab0f1afcfe2aaf502a934f9b7c72a0e2f127f762ba2f0992a67f470", kill_on_drop: false }` [INFO] [stdout] 71e19ccefab0f1afcfe2aaf502a934f9b7c72a0e2f127f762ba2f0992a67f470 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+160e7623e8cbbf1feab2b6e2a24733a98c7bde9c" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 30da07e8dfd9eb2fd2ae2b237f0837032ac47bebd68bcecfee2793a28f8f4a62 [INFO] running `Command { std: "docker" "start" "-a" "30da07e8dfd9eb2fd2ae2b237f0837032ac47bebd68bcecfee2793a28f8f4a62", kill_on_drop: false }` [INFO] [stderr] Compiling ray_tracing_rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::arch::x86_64` [INFO] [stdout] --> src/camera.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::arch::x86_64; [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: `color` [INFO] [stdout] --> src/patterns/checker.rs:50:27 [INFO] [stdout] | [INFO] [stdout] 50 | tuples::helpers::{color, colors, point}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `checker::CheckerPattern` [INFO] [stdout] --> src/patterns.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use checker::CheckerPattern; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `gradient::GradientPattern` [INFO] [stdout] --> src/patterns.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use gradient::GradientPattern; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ring::RingPattern` [INFO] [stdout] --> src/patterns.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use ring::RingPattern; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Sphere` [INFO] [stdout] --> src/ray.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | shapes::{Shape, Sphere}, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `matrix::helpers::Mat4` and `patterns::Pattern` [INFO] [stdout] --> src/tuples.rs:183:17 [INFO] [stdout] | [INFO] [stdout] 183 | use crate::{matrix::helpers::Mat4, patterns::Pattern}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/world.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/world.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 111 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/main.rs:203:9 [INFO] [stdout] | [INFO] [stdout] 203 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rc::Rc` [INFO] [stdout] --> src/main.rs:272:15 [INFO] [stdout] | [INFO] [stdout] 272 | use std::{rc::Rc, time::Instant}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rc::Rc` [INFO] [stdout] --> src/main.rs:367:15 [INFO] [stdout] | [INFO] [stdout] 367 | use std::{rc::Rc, time::Instant}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `shapes::Shape` [INFO] [stdout] --> src/patterns/stripe.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | shapes::Shape, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `position` [INFO] [stdout] --> src/material.rs:207:21 [INFO] [stdout] | [INFO] [stdout] 207 | let (mut m, position) = setup(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ray.rs:159:13 [INFO] [stdout] | [INFO] [stdout] 159 | let i = xs.hit(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ray.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | let i = xs.hit(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ray.rs:185:13 [INFO] [stdout] | [INFO] [stdout] 185 | let i = xs.hit(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/ray.rs:200:13 [INFO] [stdout] | [INFO] [stdout] 200 | let i = xs.hit(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/shapes/plane.rs:57:31 [INFO] [stdout] | [INFO] [stdout] 57 | fn local_normal_at(&self, p: crate::tuples::Tuple) -> crate::tuples::Tuple { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `xs` [INFO] [stdout] --> src/shapes.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | let xs = s.intersect(&r); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_xs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `xs` [INFO] [stdout] --> src/shapes.rs:159:13 [INFO] [stdout] | [INFO] [stdout] 159 | let xs = s.intersect(&r); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_xs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `inner` [INFO] [stdout] --> src/world.rs:232:13 [INFO] [stdout] | [INFO] [stdout] 232 | let inner = &w.objetcs()[1]; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/world.rs:236:13 [INFO] [stdout] | [INFO] [stdout] 236 | let c = w.color_at(&r); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `a` and `b` are never used [INFO] [stdout] --> src/patterns/checker.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl CheckerPattern { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn a(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn b(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `a` and `b` are never used [INFO] [stdout] --> src/patterns/gradient.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl GradientPattern { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn a(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn b(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `a` and `b` are never used [INFO] [stdout] --> src/patterns/ring.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl RingPattern { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn a(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn b(&self) -> Tuple { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `object` is never used [INFO] [stdout] --> src/ray.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl<'a> Intersection<'a> { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn object(&self) -> &'a dyn Shape { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `rotation_y` and `shearing` are never used [INFO] [stdout] --> src/transformation.rs:140:16 [INFO] [stdout] | [INFO] [stdout] 120 | impl TransformationBuilder { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn rotation_y(mut self, rad: f64) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn shearing(mut self, xy: f64, xz: f64, yx: f64, yz: f64, zx: f64, zy: f64) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `view_transformation_matrix_default` is never used [INFO] [stdout] --> src/transformation.rs:369:8 [INFO] [stdout] | [INFO] [stdout] 369 | fn view_transformation_matrix_default() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `view_transformation_positive_z` is never used [INFO] [stdout] --> src/transformation.rs:378:8 [INFO] [stdout] | [INFO] [stdout] 378 | fn view_transformation_positive_z() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `view_transformation_moves_world` is never used [INFO] [stdout] --> src/transformation.rs:387:8 [INFO] [stdout] | [INFO] [stdout] 387 | fn view_transformation_moves_world() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `view_transformation_arbitrary` is never used [INFO] [stdout] --> src/transformation.rs:396:8 [INFO] [stdout] | [INFO] [stdout] 396 | fn view_transformation_arbitrary() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `red` is never used [INFO] [stdout] --> src/tuples.rs:227:22 [INFO] [stdout] | [INFO] [stdout] 227 | pub const fn red() -> Tuple { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `green` is never used [INFO] [stdout] --> src/tuples.rs:231:22 [INFO] [stdout] | [INFO] [stdout] 231 | pub const fn green() -> Tuple { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blue` is never used [INFO] [stdout] --> src/tuples.rs:235:22 [INFO] [stdout] | [INFO] [stdout] 235 | pub const fn blue() -> Tuple { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `one` is never used [INFO] [stdout] --> src/tuples.rs:253:22 [INFO] [stdout] | [INFO] [stdout] 253 | pub const fn one() -> Tuple { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `zero` is never used [INFO] [stdout] --> src/tuples.rs:261:22 [INFO] [stdout] | [INFO] [stdout] 261 | pub const fn zero() -> Tuple { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `one` is never used [INFO] [stdout] --> src/tuples.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 265 | pub const fn one() -> Tuple { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `light_mut` is never used [INFO] [stdout] --> src/world.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl World { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn light_mut(&mut self) -> Option<&mut PointLight> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tick` is never used [INFO] [stdout] --> src/main.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | fn tick(env: (Tuple, Tuple), proj: (Tuple, Tuple)) -> (Tuple, Tuple) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tick` is never used [INFO] [stdout] --> src/main.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | fn tick(env: (Tuple, Tuple), proj: (Tuple, Tuple)) -> (Tuple, Tuple) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 134 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:162:12 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:214:12 [INFO] [stdout] | [INFO] [stdout] 214 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/main.rs:284:12 [INFO] [stdout] | [INFO] [stdout] 284 | pub fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ray.rs:53:26 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn prepare_comps(&self, ray: &Ray) -> Computations { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 53 | pub fn prepare_comps(&self, ray: &Ray) -> Computations<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ray.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | fn hit(&self) -> Option; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 82 | fn hit(&self) -> Option>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ray.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 86 | fn hit(&self) -> Option { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 86 | fn hit(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shapes.rs:21:24 [INFO] [stdout] | [INFO] [stdout] 21 | fn local_intersect(&self, ray: &Ray) -> Vec; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 21 | fn local_intersect(&self, ray: &Ray) -> Vec>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shapes.rs:24:18 [INFO] [stdout] | [INFO] [stdout] 24 | fn intersect(&self, ray: &Ray) -> Vec { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 24 | fn intersect(&self, ray: &Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shapes.rs:82:24 [INFO] [stdout] | [INFO] [stdout] 82 | fn local_intersect(&self, ray: &Ray) -> Vec { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 82 | fn local_intersect(&self, ray: &Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shapes/plane.rs:46:24 [INFO] [stdout] | [INFO] [stdout] 46 | fn local_intersect(&self, ray: &crate::ray::Ray) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 46 | fn local_intersect(&self, ray: &crate::ray::Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shapes/sphere.rs:49:24 [INFO] [stdout] | [INFO] [stdout] 49 | fn local_intersect(&self, ray: &Ray) -> Vec { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 49 | fn local_intersect(&self, ray: &Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/world.rs:42:22 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn intersect(&self, ray: &Ray) -> Vec { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 42 | pub fn intersect(&self, ray: &Ray) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/main.rs:310:66 [INFO] [stdout] | [INFO] [stdout] 310 | right_wall.set_material(Material::clone(&floor.material().clone())); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `Material` does not implement `Clone`, so calling `clone` on `&Material` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 310 - right_wall.set_material(Material::clone(&floor.material().clone())); [INFO] [stdout] 310 + right_wall.set_material(Material::clone(&floor.material())); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `Material`, implement `Clone` for it [INFO] [stdout] --> src/material.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 + #[derive(Clone)] [INFO] [stdout] 15 | pub struct Material { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.14s [INFO] running `Command { std: "docker" "inspect" "30da07e8dfd9eb2fd2ae2b237f0837032ac47bebd68bcecfee2793a28f8f4a62", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "30da07e8dfd9eb2fd2ae2b237f0837032ac47bebd68bcecfee2793a28f8f4a62", kill_on_drop: false }` [INFO] [stdout] 30da07e8dfd9eb2fd2ae2b237f0837032ac47bebd68bcecfee2793a28f8f4a62 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+160e7623e8cbbf1feab2b6e2a24733a98c7bde9c" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] c1dd0f107d73f955c3f1ad67a354bf7a347935c70a92583c103f24efe1978d66 [INFO] running `Command { std: "docker" "start" "-a" "c1dd0f107d73f955c3f1ad67a354bf7a347935c70a92583c103f24efe1978d66", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `std::arch::x86_64` [INFO] [stderr] --> src/camera.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::arch::x86_64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `color` [INFO] [stderr] --> src/patterns/checker.rs:50:27 [INFO] [stderr] | [INFO] [stderr] 50 | tuples::helpers::{color, colors, point}, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `checker::CheckerPattern` [INFO] [stderr] --> src/patterns.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | pub use checker::CheckerPattern; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `gradient::GradientPattern` [INFO] [stderr] --> src/patterns.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | pub use gradient::GradientPattern; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ring::RingPattern` [INFO] [stderr] --> src/patterns.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | pub use ring::RingPattern; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Sphere` [INFO] [stderr] --> src/ray.rs:3:21 [INFO] [stderr] | [INFO] [stderr] 3 | shapes::{Shape, Sphere}, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `matrix::helpers::Mat4` and `patterns::Pattern` [INFO] [stderr] --> src/tuples.rs:183:17 [INFO] [stderr] | [INFO] [stderr] 183 | use crate::{matrix::helpers::Mat4, patterns::Pattern}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/world.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/world.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/main.rs:203:9 [INFO] [stderr] | [INFO] [stderr] 203 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rc::Rc` [INFO] [stderr] --> src/main.rs:272:15 [INFO] [stderr] | [INFO] [stderr] 272 | use std::{rc::Rc, time::Instant}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rc::Rc` [INFO] [stderr] --> src/main.rs:367:15 [INFO] [stderr] | [INFO] [stderr] 367 | use std::{rc::Rc, time::Instant}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `shapes::Shape` [INFO] [stderr] --> src/patterns/stripe.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | shapes::Shape, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `position` [INFO] [stderr] --> src/material.rs:207:21 [INFO] [stderr] | [INFO] [stderr] 207 | let (mut m, position) = setup(); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/ray.rs:159:13 [INFO] [stderr] | [INFO] [stderr] 159 | let i = xs.hit(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/ray.rs:172:13 [INFO] [stderr] | [INFO] [stderr] 172 | let i = xs.hit(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/ray.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | let i = xs.hit(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/ray.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | let i = xs.hit(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `p` [INFO] [stderr] --> src/shapes/plane.rs:57:31 [INFO] [stderr] | [INFO] [stderr] 57 | fn local_normal_at(&self, p: crate::tuples::Tuple) -> crate::tuples::Tuple { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `xs` [INFO] [stderr] --> src/shapes.rs:142:13 [INFO] [stderr] | [INFO] [stderr] 142 | let xs = s.intersect(&r); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_xs` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `xs` [INFO] [stderr] --> src/shapes.rs:159:13 [INFO] [stderr] | [INFO] [stderr] 159 | let xs = s.intersect(&r); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_xs` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `inner` [INFO] [stderr] --> src/world.rs:232:13 [INFO] [stderr] | [INFO] [stderr] 232 | let inner = &w.objetcs()[1]; [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `c` [INFO] [stderr] --> src/world.rs:236:13 [INFO] [stderr] | [INFO] [stderr] 236 | let c = w.color_at(&r); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stderr] [INFO] [stderr] warning: methods `a` and `b` are never used [INFO] [stderr] --> src/patterns/checker.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 14 | impl CheckerPattern { [INFO] [stderr] | ------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 22 | pub fn a(&self) -> Tuple { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 25 | pub fn b(&self) -> Tuple { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: methods `a` and `b` are never used [INFO] [stderr] --> src/patterns/gradient.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 11 | impl GradientPattern { [INFO] [stderr] | -------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 19 | pub fn a(&self) -> Tuple { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 22 | pub fn b(&self) -> Tuple { [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: methods `a` and `b` are never used [INFO] [stderr] --> src/patterns/ring.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 14 | impl RingPattern { [INFO] [stderr] | ---------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 22 | pub fn a(&self) -> Tuple { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 25 | pub fn b(&self) -> Tuple { [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: method `object` is never used [INFO] [stderr] --> src/ray.rs:49:12 [INFO] [stderr] | [INFO] [stderr] 40 | impl<'a> Intersection<'a> { [INFO] [stderr] | ------------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 49 | pub fn object(&self) -> &'a dyn Shape { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `rotation_y` and `shearing` are never used [INFO] [stderr] --> src/transformation.rs:140:16 [INFO] [stderr] | [INFO] [stderr] 120 | impl TransformationBuilder { [INFO] [stderr] | -------------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 140 | pub fn rotation_y(mut self, rad: f64) -> Self { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 150 | pub fn shearing(mut self, xy: f64, xz: f64, yx: f64, yz: f64, zx: f64, zy: f64) -> Self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `view_transformation_matrix_default` is never used [INFO] [stderr] --> src/transformation.rs:369:8 [INFO] [stderr] | [INFO] [stderr] 369 | fn view_transformation_matrix_default() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `view_transformation_positive_z` is never used [INFO] [stderr] --> src/transformation.rs:378:8 [INFO] [stderr] | [INFO] [stderr] 378 | fn view_transformation_positive_z() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `view_transformation_moves_world` is never used [INFO] [stderr] --> src/transformation.rs:387:8 [INFO] [stderr] | [INFO] [stderr] 387 | fn view_transformation_moves_world() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `view_transformation_arbitrary` is never used [INFO] [stderr] --> src/transformation.rs:396:8 [INFO] [stderr] | [INFO] [stderr] 396 | fn view_transformation_arbitrary() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `red` is never used [INFO] [stderr] --> src/tuples.rs:227:22 [INFO] [stderr] | [INFO] [stderr] 227 | pub const fn red() -> Tuple { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `green` is never used [INFO] [stderr] --> src/tuples.rs:231:22 [INFO] [stderr] | [INFO] [stderr] 231 | pub const fn green() -> Tuple { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `blue` is never used [INFO] [stderr] --> src/tuples.rs:235:22 [INFO] [stderr] | [INFO] [stderr] 235 | pub const fn blue() -> Tuple { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `one` is never used [INFO] [stderr] --> src/tuples.rs:253:22 [INFO] [stderr] | [INFO] [stderr] 253 | pub const fn one() -> Tuple { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `zero` is never used [INFO] [stderr] --> src/tuples.rs:261:22 [INFO] [stderr] | [INFO] [stderr] 261 | pub const fn zero() -> Tuple { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `one` is never used [INFO] [stderr] --> src/tuples.rs:265:22 [INFO] [stderr] | [INFO] [stderr] 265 | pub const fn one() -> Tuple { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: method `light_mut` is never used [INFO] [stderr] --> src/world.rs:36:12 [INFO] [stderr] | [INFO] [stderr] 20 | impl World { [INFO] [stderr] | ---------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 36 | pub fn light_mut(&mut self) -> Option<&mut PointLight> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `tick` is never used [INFO] [stderr] --> src/main.rs:39:8 [INFO] [stderr] | [INFO] [stderr] 39 | fn tick(env: (Tuple, Tuple), proj: (Tuple, Tuple)) -> (Tuple, Tuple) { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `main` is never used [INFO] [stderr] --> src/main.rs:45:12 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn main() { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `tick` is never used [INFO] [stderr] --> src/main.rs:73:8 [INFO] [stderr] | [INFO] [stderr] 73 | fn tick(env: (Tuple, Tuple), proj: (Tuple, Tuple)) -> (Tuple, Tuple) { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `main` is never used [INFO] [stderr] --> src/main.rs:79:12 [INFO] [stderr] | [INFO] [stderr] 79 | pub fn main() { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `main` is never used [INFO] [stderr] --> src/main.rs:112:12 [INFO] [stderr] | [INFO] [stderr] 112 | pub fn main() { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `main` is never used [INFO] [stderr] --> src/main.rs:134:12 [INFO] [stderr] | [INFO] [stderr] 134 | pub fn main() { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `main` is never used [INFO] [stderr] --> src/main.rs:162:12 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn main() { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `main` is never used [INFO] [stderr] --> src/main.rs:214:12 [INFO] [stderr] | [INFO] [stderr] 214 | pub fn main() { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `main` is never used [INFO] [stderr] --> src/main.rs:284:12 [INFO] [stderr] | [INFO] [stderr] 284 | pub fn main() { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/ray.rs:53:26 [INFO] [stderr] | [INFO] [stderr] 53 | pub fn prepare_comps(&self, ray: &Ray) -> Computations { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 53 | pub fn prepare_comps(&self, ray: &Ray) -> Computations<'_> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/ray.rs:82:12 [INFO] [stderr] | [INFO] [stderr] 82 | fn hit(&self) -> Option; [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 82 | fn hit(&self) -> Option>; [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/ray.rs:86:12 [INFO] [stderr] | [INFO] [stderr] 86 | fn hit(&self) -> Option { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 86 | fn hit(&self) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/shapes.rs:21:24 [INFO] [stderr] | [INFO] [stderr] 21 | fn local_intersect(&self, ray: &Ray) -> Vec; [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 21 | fn local_intersect(&self, ray: &Ray) -> Vec>; [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/shapes.rs:24:18 [INFO] [stderr] | [INFO] [stderr] 24 | fn intersect(&self, ray: &Ray) -> Vec { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 24 | fn intersect(&self, ray: &Ray) -> Vec> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/shapes.rs:82:24 [INFO] [stderr] | [INFO] [stderr] 82 | fn local_intersect(&self, ray: &Ray) -> Vec { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 82 | fn local_intersect(&self, ray: &Ray) -> Vec> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/shapes/plane.rs:46:24 [INFO] [stderr] | [INFO] [stderr] 46 | fn local_intersect(&self, ray: &crate::ray::Ray) -> Vec { [INFO] [stderr] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 46 | fn local_intersect(&self, ray: &crate::ray::Ray) -> Vec> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/shapes/sphere.rs:49:24 [INFO] [stderr] | [INFO] [stderr] 49 | fn local_intersect(&self, ray: &Ray) -> Vec { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 49 | fn local_intersect(&self, ray: &Ray) -> Vec> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/world.rs:42:22 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn intersect(&self, ray: &Ray) -> Vec { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 42 | pub fn intersect(&self, ray: &Ray) -> Vec> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stderr] --> src/main.rs:310:66 [INFO] [stderr] | [INFO] [stderr] 310 | right_wall.set_material(Material::clone(&floor.material().clone())); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the type `Material` does not implement `Clone`, so calling `clone` on `&Material` copies the reference, which does not do anything and can be removed [INFO] [stderr] = note: `#[warn(noop_method_call)]` on by default [INFO] [stderr] help: remove this redundant call [INFO] [stderr] | [INFO] [stderr] 310 - right_wall.set_material(Material::clone(&floor.material().clone())); [INFO] [stderr] 310 + right_wall.set_material(Material::clone(&floor.material())); [INFO] [stderr] | [INFO] [stderr] help: if you meant to clone `Material`, implement `Clone` for it [INFO] [stderr] --> src/material.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 + #[derive(Clone)] [INFO] [stderr] 15 | pub struct Material { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ray_tracing_rust` (bin "ray_tracing_rust" test) generated 58 warnings (run `cargo fix --bin "ray_tracing_rust" --tests` to apply 22 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ray_tracing_rust-b4e09f634de203a8) [INFO] [stdout] [INFO] [stdout] running 162 tests [INFO] [stdout] test canvas::tests::creating_canvas ... ok [INFO] [stdout] test canvas::tests::writing_to_canvas ... ok [INFO] [stdout] test camera::tests::pixel_size_h ... ok [INFO] [stdout] test camera::tests::pixel_size_v ... ok [INFO] [stdout] test camera::tests::ray_transformed ... ok [INFO] [stdout] test camera::tests::ray_corner ... ok [INFO] [stdout] test material::tests::default_material ... ok [INFO] [stdout] test material::tests::light_eye_between_light_and_surface ... ok [INFO] [stdout] test material::tests::light_eye_in_path_of_reflection ... ok [INFO] [stdout] test material::tests::light_eye_between_light_and_surface_45 ... ok [INFO] [stdout] test material::tests::light_light_behind_surface ... ok [INFO] [stdout] test material::tests::lighting_with_pattern ... ok [INFO] [stdout] test material::tests::light_with_surface_in_shadow ... ok [INFO] [stdout] test matrix::tests::a_2x2_matrix ... ok [INFO] [stdout] test matrix::tests::a_3x3_matrix ... ok [INFO] [stdout] test camera::tests::ray_center ... ok [INFO] [stdout] test camera::tests::rendering_world ... ok [INFO] [stdout] test matrix::tests::determinant_3x3 ... ok [INFO] [stdout] test matrix::tests::determant_2x2 ... ok [INFO] [stdout] test matrix::tests::cofactor_3x3 ... ok [INFO] [stdout] test matrix::tests::a_4x4_matrix ... ok [INFO] [stdout] test matrix::tests::identity_matrix_tuple ... ok [INFO] [stdout] test matrix::tests::determinant_4x4 ... ok [INFO] [stdout] test matrix::tests::identity_matrix ... ok [INFO] [stdout] test matrix::tests::inverse_4x4 ... ok [INFO] [stdout] test matrix::tests::matrix_equality_different ... ok [INFO] [stdout] test matrix::tests::minor_3x3 ... ok [INFO] [stdout] test matrix::tests::matrix_equality_identical ... ok [INFO] [stdout] test matrix::tests::more_inverse ... ok [INFO] [stdout] test matrix::tests::mul_inverse ... ok [INFO] [stdout] test matrix::tests::mul_matrices ... ok [INFO] [stdout] test matrix::tests::mul_matrix_tuple ... ok [INFO] [stdout] test matrix::tests::printing_matrices ... ok [INFO] [stdout] test matrix::tests::submatrix_3x3 ... ok [INFO] [stdout] test matrix::tests::testing_for_invertibility ... ok [INFO] [stdout] test matrix::tests::transpose_identity ... ok [INFO] [stdout] test matrix::tests::submatrix_4x4 ... ok [INFO] [stdout] test patterns::checker::tests::repeat_x ... ok [INFO] [stdout] test matrix::tests::transposing_matrices ... ok [INFO] [stdout] test patterns::checker::tests::repeat_y ... ok [INFO] [stdout] test patterns::gradient::tests::gradient_lerp ... ok [INFO] [stdout] test patterns::ring::tests::ring_pattern ... ok [INFO] [stdout] test patterns::stripe::tests::stripe_pattern ... ok [INFO] [stdout] test patterns::checker::tests::repeat_z ... ok [INFO] [stdout] test patterns::stripe::tests::stripe_pattern_constant_y ... ok [INFO] [stdout] test patterns::stripe::tests::stripe_pattern_constant_z ... ok [INFO] [stdout] test patterns::stripe::tests::strpies_object_transform ... ok [INFO] [stdout] test patterns::stripe::tests::stripe_pattern_alternates_x ... ok [INFO] [stdout] test patterns::tests::assigning_a_transform ... ok [INFO] [stdout] test patterns::tests::default_pattern_transform ... ok [INFO] [stdout] test patterns::stripe::tests::strpies_pattern_and_object_transform ... ok [INFO] [stdout] test patterns::tests::object_transform ... ok [INFO] [stdout] test patterns::stripe::tests::strpies_pattern_transform ... ok [INFO] [stdout] test light::tests::light_has_position_and_intensity ... ok [INFO] [stdout] test camera::tests::constructing_a_camera ... ok [INFO] [stdout] test patterns::tests::pattern_and_object_transform ... ok [INFO] [stdout] test patterns::tests::pattern_transform ... ok [INFO] [stdout] test ray::tests::computing_at ... ok [INFO] [stdout] test material::tests::light_eye_opposite_surface_45 ... ok [INFO] [stdout] test ray::tests::creating_a_ray ... ok [INFO] [stdout] test ray::tests::hit_all_negative_t ... ok [INFO] [stdout] test ray::tests::hit_all_positive_t ... ok [INFO] [stdout] test ray::tests::hit_lowest_t ... ok [INFO] [stdout] test ray::tests::hit_offsets_point ... ok [INFO] [stdout] test ray::tests::hit_on_outside ... ok [INFO] [stdout] test ray::tests::hit_some_negative_t ... ok [INFO] [stdout] test ray::tests::intersection_encapsulates ... ok [INFO] [stdout] test ray::tests::aggregating_intersections ... ok [INFO] [stdout] test ray::tests::precomputing_intersections ... ok [INFO] [stdout] test ray::tests::hit_on_inside ... ok [INFO] [stdout] test ray::tests::translating_a_ray ... ok [INFO] [stdout] test shapes::plane::tests::ray_parrallel ... ok [INFO] [stdout] test shapes::plane::tests::ray_coplanar ... ok [INFO] [stdout] test shapes::sphere::tests::changing_sphere_transform ... ok [INFO] [stdout] test shapes::plane::tests::ray_from_above ... ok [INFO] [stdout] test shapes::sphere::tests::intersect_sets_object ... ok [INFO] [stdout] test shapes::sphere::tests::normal_on_transformed ... ok [INFO] [stdout] test shapes::sphere::tests::intersecting_scaled_ray ... ok [INFO] [stdout] test shapes::sphere::tests::intersecting_translated_ray ... ok [INFO] [stdout] test ray::tests::scaling_a_ray ... ok [INFO] [stdout] test shapes::plane::tests::ray_from_below ... ok [INFO] [stdout] test shapes::sphere::tests::normal_on_translated ... ok [INFO] [stdout] test shapes::sphere::tests::normal_sphere_x ... ok [INFO] [stdout] test shapes::sphere::tests::normal_sphere_y ... ok [INFO] [stdout] test shapes::sphere::tests::normal_is_normalized ... ok [INFO] [stdout] test shapes::plane::tests::normal_is_const ... ok [INFO] [stdout] test shapes::sphere::tests::normal_sphere_nonaxial ... ok [INFO] [stdout] test shapes::sphere::tests::normal_sphere_z ... ok [INFO] [stdout] test shapes::sphere::tests::ray_sphere_two_points ... ok [INFO] [stdout] test shapes::sphere::tests::sphere_default_material ... ok [INFO] [stdout] test shapes::tests::asigning_transfomr ... ok [INFO] [stdout] test shapes::sphere::tests::sphere_modified_material ... ok [INFO] [stdout] test shapes::sphere::tests::ray_in_sphere_two_points ... ok [INFO] [stdout] test shapes::sphere::tests::ray_infornt_sphere_two_points ... ok [INFO] [stdout] test shapes::sphere::tests::ray_sphere_miss ... ok [INFO] [stdout] test shapes::sphere::tests::ray_sphere_tangent ... ok [INFO] [stdout] test shapes::sphere::tests::sphere_transform ... ok [INFO] [stdout] test shapes::tests::assigning_material ... ok [INFO] [stdout] test shapes::tests::intersecting_translated_ray ... ok [INFO] [stdout] test shapes::tests::normal_on_transformed ... ok [INFO] [stdout] test transformation::tests::chained_in_reverse ... ok [INFO] [stdout] test shapes::tests::intersecting_scaled_ray ... ok [INFO] [stdout] test shapes::tests::normal_on_translated ... ok [INFO] [stdout] test transformation::tests::mul_translation ... ok [INFO] [stdout] test transformation::tests::reflecting ... ok [INFO] [stdout] test transformation::tests::rotate_inv_x ... ok [INFO] [stdout] test transformation::tests::mul_translation_inv ... ok [INFO] [stdout] test transformation::tests::rotate_z ... ok [INFO] [stdout] test transformation::tests::scaling_inv ... ok [INFO] [stdout] test transformation::tests::scaling_point ... ok [INFO] [stdout] test transformation::tests::scaling_vector ... ok [INFO] [stdout] test transformation::tests::sheraing_x_in_z ... ok [INFO] [stdout] test transformation::tests::sheraing_y_in_x ... ok [INFO] [stdout] test shapes::tests::default_mat ... ok [INFO] [stdout] test transformation::tests::sheraing_y_in_z ... ok [INFO] [stdout] test transformation::tests::sheraing_z_in_x ... ok [INFO] [stdout] test shapes::tests::default_transform ... ok [INFO] [stdout] test transformation::tests::chaining_in_builder ... ok [INFO] [stdout] test transformation::tests::sheraing_x_in_y ... ok [INFO] [stdout] test transformation::tests::sheraing_z_in_y ... ok [INFO] [stdout] test transformation::tests::rotate_x ... ok [INFO] [stdout] test tuples::tests::adding_two_tuples ... ok [INFO] [stdout] test tuples::tests::colors_are_tuples ... ok [INFO] [stdout] test transformation::tests::translation_vector ... ok [INFO] [stdout] test tuples::tests::adding_colors ... ok [INFO] [stdout] test tuples::tests::computing_magnitude ... ok [INFO] [stdout] test tuples::tests::cross_of_vectors ... ok [INFO] [stdout] test tuples::tests::mul_tuple_fraction ... ok [INFO] [stdout] test tuples::tests::mul_tuple_scalar ... ok [INFO] [stdout] test tuples::tests::div_tuple_scalar ... ok [INFO] [stdout] test tuples::tests::dot_of_tuples ... ok [INFO] [stdout] test tuples::tests::multiply_color_scalar ... ok [INFO] [stdout] test transformation::tests::transform_in_sequence ... ok [INFO] [stdout] test tuples::tests::multiplying_colors ... ok [INFO] [stdout] test tuples::tests::negating_a_tuple ... ok [INFO] [stdout] test tuples::tests::new_point ... ok [INFO] [stdout] test tuples::tests::reflect_slanted ... ok [INFO] [stdout] test tuples::tests::subtracting_colors ... ok [INFO] [stdout] test tuples::tests::subtracting_two_vectors ... ok [INFO] [stdout] test tuples::tests::normalization_vector ... ok [INFO] [stdout] test tuples::tests::new_vector ... ok [INFO] [stdout] test tuples::tests::reflect_45 ... ok [INFO] [stdout] test tuples::tests::subtracting_vector_from_zero ... ok [INFO] [stdout] test tuples::tests::subtractring_two_points ... ok [INFO] [stdout] test tuples::tests::tuple_vector ... ok [INFO] [stdout] test tuples::tests::subtractring_vector_from_point ... ok [INFO] [stdout] test world::tests::a_shadow ... ok [INFO] [stdout] test world::tests::color_ray_hits ... ok [INFO] [stdout] test world::tests::color_ray_behind ... ok [INFO] [stdout] test tuples::tests::tuple_point ... ok [INFO] [stdout] test world::tests::color_ray_miss ... ok [INFO] [stdout] test world::tests::no_shadow ... ok [INFO] [stdout] test world::tests::no_shadow_2 ... ok [INFO] [stdout] test world::tests::creating_a_world ... ok [INFO] [stdout] test world::tests::intersecting_world_ray ... ok [INFO] [stdout] test world::tests::no_shadow_3 ... ok [INFO] [stdout] test world::tests::shade_hit_in_shadow ... ok [INFO] [stdout] test world::tests::the_default_world ... ok [INFO] [stdout] test world::tests::shading_intersection_from_inside ... ok [INFO] [stdout] test world::tests::shading_intersection ... ok [INFO] [stdout] test transformation::tests::rotate_y ... ok [INFO] [stdout] test canvas::tests::writing_to_disk ... FAILED [INFO] [stderr] error: test failed, to rerun pass `--bin ray_tracing_rust` [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- canvas::tests::writing_to_disk stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'canvas::tests::writing_to_disk' (26) panicked at src/canvas.rs:95:35: [INFO] [stdout] Saving image failed: IoError(Os { code: 2, kind: NotFound, message: "No such file or directory" }) [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x62895fd01f02 - std::backtrace_rs::backtrace::libunwind::trace::hf3086ff3c8ddfec7 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x62895fd01f02 - std::backtrace_rs::backtrace::trace_unsynchronized::h6caf11542219ebc3 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x62895fd01f02 - std::sys::backtrace::_print_fmt::hfd9f352edf0ef63b [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x62895fd01f02 - ::fmt::h746cb25d4c2f20bf [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x62895fd13cbf - core::fmt::rt::Argument::fmt::h7e560d1a4260d0bd [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/core/src/fmt/rt.rs:173:76 [INFO] [stdout] 5: 0x62895fd13cbf - core::fmt::write::h51c104753c8435b2 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/core/src/fmt/mod.rs:1468:25 [INFO] [stdout] 6: 0x62895fcceee3 - std::io::default_write_fmt::h7681766be9629d2f [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x62895fcceee3 - std::io::Write::write_fmt::h41771a141bf0adb2 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/io/mod.rs:1954:13 [INFO] [stdout] 8: 0x62895fcdb022 - std::sys::backtrace::BacktraceLock::print::heee726a1c5b4a2c3 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 9: 0x62895fcdfe7f - std::panicking::default_hook::{{closure}}::h938489fbb79d30ee [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/panicking.rs:301:27 [INFO] [stdout] 10: 0x62895fcdfd11 - std::panicking::default_hook::hf7e155db98319366 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/panicking.rs:325:9 [INFO] [stdout] 11: 0x62895facfcee - as core::ops::function::Fn>::call::h8041688d09537997 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 12: 0x62895facfcee - test::test_main_with_exit_callback::{{closure}}::hc8a7ea1f38432726 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x62895fce051e - as core::ops::function::Fn>::call::h688488cd0fff9b17 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/alloc/src/boxed.rs:1999:9 [INFO] [stdout] 14: 0x62895fce051e - std::panicking::panic_with_hook::h78bb7329978b77c8 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/panicking.rs:842:13 [INFO] [stdout] 15: 0x62895fce02ea - std::panicking::panic_handler::{{closure}}::h306ab6080b8e304c [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/panicking.rs:707:13 [INFO] [stdout] 16: 0x62895fcdb169 - std::sys::backtrace::__rust_end_short_backtrace::hab10906eec9c5584 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/sys/backtrace.rs:174:18 [INFO] [stdout] 17: 0x62895fcc334d - __rustc[31cdaa5515be9d95]::rust_begin_unwind [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/panicking.rs:698:5 [INFO] [stdout] 18: 0x62895fd1bcb0 - core::panicking::panic_fmt::h8cb2938d8e2b0e7b [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/core/src/panicking.rs:75:14 [INFO] [stdout] 19: 0x62895fd1b126 - core::result::unwrap_failed::h781900d7f82db671 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/core/src/result.rs:1852:5 [INFO] [stdout] 20: 0x62895fa92f35 - core::result::Result::expect::h6afcffcf2bd76871 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/core/src/result.rs:1175:23 [INFO] [stdout] 21: 0x62895fa8e589 - ray_tracing_rust::canvas::tests::writing_to_disk::hfd260f2162646fe6 [INFO] [stdout] at /opt/rustwide/workdir/src/canvas.rs:95:35 [INFO] [stdout] 22: 0x62895fa8e5c7 - ray_tracing_rust::canvas::tests::writing_to_disk::{{closure}}::h5185569e862f7b96 [INFO] [stdout] at /opt/rustwide/workdir/src/canvas.rs:92:25 [INFO] [stdout] 23: 0x62895fa83386 - core::ops::function::FnOnce::call_once::hc51b6d2c9674f9ef [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 24: 0x62895facfaab - core::ops::function::FnOnce::call_once::ha1081c2f5558e6c0 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 25: 0x62895facfaab - test::__rust_begin_short_backtrace::h42034e8abb013a4c [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x62895fae55b5 - test::run_test_in_process::{{closure}}::hf6d2134f58bf7650 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x62895fae55b5 - as core::ops::function::FnOnce<()>>::call_once::hecbf148a08d929b4 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 28: 0x62895fae55b5 - std::panicking::catch_unwind::do_call::hdd8f84f296c52439 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/panicking.rs:590:40 [INFO] [stdout] 29: 0x62895fae55b5 - std::panicking::catch_unwind::h3fd77bcad74bf69c [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/panicking.rs:553:19 [INFO] [stdout] 30: 0x62895fae55b5 - std::panic::catch_unwind::h512ad17f65705767 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x62895fae55b5 - test::run_test_in_process::h2b79c7cc828fafad [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x62895fae55b5 - test::run_test::{{closure}}::hc287323e9e7aa380 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x62895fabbf84 - test::run_test::{{closure}}::h26852bc3095664f0 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x62895fabbf84 - std::sys::backtrace::__rust_begin_short_backtrace::he88c7ba58706034f [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/sys/backtrace.rs:158:18 [INFO] [stdout] 35: 0x62895fabf7ba - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hff63832735ca5300 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/thread/mod.rs:559:17 [INFO] [stdout] 36: 0x62895fabf7ba - as core::ops::function::FnOnce<()>>::call_once::h5618784f23b8bacb [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 37: 0x62895fabf7ba - std::panicking::catch_unwind::do_call::hd103d0697f7d2f72 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/panicking.rs:590:40 [INFO] [stdout] 38: 0x62895fabf7ba - std::panicking::catch_unwind::h947b18413ee60fc2 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/panicking.rs:553:19 [INFO] [stdout] 39: 0x62895fabf7ba - std::panic::catch_unwind::h51f47dbca8916fbf [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x62895fabf7ba - std::thread::Builder::spawn_unchecked_::{{closure}}::h92bd4fc7ba1a8896 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/thread/mod.rs:557:30 [INFO] [stdout] 41: 0x62895fabf7ba - core::ops::function::FnOnce::call_once{{vtable.shim}}::h1edf6ba5edb7a202 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/core/src/ops/function.rs:253:5 [INFO] [stdout] 42: 0x62895fcd52ff - as core::ops::function::FnOnce>::call_once::h6765fcdde4c5daa4 [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/alloc/src/boxed.rs:1985:9 [INFO] [stdout] 43: 0x62895fcd52ff - std::sys::pal::unix::thread::Thread::new::thread_start::h448c4dadc391362b [INFO] [stdout] at /rustc/160e7623e8cbbf1feab2b6e2a24733a98c7bde9c/library/std/src/sys/pal/unix/thread.rs:118:17 [INFO] [stdout] 44: 0x725e822b9aa4 - [INFO] [stdout] 45: 0x725e82346a34 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] canvas::tests::writing_to_disk [INFO] [stdout] [INFO] [stdout] test result: FAILED. 161 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "c1dd0f107d73f955c3f1ad67a354bf7a347935c70a92583c103f24efe1978d66", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c1dd0f107d73f955c3f1ad67a354bf7a347935c70a92583c103f24efe1978d66", kill_on_drop: false }` [INFO] [stdout] c1dd0f107d73f955c3f1ad67a354bf7a347935c70a92583c103f24efe1978d66