[INFO] cloning repository https://github.com/stegosaurapps/jp-tracer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/stegosaurapps/jp-tracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstegosaurapps%2Fjp-tracer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstegosaurapps%2Fjp-tracer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c5bb678e9fcf7bc7a01d0fc9198640a1a87a2df1
[INFO] testing stegosaurapps/jp-tracer against 1.94.0 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstegosaurapps%2Fjp-tracer" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/stegosaurapps/jp-tracer
[INFO] finished tweaking git repo https://github.com/stegosaurapps/jp-tracer
[INFO] tweaked toml for git repo https://github.com/stegosaurapps/jp-tracer written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/stegosaurapps/jp-tracer on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/stegosaurapps/jp-tracer already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cc v1.1.28
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 26765a6e668758856c305011c4834b1c23d0ee7f9cc1352f74243c412985f36d
[INFO] running `Command { std: "docker" "start" "-a" "26765a6e668758856c305011c4834b1c23d0ee7f9cc1352f74243c412985f36d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "26765a6e668758856c305011c4834b1c23d0ee7f9cc1352f74243c412985f36d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "26765a6e668758856c305011c4834b1c23d0ee7f9cc1352f74243c412985f36d", kill_on_drop: false }`
[INFO] [stdout] 26765a6e668758856c305011c4834b1c23d0ee7f9cc1352f74243c412985f36d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0321a37d7c15df366c8b7caba02b25f100885a7a8b0bdc25e76c7527f34b862f
[INFO] running `Command { std: "docker" "start" "-a" "0321a37d7c15df366c8b7caba02b25f100885a7a8b0bdc25e76c7527f34b862f", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling proc-macro2 v1.0.87
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling libc v0.2.159
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.79
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling jp-tracer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/rendering/scene.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::{Arc, Mutex};
[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: `std::thread`
[INFO] [stdout]  --> src/rendering/scene.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rendering::shapes::Triangle`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use rendering::shapes::Triangle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rendering::ObjFileParser`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use rendering::ObjFileParser;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rendering::constructive_geometry::rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/rendering/shapes/shape.rs:53:27
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut range = rand::thread_rng();
[INFO] [stdout]    |                           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rendering::constructive_geometry::rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/rendering/constructive_geometry.rs:39:31
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let mut range = rand::thread_rng();
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/rendering/math/tuple.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fn internal_add(&self, r_hand: &Tuple) -> (f64, f64, f64) {
[INFO] [stdout]   |                                     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fn internal_add(&self, r_hand: &dyn Tuple) -> (f64, f64, f64) {
[INFO] [stdout]   |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rendering/math/tuple.rs:15:42
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn internal_subtract(&self, r_hand: &Tuple) -> (f64, f64, f64) {
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn internal_subtract(&self, r_hand: &dyn Tuple) -> (f64, f64, f64) {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rendering/math/tuple.rs:44:28
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn dot(&self, r_hand: &Tuple) -> f64 {
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn dot(&self, r_hand: &dyn Tuple) -> f64 {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/rendering/math/matrix4x4.rs:174:36
[INFO] [stdout]     |
[INFO] [stdout] 174 |     pub fn mult4x1(&self, r_hand: &Tuple) -> (f64, f64, f64, f64) {
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 174 |     pub fn mult4x1(&self, r_hand: &dyn Tuple) -> (f64, f64, f64, f64) {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rendering::constructive_geometry::rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/rendering/shapes/shape.rs:55:59
[INFO] [stdout]    |
[INFO] [stdout] 55 |     (Utc::now().timestamp_subsec_micros() as u64) + range.gen_range(0..1000000)
[INFO] [stdout]    |                                                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rendering::constructive_geometry::rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/rendering/constructive_geometry.rs:41:72
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let id = (Utc::now().timestamp_subsec_micros() as u64) + range.gen_range(0..1000000);
[INFO] [stdout]    |                                                                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering/scene.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let mut canvas = Canvas::new(self.camera.horizontal_size, self.camera.vertical_size);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `anti_alias`
[INFO] [stdout]    --> src/rendering/scene.rs:224:35
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn render_multi_thread(&self, anti_alias: bool) -> Canvas {
[INFO] [stdout]     |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_anti_alias`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `burnt_orange`
[INFO] [stdout]    --> src/main.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |     let burnt_orange = Color::new(208.0 / 255.0, 99.0 / 255.0, 17.0 / 255.0, 1.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_burnt_orange`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `light_orange`
[INFO] [stdout]    --> src/main.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let light_orange = Color::new(255.0 / 255.0, 180.0 / 255.0, 153.0 / 255.0, 1.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_light_orange`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `light_blue`
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let light_blue = Color::new(173.0 / 255.0, 220.0 / 255.0, 255.0 / 255.0, 1.0);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_light_blue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peach`
[INFO] [stdout]    --> src/main.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let peach = Color::new(247.0 / 255.0, 197.0 / 255.0, 159.0 / 255.0, 1.0);
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_peach`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `light_peach`
[INFO] [stdout]    --> src/main.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let light_peach = Color::new(249.0 / 255.0, 210.0 / 255.0, 180.0 / 255.0, 1.0);
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_light_peach`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_CORES` is never used
[INFO] [stdout]   --> src/main.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const NUM_CORES: u32 = 12;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_multi_thread` is never used
[INFO] [stdout]    --> src/rendering/scene.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl<'a> Scene<'a> {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn render_multi_thread(&self, anti_alias: bool) -> Canvas {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pixel` is never constructed
[INFO] [stdout]    --> src/rendering/scene.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | struct Pixel {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/shape.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 38 |     ) -> Vec<Intersection>;
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 38 |     ) -> Vec<Intersection<'_>>;
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/sphere.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 55 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 55 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/plane.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 55 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 55 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/cube.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 80 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 80 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/cylinder.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 74 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 74 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/cone.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 74 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 74 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/triangle.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 79 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 79 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/smooth_triangle.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 83 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 83 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/rendering/constructive_geometry.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 127 |     ) -> Vec<Intersection> {
[INFO] [stdout]     |              ^^^^^^^^^^^^ 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] 127 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]     |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/rendering/container.rs:11:69
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(transform: Matrix4x4, shapes: Vec<&'a dyn Shape>) -> Container {
[INFO] [stdout]    |                                                   --                ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                   |
[INFO] [stdout]    |                                                   the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(transform: Matrix4x4, shapes: Vec<&'a dyn Shape>) -> Container<'a> {
[INFO] [stdout]    |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.91s
[INFO] running `Command { std: "docker" "inspect" "0321a37d7c15df366c8b7caba02b25f100885a7a8b0bdc25e76c7527f34b862f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0321a37d7c15df366c8b7caba02b25f100885a7a8b0bdc25e76c7527f34b862f", kill_on_drop: false }`
[INFO] [stdout] 0321a37d7c15df366c8b7caba02b25f100885a7a8b0bdc25e76c7527f34b862f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 231479cc59cbfc6e50cb5868d6b895020436cda8114ffb404516ea0b8687a896
[INFO] running `Command { std: "docker" "start" "-a" "231479cc59cbfc6e50cb5868d6b895020436cda8114ffb404516ea0b8687a896", kill_on_drop: false }`
[INFO] [stderr]    Compiling jp-tracer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/rendering/scene.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::{Arc, Mutex};
[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: `std::thread`
[INFO] [stdout]  --> src/rendering/scene.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rendering::shapes::Triangle`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use rendering::shapes::Triangle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rendering::ObjFileParser`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use rendering::ObjFileParser;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rendering::constructive_geometry::rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/rendering/shapes/shape.rs:53:27
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mut range = rand::thread_rng();
[INFO] [stdout]    |                           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rendering::constructive_geometry::rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/rendering/constructive_geometry.rs:39:31
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let mut range = rand::thread_rng();
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/rendering/math/tuple.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fn internal_add(&self, r_hand: &Tuple) -> (f64, f64, f64) {
[INFO] [stdout]   |                                     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fn internal_add(&self, r_hand: &dyn Tuple) -> (f64, f64, f64) {
[INFO] [stdout]   |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rendering/math/tuple.rs:15:42
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn internal_subtract(&self, r_hand: &Tuple) -> (f64, f64, f64) {
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn internal_subtract(&self, r_hand: &dyn Tuple) -> (f64, f64, f64) {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rendering/math/tuple.rs:44:28
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn dot(&self, r_hand: &Tuple) -> f64 {
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn dot(&self, r_hand: &dyn Tuple) -> f64 {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/rendering/math/matrix4x4.rs:174:36
[INFO] [stdout]     |
[INFO] [stdout] 174 |     pub fn mult4x1(&self, r_hand: &Tuple) -> (f64, f64, f64, f64) {
[INFO] [stdout]     |                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 174 |     pub fn mult4x1(&self, r_hand: &dyn Tuple) -> (f64, f64, f64, f64) {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rendering::constructive_geometry::rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/rendering/shapes/shape.rs:55:59
[INFO] [stdout]    |
[INFO] [stdout] 55 |     (Utc::now().timestamp_subsec_micros() as u64) + range.gen_range(0..1000000)
[INFO] [stdout]    |                                                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rendering::constructive_geometry::rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/rendering/constructive_geometry.rs:41:72
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let id = (Utc::now().timestamp_subsec_micros() as u64) + range.gen_range(0..1000000);
[INFO] [stdout]    |                                                                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rendering/scene.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let mut canvas = Canvas::new(self.camera.horizontal_size, self.camera.vertical_size);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `anti_alias`
[INFO] [stdout]    --> src/rendering/scene.rs:224:35
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn render_multi_thread(&self, anti_alias: bool) -> Canvas {
[INFO] [stdout]     |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_anti_alias`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `burnt_orange`
[INFO] [stdout]    --> src/main.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |     let burnt_orange = Color::new(208.0 / 255.0, 99.0 / 255.0, 17.0 / 255.0, 1.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_burnt_orange`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `light_orange`
[INFO] [stdout]    --> src/main.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let light_orange = Color::new(255.0 / 255.0, 180.0 / 255.0, 153.0 / 255.0, 1.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_light_orange`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `light_blue`
[INFO] [stdout]    --> src/main.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let light_blue = Color::new(173.0 / 255.0, 220.0 / 255.0, 255.0 / 255.0, 1.0);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_light_blue`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peach`
[INFO] [stdout]    --> src/main.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let peach = Color::new(247.0 / 255.0, 197.0 / 255.0, 159.0 / 255.0, 1.0);
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_peach`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `light_peach`
[INFO] [stdout]    --> src/main.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let light_peach = Color::new(249.0 / 255.0, 210.0 / 255.0, 180.0 / 255.0, 1.0);
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_light_peach`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_CORES` is never used
[INFO] [stdout]   --> src/main.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const NUM_CORES: u32 = 12;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `render_multi_thread` is never used
[INFO] [stdout]    --> src/rendering/scene.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl<'a> Scene<'a> {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn render_multi_thread(&self, anti_alias: bool) -> Canvas {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pixel` is never constructed
[INFO] [stdout]    --> src/rendering/scene.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | struct Pixel {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/shape.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 38 |     ) -> Vec<Intersection>;
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 38 |     ) -> Vec<Intersection<'_>>;
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/sphere.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 55 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 55 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/plane.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 55 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 55 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/cube.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 80 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 80 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/cylinder.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 74 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 74 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/cone.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 74 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 74 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/triangle.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 79 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 79 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/rendering/shapes/smooth_triangle.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         &self,
[INFO] [stdout]    |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 83 |     ) -> Vec<Intersection> {
[INFO] [stdout]    |              ^^^^^^^^^^^^ 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] 83 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]    |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/rendering/constructive_geometry.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 127 |     ) -> Vec<Intersection> {
[INFO] [stdout]     |              ^^^^^^^^^^^^ 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] 127 |     ) -> Vec<Intersection<'_>> {
[INFO] [stdout]     |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/rendering/container.rs:11:69
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(transform: Matrix4x4, shapes: Vec<&'a dyn Shape>) -> Container {
[INFO] [stdout]    |                                                   --                ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                   |
[INFO] [stdout]    |                                                   the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(transform: Matrix4x4, shapes: Vec<&'a dyn Shape>) -> Container<'a> {
[INFO] [stdout]    |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.32s
[INFO] running `Command { std: "docker" "inspect" "231479cc59cbfc6e50cb5868d6b895020436cda8114ffb404516ea0b8687a896", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "231479cc59cbfc6e50cb5868d6b895020436cda8114ffb404516ea0b8687a896", kill_on_drop: false }`
[INFO] [stdout] 231479cc59cbfc6e50cb5868d6b895020436cda8114ffb404516ea0b8687a896
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] abc468b4f8206ae50408688f4f4be9457508470af563e0b2f51188dcc033c790
[INFO] running `Command { std: "docker" "start" "-a" "abc468b4f8206ae50408688f4f4be9457508470af563e0b2f51188dcc033c790", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `Arc` and `Mutex`
[INFO] [stderr]  --> src/rendering/scene.rs:2:17
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^  ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/rendering/scene.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rendering::shapes::Triangle`
[INFO] [stderr]   --> src/main.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 | use rendering::shapes::Triangle;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rendering::ObjFileParser`
[INFO] [stderr]   --> src/main.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 | use rendering::ObjFileParser;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rendering::constructive_geometry::rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]   --> src/rendering/shapes/shape.rs:53:27
[INFO] [stderr]    |
[INFO] [stderr] 53 |     let mut range = rand::thread_rng();
[INFO] [stderr]    |                           ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `rendering::constructive_geometry::rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]   --> src/rendering/constructive_geometry.rs:39:31
[INFO] [stderr]    |
[INFO] [stderr] 39 |         let mut range = rand::thread_rng();
[INFO] [stderr]    |                               ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/rendering/math/tuple.rs:4:37
[INFO] [stderr]   |
[INFO] [stderr] 4 |     fn internal_add(&self, r_hand: &Tuple) -> (f64, f64, f64) {
[INFO] [stderr]   |                                     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]   = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]   |
[INFO] [stderr] 4 |     fn internal_add(&self, r_hand: &dyn Tuple) -> (f64, f64, f64) {
[INFO] [stderr]   |                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/rendering/math/tuple.rs:15:42
[INFO] [stderr]    |
[INFO] [stderr] 15 |     fn internal_subtract(&self, r_hand: &Tuple) -> (f64, f64, f64) {
[INFO] [stderr]    |                                          ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 15 |     fn internal_subtract(&self, r_hand: &dyn Tuple) -> (f64, f64, f64) {
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/rendering/math/tuple.rs:44:28
[INFO] [stderr]    |
[INFO] [stderr] 44 |     fn dot(&self, r_hand: &Tuple) -> f64 {
[INFO] [stderr]    |                            ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 44 |     fn dot(&self, r_hand: &dyn Tuple) -> f64 {
[INFO] [stderr]    |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/rendering/math/matrix4x4.rs:174:36
[INFO] [stderr]     |
[INFO] [stderr] 174 |     pub fn mult4x1(&self, r_hand: &Tuple) -> (f64, f64, f64, f64) {
[INFO] [stderr]     |                                    ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 174 |     pub fn mult4x1(&self, r_hand: &dyn Tuple) -> (f64, f64, f64, f64) {
[INFO] [stderr]     |                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rendering::constructive_geometry::rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stderr]   --> src/rendering/shapes/shape.rs:55:59
[INFO] [stderr]    |
[INFO] [stderr] 55 |     (Utc::now().timestamp_subsec_micros() as u64) + range.gen_range(0..1000000)
[INFO] [stderr]    |                                                           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rendering::constructive_geometry::rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stderr]   --> src/rendering/constructive_geometry.rs:41:72
[INFO] [stderr]    |
[INFO] [stderr] 41 |         let id = (Utc::now().timestamp_subsec_micros() as u64) + range.gen_range(0..1000000);
[INFO] [stderr]    |                                                                        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/rendering/scene.rs:278:13
[INFO] [stderr]     |
[INFO] [stderr] 278 |         let mut canvas = Canvas::new(self.camera.horizontal_size, self.camera.vertical_size);
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `anti_alias`
[INFO] [stderr]    --> src/rendering/scene.rs:224:35
[INFO] [stderr]     |
[INFO] [stderr] 224 |     fn render_multi_thread(&self, anti_alias: bool) -> Canvas {
[INFO] [stderr]     |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_anti_alias`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `burnt_orange`
[INFO] [stderr]    --> src/main.rs:138:9
[INFO] [stderr]     |
[INFO] [stderr] 138 |     let burnt_orange = Color::new(208.0 / 255.0, 99.0 / 255.0, 17.0 / 255.0, 1.0);
[INFO] [stderr]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_burnt_orange`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `light_orange`
[INFO] [stderr]    --> src/main.rs:140:9
[INFO] [stderr]     |
[INFO] [stderr] 140 |     let light_orange = Color::new(255.0 / 255.0, 180.0 / 255.0, 153.0 / 255.0, 1.0);
[INFO] [stderr]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_light_orange`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `light_blue`
[INFO] [stderr]    --> src/main.rs:142:9
[INFO] [stderr]     |
[INFO] [stderr] 142 |     let light_blue = Color::new(173.0 / 255.0, 220.0 / 255.0, 255.0 / 255.0, 1.0);
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_light_blue`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `peach`
[INFO] [stderr]    --> src/main.rs:143:9
[INFO] [stderr]     |
[INFO] [stderr] 143 |     let peach = Color::new(247.0 / 255.0, 197.0 / 255.0, 159.0 / 255.0, 1.0);
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_peach`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `light_peach`
[INFO] [stderr]    --> src/main.rs:144:9
[INFO] [stderr]     |
[INFO] [stderr] 144 |     let light_peach = Color::new(249.0 / 255.0, 210.0 / 255.0, 180.0 / 255.0, 1.0);
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_light_peach`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NUM_CORES` is never used
[INFO] [stderr]   --> src/main.rs:35:7
[INFO] [stderr]    |
[INFO] [stderr] 35 | const NUM_CORES: u32 = 12;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `render_multi_thread` is never used
[INFO] [stderr]    --> src/rendering/scene.rs:224:8
[INFO] [stderr]     |
[INFO] [stderr]  18 | impl<'a> Scene<'a> {
[INFO] [stderr]     | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 224 |     fn render_multi_thread(&self, anti_alias: bool) -> Canvas {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Pixel` is never constructed
[INFO] [stderr]    --> src/rendering/scene.rs:292:8
[INFO] [stderr]     |
[INFO] [stderr] 292 | struct Pixel {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/rendering/shapes/shape.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |         &self,
[INFO] [stderr]    |         ^^^^^ the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 38 |     ) -> Vec<Intersection>;
[INFO] [stderr]    |              ^^^^^^^^^^^^ 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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 38 |     ) -> Vec<Intersection<'_>>;
[INFO] [stderr]    |                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/rendering/shapes/sphere.rs:51:9
[INFO] [stdout] 
[INFO] [stderr]    |
[INFO] [stdout] running 245 tests
[INFO] [stderr] 51 |         &self,
[INFO] [stderr]    |         ^^^^^ the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 55 |     ) -> Vec<Intersection> {
[INFO] [stderr]    |              ^^^^^^^^^^^^ 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] 55 |     ) -> Vec<Intersection<'_>> {
[INFO] [stderr]    |                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/rendering/shapes/plane.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 51 |         &self,
[INFO] [stderr]    |         ^^^^^ the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 55 |     ) -> Vec<Intersection> {
[INFO] [stderr]    |              ^^^^^^^^^^^^ 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] 55 |     ) -> Vec<Intersection<'_>> {
[INFO] [stderr]    |                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/rendering/shapes/cube.rs:76:9
[INFO] [stderr]    |
[INFO] [stderr] 76 |         &self,
[INFO] [stderr]    |         ^^^^^ the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 80 |     ) -> Vec<Intersection> {
[INFO] [stderr]    |              ^^^^^^^^^^^^ 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] 80 |     ) -> Vec<Intersection<'_>> {
[INFO] [stderr]    |                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/rendering/shapes/cylinder.rs:70:9
[INFO] [stderr]    |
[INFO] [stderr] 70 |         &self,
[INFO] [stderr]    |         ^^^^^ the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 74 |     ) -> Vec<Intersection> {
[INFO] [stderr]    |              ^^^^^^^^^^^^ 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] 74 |     ) -> Vec<Intersection<'_>> {
[INFO] [stderr]    |                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/rendering/shapes/cone.rs:70:9
[INFO] [stderr]    |
[INFO] [stderr] 70 |         &self,
[INFO] [stderr]    |         ^^^^^ the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 74 |     ) -> Vec<Intersection> {
[INFO] [stderr]    |              ^^^^^^^^^^^^ 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] 74 |     ) -> Vec<Intersection<'_>> {
[INFO] [stderr]    |                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/rendering/shapes/triangle.rs:75:9
[INFO] [stderr]    |
[INFO] [stderr] 75 |         &self,
[INFO] [stderr]    |         ^^^^^ the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 79 |     ) -> Vec<Intersection> {
[INFO] [stderr]    |              ^^^^^^^^^^^^ 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] 79 |     ) -> Vec<Intersection<'_>> {
[INFO] [stderr]    |                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/rendering/shapes/smooth_triangle.rs:79:9
[INFO] [stderr]    |
[INFO] [stderr] 79 |         &self,
[INFO] [stderr]    |         ^^^^^ the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 83 |     ) -> Vec<Intersection> {
[INFO] [stderr]    |              ^^^^^^^^^^^^ 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] 83 |     ) -> Vec<Intersection<'_>> {
[INFO] [stderr]    |                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/rendering/constructive_geometry.rs:123:9
[INFO] [stderr]     |
[INFO] [stderr] 123 |         &self,
[INFO] [stderr]     |         ^^^^^ the lifetime is elided here
[INFO] [stderr] ...
[INFO] [stderr] 127 |     ) -> Vec<Intersection> {
[INFO] [stderr]     |              ^^^^^^^^^^^^ 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] 127 |     ) -> Vec<Intersection<'_>> {
[INFO] [stderr]     |                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stderr]   --> src/rendering/container.rs:11:69
[INFO] [stderr]    |
[INFO] [stderr] 11 |     pub fn new(transform: Matrix4x4, shapes: Vec<&'a dyn Shape>) -> Container {
[INFO] [stderr]    |                                                   --                ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                                                   |
[INFO] [stderr]    |                                                   the lifetime is named here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 11 |     pub fn new(transform: Matrix4x4, shapes: Vec<&'a dyn Shape>) -> Container<'a> {
[INFO] [stderr]    |                                                                              ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `jp-tracer` (bin "jp-tracer" test) generated 32 warnings (run `cargo fix --bin "jp-tracer" -p jp-tracer --tests` to apply 25 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/jp_tracer-554a2a095cd1107a)
[INFO] [stdout] test rendering::camera_tests::tests::camera_is_created_with_specified_dimensions_and_fov ... ok
[INFO] [stdout] test rendering::camera_tests::tests::calculates_pixel_size_for_tall_dimensions ... ok
[INFO] [stdout] test rendering::camera_tests::tests::calculates_pixel_size_for_wider_dimensions ... ok
[INFO] [stdout] test rendering::camera_tests::tests::ray_through_corner_of_a_canvas ... ok
[INFO] [stdout] test rendering::camera_tests::tests::ray_through_the_center_of_a_canvas ... ok
[INFO] [stdout] test rendering::camera_tests::tests::ray_for_transformed_camera ... ok
[INFO] [stdout] test rendering::canvas_tests::tests::colors_pixel_at_location_with_provided_color ... ok
[INFO] [stdout] test rendering::canvas_tests::tests::get_pixel_color_at_canvas_location ... ok
[INFO] [stdout] test rendering::canvas_tests::tests::new_colors_are_set_to_default_value ... ok
[INFO] [stdout] test rendering::canvas_tests::tests::new_canvas_sets_width_height_and_correct_sized_buffer ... ok
[INFO] [stdout] test rendering::canvas_tests::tests::outputs_data_in_ppm_v3_format ... ok
[INFO] [stdout] test rendering::canvas_tests::tests::outputs_data_in_ppm_v3_format_with_max_70_char_lines ... ok
[INFO] [stdout] test rendering::computations_tests::tests::computations_do_not_compute_reflection_vector_for_non_reflective_objects ... ok
[INFO] [stdout] test rendering::computations_tests::tests::computations_compute_reflection_vector_for_reflective_objects ... ok
[INFO] [stdout] test rendering::computations_tests::tests::calculating_n1_and_n2_values_at_intersections ... ok
[INFO] [stdout] test rendering::computations_tests::tests::computed_hit_from_inside_of_object ... ok
[INFO] [stdout] test rendering::computations_tests::tests::computed_hit_from_outside_of_object ... ok
[INFO] [stdout] test rendering::computations_tests::tests::new_computation_from_object_with_interpolated_normals_calculates_normal ... ok
[INFO] [stdout] test rendering::computations_tests::tests::new_computation_from_translated_position_correctly_calculates_normal ... ok
[INFO] [stdout] test rendering::computations_tests::tests::over_point_slightly_above_hit_is_computed ... ok
[INFO] [stdout] test rendering::computations_tests::tests::new_computation_holds_computed_state_of_intersection ... ok
[INFO] [stdout] test rendering::computations_tests::tests::under_point_slightly_under_hit_is_computed ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::checking_if_intersection_allowed_for_difference ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::checking_if_intersection_allowed_for_intersection ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::checking_if_intersection_allowed_for_union ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::contructive_geometry_created_with_transform_and_material_and_left_and_right_shapes ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::filtering_difference_intersections ... ok
[INFO] [stdout] test rendering::container_tests::tests::intersecting_empty_container_with_a_ray ... ok
[INFO] [stdout] test rendering::container_tests::tests::intersecting_non_empty_transformed_container ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::ray_misses_constructive_geometry_object ... ok
[INFO] [stdout] test rendering::container_tests::tests::container_stores_references_to_child_shapes ... ok
[INFO] [stdout] test rendering::intersection_tests::tests::hit_returns_nothing_if_all_intersections_negative ... ok
[INFO] [stdout] test rendering::intersection_tests::tests::hit_returns_nothing_if_no_intersections ... ok
[INFO] [stdout] test rendering::material_tests::tests::checker_material_repeats_along_y ... ok
[INFO] [stdout] test rendering::intersection_tests::tests::hit_returns_smallest_positive_intersection_if_some_positive_and_some_negative ... ok
[INFO] [stdout] test rendering::material_tests::tests::sets_values ... ok
[INFO] [stdout] test rendering::container_tests::tests::intersecting_non_empty_container_at_origin ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::filtering_intersection_intersections ... ok
[INFO] [stdout] test rendering::material_tests::tests::ring_material_linearly_interpolates_between_colors ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::ray_hits_constructive_geometry_object ... ok
[INFO] [stdout] test rendering::material_tests::tests::checker_material_repeats_along_z ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::filtering_union_intersections ... ok
[INFO] [stdout] test rendering::container_tests::tests::container_created_with_transform ... ok
[INFO] [stdout] test rendering::material_tests::tests::stripe_material_returns_constant_color_if_only_y_changes ... ok
[INFO] [stdout] test rendering::intersection_tests::tests::new_distance_and_object_reference ... ok
[INFO] [stdout] test rendering::intersection_tests::tests::new_with_uv_creates_intersection_with_uv_values ... ok
[INFO] [stdout] test rendering::material_tests::tests::checker_material_created_with_two_colors_and_transform ... ok
[INFO] [stdout] test rendering::material_tests::tests::checker_material_repeats_along_x ... ok
[INFO] [stdout] test rendering::material_tests::tests::stripe_material_alternates_as_x_changes ... ok
[INFO] [stdout] test rendering::intersection_tests::tests::hit_returns_intersection_with_smallest_t_if_all_positive ... ok
[INFO] [stdout] test rendering::material_tests::tests::solid_material_always_returns_single_color ... ok
[INFO] [stdout] test rendering::math::color_tests::tests::a_display_returns_a_in_0_255_range ... ok
[INFO] [stdout] test rendering::material_tests::tests::gradient_material_linearly_interpolates_between_colors ... ok
[INFO] [stdout] test rendering::math::color_tests::tests::b_display_returns_b_in_0_255_range ... ok
[INFO] [stdout] test rendering::math::color_tests::tests::display_values_returns_tuple_of_values_in_0_255_range ... ok
[INFO] [stdout] test rendering::math::color_tests::tests::empty_sets_0_values ... ok
[INFO] [stdout] test rendering::math::color_tests::tests::new_sets_values ... ok
[INFO] [stdout] test rendering::math::color_tests::tests::g_display_returns_g_in_0_255_range ... ok
[INFO] [stdout] test rendering::math::matrix2x2_tests::tests::calculates_determinant ... ok
[INFO] [stdout] test rendering::math::matrix2x2_tests::tests::identity_sets_identity_matrix ... ok
[INFO] [stdout] test rendering::math::matrix2x2_tests::tests::new_sets_values ... ok
[INFO] [stdout] test rendering::math::matrix2x2_tests::tests::recognizes_equal_matrices ... ok
[INFO] [stdout] test rendering::math::matrix2x2_tests::tests::recognizes_non_equal_matrices ... ok
[INFO] [stdout] test rendering::math::matrix2x2_tests::tests::returns_contents_of_row ... ok
[INFO] [stdout] test rendering::math::matrix2x2_tests::tests::returns_element_at_row_column ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::cofactor_returns_the_determinant_of_the_submatrix_for_a_row_column_negated_if_odd_summed ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::determinant_is_calculated_using_cofactor_of_each_column_of_row_one_summed ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::minor_returns_the_determinant_of_the_submatrix_for_a_row_column ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::new_sets_values ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::recognizes_equal_matrices ... ok
[INFO] [stdout] test rendering::material_tests::tests::stripe_material_returns_constant_color_if_only_z_changes ... ok
[INFO] [stdout] test rendering::intersection_tests::tests::aggregates_and_orders_intersections_from_smallest_t_to_largest ... ok
[INFO] [stdout] test rendering::math::matrix2x2_tests::tests::transpose_swaps_matrix_rows_with_columns ... ok
[INFO] [stdout] test rendering::math::color_tests::tests::r_display_returns_r_in_0_255_range ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::recognizes_non_equal_matrices ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::returns_element_at_row_column ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::submatrix_returns_2x2_matrix_with_all_elements_not_from_row_and_column_args ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::transpose_swaps_matrix_rows_with_columns ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::arbitrary_view_transform ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::chaining_transformation_together ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::checks_if_matrix_is_invertible_if_determinant_is_not_zero ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::determinant_is_calculated_using_cofactor_of_each_column_of_row_one_summed ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::inverse_creates_inversion_of_matrix ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::identity_sets_identity_matrix ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::matrix_translation_sets_up_identity_matrix_with_translations_in_last_row ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::matrix_multiplied_by_another_matrix_then_inversion_of_the_same_matrix_results_in_original_matrix ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::minor_returns_the_determinant_of_the_submatrix_for_a_row_column ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::matrix_multiplied_with_identity_matrix_equals_original_matrix ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::multiplies_matrix_with_point ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::cofactor_returns_the_determinant_of_the_submatrix_for_a_row_column_negated_if_odd_summed ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::point_multipled_by_scale_matrix_scales_point_by_factors ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::point_multipled_by_translation_matrix_moves_point_by_translation ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::point_multiplied_by_inverse_of_scaling_matrix_scales_in_opposite_direction ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::point_multiplied_by_inverse_of_translation_matrix_moves_in_reverse ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::recognizes_equal_matrices ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::returns_element_at_row_column ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::checks_if_matrix_is_not_invertible_if_determinant_is_zero ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::returns_contents_of_row ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::shearing_x_in_proportion_to_y ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::shearing_x_in_proportion_to_z ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::shearing_y_in_proportion_to_x ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::shearing_z_in_proportion_to_x ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::shearing_y_in_proportion_to_z ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::shearing_z_in_proportion_to_y ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::submatrix_returns_3x3_matrix_with_all_elements_not_from_row_and_column_args ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::rotating_point_around_inverse_x_axis_rotates_in_opposite_direction ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::transpose_swaps_matrix_rows_with_columns ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::vector_multipled_by_scale_matrix_scales_vector_by_factors ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::vector_multipled_by_translation_matrix_does_not_alter_vector ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::view_matrix_for_default_orientation ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::transformation_applied_in_sequence ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::dot_with_point_vector_multiplies_elements ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::view_matrix_moves_the_scene ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::adding_a_vector_adds_each_component_returning_point ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::empty_sets_0_values ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::dividing_by_number_divides_each_component ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::get_quad_returns_a_4_tuple_with_elements_and_w ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::magnitude_uses_pythag_theorum ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::multiplying_by_number_multiplies_each_component ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::new_sets_values ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::normalize_divides_by_magnitude ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::subtracting_a_point_subtracts_each_component_returning_vector ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::dot_with_point_multiplies_elements ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::new_sets_values ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::adding_a_vector_adds_each_component_returning_vector ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::recognizes_non_equal_matrices ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::subtracting_a_vector_subtracts_each_component_returning_point ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::reflection_is_scaling_by_negative_value ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::dividing_by_number_divides_each_component ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::cross_finds_cross_product_of_two_vectors ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::dot_with_vector_multiplies_elements ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::multiplies_two_matrices_together ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::adding_a_point_adds_each_component_returning_point ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::empty_sets_0_values ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::magnitude_uses_pythag_theorum ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::reflecting_vector_off_slant ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::x_axis_sets_normalized_x_axis ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::y_axis_sets_normalized_y_axis ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::reflecting_vector_45_degrees ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::z_axis_sets_normalized_z_axis ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::new_sets_values ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::normalize_divides_by_magnitude ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::subtracting_a_vector_subtracts_each_component_returning_vector ... ok
[INFO] [stdout] test rendering::obj_file_parser_tests::tests::parses_vertex_lines_from_obj_file_into_points ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::default_sets_base_values ... ok
[INFO] [stdout] test rendering::obj_file_parser_tests::tests::creates_multiple_triangles_from_complex_polygon ... ok
[INFO] [stdout] test rendering::obj_file_parser_tests::tests::creates_smooth_triangles_from_obj_lines_with_normals ... ok
[INFO] [stdout] test rendering::obj_file_parser_tests::tests::parses_vertex_normal_lines_from_obj_file_into_vectors ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_object_with_pattern ... ok
[INFO] [stdout] test rendering::obj_file_parser_tests::tests::creates_triangles_from_face_lines_in_obj_file ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::matrix_scale_sets_up_identity_matrix_with_scale_in_diagonal ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::dot_with_point_multiplies_elements ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::get_quad_returns_a_4_tuple_with_elements_and_w ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::returns_contents_of_row ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::multiplying_by_number_multiplies_each_component ... ok
[INFO] [stdout] test rendering::obj_file_parser_tests::tests::ignores_lines_from_obj_file_that_do_not_allowed_pattern ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_pattern_with_both_object_and_pattern_transformation ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_pattern_with_pattern_transformation ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_with_eye_between_light_and_surface ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_with_light_behind_surface ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::new_sets_values ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_with_surface_in_shadow ... ok
[INFO] [stdout] test rendering::ray_tests::tests::scaling_ray ... ok
[INFO] [stdout] test rendering::ray_tests::tests::translating_ray ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::pattern_position_with_object_transformation ... ok
[INFO] [stdout] test rendering::ray_tests::tests::computes_position_from_ray_and_distance ... ok
[INFO] [stdout] test rendering::ray_tests::tests::new_sets_values ... ok
[INFO] [stdout] test rendering::scene_tests::tests::creating_scene_with_lights_and_objects ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_with_eye_between_light_and_surface_eye_offset_45_degrees ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_with_eye_facing_reflection_vector ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_with_eye_opposite_surface_light_offset_45_degrees ... ok
[INFO] [stdout] test rendering::scene_tests::tests::intersecting_a_scene_with_a_ray ... ok
[INFO] [stdout] test rendering::scene_tests::tests::now_shadow_when_object_is_behind_light ... ok
[INFO] [stdout] test rendering::scene_tests::tests::reflected_color_of_a_non_reflective_material ... ok
[INFO] [stdout] test rendering::scene_tests::tests::reflected_color_returns_black_if_maximum_depth_reached ... ok
[INFO] [stdout] test rendering::scene_tests::tests::infinite_reflection_ends_after_maximum_reflective_rays_cast ... ok
[INFO] [stdout] test rendering::scene_tests::tests::refracted_color_of_an_opaque_material ... ok
[INFO] [stdout] test rendering::scene_tests::tests::refracted_color_returns_black_if_maximum_depth_reached ... ok
[INFO] [stdout] test rendering::scene_tests::tests::no_shadow_when_nothing_collinear_with_point_and_light ... ok
[INFO] [stdout] test rendering::scene_tests::tests::reflected_color_of_a_reflective_material ... ok
[INFO] [stdout] test rendering::scene_tests::tests::refracted_color_with_total_internal_reflection ... ok
[INFO] [stdout] test rendering::scene_tests::tests::schlick_calculation_with_perpendicular_angle ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::identity_sets_identity_matrix ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shade_hit_only_calculates_ambient_contribution_when_in_shadow ... ok
[INFO] [stdout] test rendering::scene_tests::tests::schlick_calculation_with_total_internal_reflection ... ok
[INFO] [stdout] test rendering::scene_tests::tests::rendering_scene_through_camera ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shade_hit_factors_in_reflected_color ... ok
[INFO] [stdout] test rendering::scene_tests::tests::schlick_calculation_with_small_angle_and_n2_larger_than_n1 ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shading_an_intersection_that_occurs_on_inside_of_object ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shades_hit_with_transparent_reflective_material ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shading_an_intersection_that_occurs_on_outside_of_object ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shading_when_intersection_behind_ray ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shading_when_intersection_misses ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shadow_when_object_is_between_point_and_light ... ok
[INFO] [stdout] test rendering::shapes::cone_tests::tests::cone_created_with_transform_and_material ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shading_when_intersection_hits ... ok
[INFO] [stdout] test rendering::shapes::cone_tests::tests::ray_intersects_cone_caps ... ok
[INFO] [stdout] test rendering::shapes::cone_tests::tests::normal_on_cone ... ok
[INFO] [stdout] test rendering::shapes::cone_tests::tests::ray_intersects_cone_parallel_to_a_half ... ok
[INFO] [stdout] test rendering::shapes::cone_tests::tests::ray_intersects_cone ... ok
[INFO] [stdout] test rendering::shapes::cube_tests::tests::cube_created_with_transform_and_material ... ok
[INFO] [stdout] test rendering::shapes::cube_tests::tests::ray_intersects_cube ... ok
[INFO] [stdout] test rendering::shapes::cube_tests::tests::ray_misses_cube ... ok
[INFO] [stdout] test rendering::shapes::cylinder_tests::tests::normal_on_cylinder_caps ... ok
[INFO] [stdout] test rendering::shapes::cylinder_tests::tests::ray_intersects_cylinder ... ok
[INFO] [stdout] test rendering::shapes::cylinder_tests::tests::ray_misses_cylinder ... ok
[INFO] [stdout] test rendering::shapes::plane_tests::tests::normal_of_plane_is_constant ... ok
[INFO] [stdout] test rendering::shapes::plane_tests::tests::plane_created_with_transform_and_material ... ok
[INFO] [stdout] test rendering::shapes::plane_tests::tests::ray_does_not_intersect_plane_if_parallel ... ok
[INFO] [stdout] test rendering::shapes::cylinder_tests::tests::cylinder_created_with_transform_and_material ... ok
[INFO] [stdout] test rendering::shapes::cylinder_tests::tests::normal_on_cylinder ... ok
[INFO] [stdout] test rendering::shapes::cube_tests::tests::normal_on_cube ... ok
[INFO] [stdout] test rendering::shapes::cylinder_tests::tests::ray_intersects_constrained_cylinder ... ok
[INFO] [stdout] test rendering::shapes::cylinder_tests::tests::ray_intersects_cylinder_caps ... ok
[INFO] [stdout] test rendering::shapes::plane_tests::tests::ray_does_not_intersect_plane_if_coplanar ... ok
[INFO] [stdout] test rendering::shapes::smooth_triangle_tests::tests::smooth_triangle_created_with_points_transform_and_material ... ok
[INFO] [stdout] test rendering::scene_tests::tests::now_shadow_when_object_is_behind_point ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::normal_on_sphere_at_furthest_point_along_x_axis ... ok
[INFO] [stdout] test rendering::shapes::smooth_triangle_tests::tests::smooth_triangle_uses_u_and_v_to_interpolate_normal ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::normal_on_sphere_at_furthest_point_along_z_axis ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::normal_on_sphere_at_furthest_point_along_y_axis ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::intersecting_a_scaled_sphere ... ok
[INFO] [stdout] test rendering::shapes::plane_tests::tests::ray_intersects_plane_from_below ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::normal_on_translated_sphere ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::normal_on_transformed_sphere ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::intersects_stores_reference_to_intersected_object ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::ray_intersects_sphere_at_tangent ... ok
[INFO] [stdout] test rendering::shapes::plane_tests::tests::ray_intersects_plane_from_above ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::ray_originates_in_sphere ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::ray_points_away_from_sphere ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::normal_on_sphere_at_non_axial_point ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::sphere_created_with_transform_and_material ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::ray_intersects_sphere_at_two_point ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::ray_misses_point_2_to_point_3_triangle_edge ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::ray_misses_sphere ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::ray_hits_triangle ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::ray_is_parallel_to_triangle ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::ray_misses_point_1_to_point_2_triangle_edge ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::ray_misses_point_1_to_point_3_triangle_edge ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::intersecting_a_translated_sphere ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::triangle_created_with_points_transform_and_material ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::normal_on_triangle ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::rotating_point_around_y_axis ... FAILED
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::rotating_point_around_x_axis ... FAILED
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::rotating_point_around_z_axis ... FAILED
[INFO] [stderr] error: test failed, to rerun pass `--bin jp-tracer`
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- rendering::math::matrix4x4_tests::tests::rotating_point_around_y_axis stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'rendering::math::matrix4x4_tests::tests::rotating_point_around_y_axis' (131) panicked at src/rendering/math/matrix4x4_tests.rs:560:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 0.7071067811865475
[INFO] [stdout]  right: 0.7071067811865476
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x610dc8ed1b72 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x610dc8ed1b72 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x610dc8ed1b72 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x610dc8ed1b72 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x610dc8ee283a - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x610dc8ee283a - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x610dc8ea08b6 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x610dc8ea08b6 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x610dc8eb1059 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x610dc8eb1059 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x610dc8eb0ef1 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x610dc8e3b9de - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x610dc8e3b9de - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x610dc8eb12d2 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x610dc8eb12d2 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x610dc8eb1118 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x610dc8eac6a9 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x610dc8e956ed - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x610dc8eeb25c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x610dc8eeb113 - core::panicking::assert_failed_inner::h3c3301979dc81b81
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x610dc8de3031 - core::panicking::assert_failed::hca226340096a6f21
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x610dc8dcb319 - jp_tracer::rendering::math::matrix4x4_tests::tests::rotating_point_around_y_axis::h207dbd46c05744fe
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:560:9
[INFO] [stdout]   22:     0x610dc8dcb547 - jp_tracer::rendering::math::matrix4x4_tests::tests::rotating_point_around_y_axis::{{closure}}::hdd950ef211ed58d2
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:552:38
[INFO] [stdout]   23:     0x610dc8dd47e6 - core::ops::function::FnOnce::call_once::hc74b0616b1014aaf
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x610dc8e3b79b - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x610dc8e3b79b - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x610dc8e4f1aa - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x610dc8e4f1aa - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x610dc8e4f1aa - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x610dc8e4f1aa - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x610dc8e4f1aa - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x610dc8e4f1aa - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x610dc8e4f1aa - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x610dc8e29604 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x610dc8e29604 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x610dc8e2cfa2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x610dc8e2cfa2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x610dc8e2cfa2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x610dc8e2cfa2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x610dc8e2cfa2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x610dc8e2cfa2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x610dc8e2cfa2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x610dc8ea793f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x610dc8ea793f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   44:     0x74e48edcbaa4 - <unknown>
[INFO] [stdout]   45:     0x74e48ee58a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- rendering::math::matrix4x4_tests::tests::rotating_point_around_x_axis stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'rendering::math::matrix4x4_tests::tests::rotating_point_around_x_axis' (130) panicked at src/rendering/math/matrix4x4_tests.rs:519:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 0.7071067811865475
[INFO] [stdout]  right: 0.7071067811865476
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x610dc8ed1b72 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x610dc8ed1b72 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x610dc8ed1b72 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x610dc8ed1b72 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x610dc8ee283a - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x610dc8ee283a - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x610dc8ea08b6 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x610dc8ea08b6 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x610dc8eb1059 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x610dc8eb1059 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x610dc8eb0ef1 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x610dc8e3b9de - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x610dc8e3b9de - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x610dc8eb12d2 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x610dc8eb12d2 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x610dc8eb1118 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x610dc8eac6a9 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x610dc8e956ed - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x610dc8eeb25c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x610dc8eeb113 - core::panicking::assert_failed_inner::h3c3301979dc81b81
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x610dc8de3031 - core::panicking::assert_failed::hca226340096a6f21
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x610dc8dcb0ac - jp_tracer::rendering::math::matrix4x4_tests::tests::rotating_point_around_x_axis::hd31ff90931d9d6a1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:519:9
[INFO] [stdout]   22:     0x610dc8dcb1f7 - jp_tracer::rendering::math::matrix4x4_tests::tests::rotating_point_around_x_axis::{{closure}}::hddd78bed0381e8f4
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:509:38
[INFO] [stdout]   23:     0x610dc8dd5366 - core::ops::function::FnOnce::call_once::hfc9bd68584cc2be1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x610dc8e3b79b - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x610dc8e3b79b - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x610dc8e4f1aa - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x610dc8e4f1aa - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x610dc8e4f1aa - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x610dc8e4f1aa - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x610dc8e4f1aa - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x610dc8e4f1aa - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x610dc8e4f1aa - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x610dc8e29604 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x610dc8e29604 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x610dc8e2cfa2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x610dc8e2cfa2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x610dc8e2cfa2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x610dc8e2cfa2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x610dc8e2cfa2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x610dc8e2cfa2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x610dc8e2cfa2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x610dc8ea793f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x610dc8ea793f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   44:     0x74e48edcbaa4 - <unknown>
[INFO] [stdout]   45:     0x74e48ee58a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- rendering::math::matrix4x4_tests::tests::rotating_point_around_z_axis stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'rendering::math::matrix4x4_tests::tests::rotating_point_around_z_axis' (132) panicked at src/rendering/math/matrix4x4_tests.rs:583:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: -0.7071067811865475
[INFO] [stdout]  right: -0.7071067811865476
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x610dc8ed1b72 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x610dc8ed1b72 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x610dc8ed1b72 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x610dc8ed1b72 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x610dc8ee283a - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x610dc8ee283a - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x610dc8ea08b6 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x610dc8ea08b6 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x610dc8eb1059 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x610dc8eb1059 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x610dc8eb0ef1 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x610dc8e3b9de - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x610dc8e3b9de - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x610dc8eb12d2 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x610dc8eb12d2 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x610dc8eb1118 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x610dc8eac6a9 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x610dc8e956ed - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x610dc8eeb25c - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x610dc8eeb113 - core::panicking::assert_failed_inner::h3c3301979dc81b81
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x610dc8de3031 - core::panicking::assert_failed::hca226340096a6f21
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x610dc8dcb680 - jp_tracer::rendering::math::matrix4x4_tests::tests::rotating_point_around_z_axis::h52d9c359996a5d54
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:583:9
[INFO] [stdout]   22:     0x610dc8dcb8b7 - jp_tracer::rendering::math::matrix4x4_tests::tests::rotating_point_around_z_axis::{{closure}}::hfad3249ad53e597d
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:575:38
[INFO] [stdout]   23:     0x610dc8dd4666 - core::ops::function::FnOnce::call_once::hc104a16ba313e0b7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x610dc8e3b79b - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x610dc8e3b79b - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x610dc8e4f1aa - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x610dc8e4f1aa - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x610dc8e4f1aa - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x610dc8e4f1aa - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x610dc8e4f1aa - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x610dc8e4f1aa - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x610dc8e4f1aa - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x610dc8e29604 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x610dc8e29604 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x610dc8e2cfa2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x610dc8e2cfa2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x610dc8e2cfa2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x610dc8e2cfa2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x610dc8e2cfa2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x610dc8e2cfa2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x610dc8e2cfa2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x610dc8ea793f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x610dc8ea793f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   44:     0x74e48edcbaa4 - <unknown>
[INFO] [stdout]   45:     0x74e48ee58a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     rendering::math::matrix4x4_tests::tests::rotating_point_around_x_axis
[INFO] [stdout]     rendering::math::matrix4x4_tests::tests::rotating_point_around_y_axis
[INFO] [stdout]     rendering::math::matrix4x4_tests::tests::rotating_point_around_z_axis
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 242 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "abc468b4f8206ae50408688f4f4be9457508470af563e0b2f51188dcc033c790", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "abc468b4f8206ae50408688f4f4be9457508470af563e0b2f51188dcc033c790", kill_on_drop: false }`
[INFO] [stdout] abc468b4f8206ae50408688f4f4be9457508470af563e0b2f51188dcc033c790
