[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 master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-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 2fd6efc32704647e64d3d646d21c4c68eae100e4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "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" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded proc-macro2 v1.0.87
[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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c27e4ab96e14e4af43e325b83218910b4a75d13409fd62f98818a13a3c66f672
[INFO] running `Command { std: "docker" "start" "-a" "c27e4ab96e14e4af43e325b83218910b4a75d13409fd62f98818a13a3c66f672", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c27e4ab96e14e4af43e325b83218910b4a75d13409fd62f98818a13a3c66f672", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c27e4ab96e14e4af43e325b83218910b4a75d13409fd62f98818a13a3c66f672", kill_on_drop: false }`
[INFO] [stdout] c27e4ab96e14e4af43e325b83218910b4a75d13409fd62f98818a13a3c66f672
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ea6562df1b205ce2d997d384c0f236d6c29d03cb735586bfda0ec3e1456efeab
[INFO] running `Command { std: "docker" "start" "-a" "ea6562df1b205ce2d997d384c0f236d6c29d03cb735586bfda0ec3e1456efeab", 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 iana-time-zone v0.1.61
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.79
[INFO] [stderr]    Compiling rand_core v0.9.3
[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 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 13.84s
[INFO] running `Command { std: "docker" "inspect" "ea6562df1b205ce2d997d384c0f236d6c29d03cb735586bfda0ec3e1456efeab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ea6562df1b205ce2d997d384c0f236d6c29d03cb735586bfda0ec3e1456efeab", kill_on_drop: false }`
[INFO] [stdout] ea6562df1b205ce2d997d384c0f236d6c29d03cb735586bfda0ec3e1456efeab
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0021207885ff19370efeaf630b879795503d6c84a14ebc5a7e272a6923dbe097
[INFO] running `Command { std: "docker" "start" "-a" "0021207885ff19370efeaf630b879795503d6c84a14ebc5a7e272a6923dbe097", 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.43s
[INFO] running `Command { std: "docker" "inspect" "0021207885ff19370efeaf630b879795503d6c84a14ebc5a7e272a6923dbe097", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0021207885ff19370efeaf630b879795503d6c84a14ebc5a7e272a6923dbe097", kill_on_drop: false }`
[INFO] [stdout] 0021207885ff19370efeaf630b879795503d6c84a14ebc5a7e272a6923dbe097
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 753bb1942603255ee019ab90bfc9ea41562d4c861359b2f4ae78f026450fe5f4
[INFO] running `Command { std: "docker" "start" "-a" "753bb1942603255ee019ab90bfc9ea41562d4c861359b2f4ae78f026450fe5f4", 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] [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/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.11s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/jp_tracer-71860c05cd5ac88d)
[INFO] [stdout] 
[INFO] [stdout] running 245 tests
[INFO] [stdout] test rendering::canvas_tests::tests::get_pixel_color_at_canvas_location ... 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::new_colors_are_set_to_default_value ... ok
[INFO] [stdout] test rendering::canvas_tests::tests::outputs_data_in_ppm_v3_format ... ok
[INFO] [stdout] test rendering::camera_tests::tests::calculates_pixel_size_for_wider_dimensions ... ok
[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::ray_through_the_center_of_a_canvas ... ok
[INFO] [stdout] test rendering::camera_tests::tests::ray_through_corner_of_a_canvas ... ok
[INFO] [stdout] test rendering::camera_tests::tests::ray_for_transformed_camera ... 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_compute_reflection_vector_for_reflective_objects ... ok
[INFO] [stdout] test rendering::computations_tests::tests::computed_hit_from_inside_of_object ... ok
[INFO] [stdout] test rendering::computations_tests::tests::calculating_n1_and_n2_values_at_intersections ... 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::over_point_slightly_above_hit_is_computed ... 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::computed_hit_from_outside_of_object ... ok
[INFO] [stdout] test rendering::computations_tests::tests::new_computation_holds_computed_state_of_intersection ... ok
[INFO] [stdout] test rendering::computations_tests::tests::new_computation_from_translated_position_correctly_calculates_normal ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::checking_if_intersection_allowed_for_difference ... ok
[INFO] [stdout] test rendering::canvas_tests::tests::colors_pixel_at_location_with_provided_color ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::filtering_difference_intersections ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::checking_if_intersection_allowed_for_intersection ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::filtering_intersection_intersections ... 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::ray_hits_constructive_geometry_object ... ok
[INFO] [stdout] test rendering::container_tests::tests::container_created_with_transform ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::ray_misses_constructive_geometry_object ... ok
[INFO] [stdout] test rendering::constructive_geometry_tests::tests::checking_if_intersection_allowed_for_union ... ok
[INFO] [stdout] test rendering::container_tests::tests::container_stores_references_to_child_shapes ... ok
[INFO] [stdout] test rendering::container_tests::tests::intersecting_non_empty_container_at_origin ... ok
[INFO] [stdout] test rendering::container_tests::tests::intersecting_empty_container_with_a_ray ... ok
[INFO] [stdout] test rendering::intersection_tests::tests::aggregates_and_orders_intersections_from_smallest_t_to_largest ... ok
[INFO] [stdout] test rendering::container_tests::tests::intersecting_non_empty_transformed_container ... 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_intersection_with_smallest_t_if_all_positive ... ok
[INFO] [stdout] test rendering::intersection_tests::tests::hit_returns_nothing_if_no_intersections ... ok
[INFO] [stdout] test rendering::intersection_tests::tests::hit_returns_smallest_positive_intersection_if_some_positive_and_some_negative ... 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_repeats_along_x ... ok
[INFO] [stdout] test rendering::computations_tests::tests::under_point_slightly_under_hit_is_computed ... ok
[INFO] [stdout] test rendering::material_tests::tests::gradient_material_linearly_interpolates_between_colors ... ok
[INFO] [stdout] test rendering::material_tests::tests::sets_values ... 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::material_tests::tests::stripe_material_alternates_as_x_changes ... ok
[INFO] [stdout] test rendering::material_tests::tests::ring_material_linearly_interpolates_between_colors ... ok
[INFO] [stdout] test rendering::material_tests::tests::checker_material_repeats_along_y ... ok
[INFO] [stdout] test rendering::material_tests::tests::stripe_material_returns_constant_color_if_only_z_changes ... ok
[INFO] [stdout] test rendering::material_tests::tests::solid_material_always_returns_single_color ... ok
[INFO] [stdout] test rendering::math::color_tests::tests::new_sets_values ... ok
[INFO] [stdout] test rendering::math::color_tests::tests::r_display_returns_r_in_0_255_range ... ok
[INFO] [stdout] test rendering::material_tests::tests::stripe_material_returns_constant_color_if_only_y_changes ... 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::checker_material_created_with_two_colors_and_transform ... ok
[INFO] [stdout] test rendering::math::matrix2x2_tests::tests::calculates_determinant ... ok
[INFO] [stdout] test rendering::math::color_tests::tests::empty_sets_0_values ... ok
[INFO] [stdout] test rendering::math::color_tests::tests::b_display_returns_b_in_0_255_range ... 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_element_at_row_column ... ok
[INFO] [stdout] test rendering::math::matrix2x2_tests::tests::returns_contents_of_row ... ok
[INFO] [stdout] test rendering::math::matrix2x2_tests::tests::transpose_swaps_matrix_rows_with_columns ... 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::identity_sets_identity_matrix ... 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::determinant_is_calculated_using_cofactor_of_each_column_of_row_one_summed ... 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::math::matrix3x3_tests::tests::recognizes_non_equal_matrices ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::returns_contents_of_row ... 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::identity_sets_identity_matrix ... 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::matrix4x4_tests::tests::chaining_transformation_together ... ok
[INFO] [stdout] test rendering::math::matrix3x3_tests::tests::transpose_swaps_matrix_rows_with_columns ... 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::matrix4x4_tests::tests::checks_if_matrix_is_invertible_if_determinant_is_not_zero ... 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::cofactor_returns_the_determinant_of_the_submatrix_for_a_row_column_negated_if_odd_summed ... 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::determinant_is_calculated_using_cofactor_of_each_column_of_row_one_summed ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::multiplies_two_matrices_together ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::new_sets_values ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::inverse_creates_inversion_of_matrix ... 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::arbitrary_view_transform ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::recognizes_equal_matrices ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::identity_sets_identity_matrix ... 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_scale_sets_up_identity_matrix_with_scale_in_diagonal ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::multiplies_matrix_with_point ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::recognizes_non_equal_matrices ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::reflection_is_scaling_by_negative_value ... 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::matrix_translation_sets_up_identity_matrix_with_translations_in_last_row ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::returns_element_at_row_column ... 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::point_multiplied_by_inverse_of_translation_matrix_moves_in_reverse ... 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::transformation_applied_in_sequence ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::transpose_swaps_matrix_rows_with_columns ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::adding_a_vector_adds_each_component_returning_point ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::shearing_x_in_proportion_to_y ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::dot_with_point_multiplies_elements ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::vector_multipled_by_translation_matrix_does_not_alter_vector ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::dot_with_point_vector_multiplies_elements ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::empty_sets_0_values ... 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::returns_contents_of_row ... 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::matrix4x4_tests::tests::view_matrix_moves_the_scene ... ok
[INFO] [stdout] test rendering::math::matrix4x4_tests::tests::view_matrix_for_default_orientation ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::new_sets_values ... 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::subtracting_a_vector_subtracts_each_component_returning_point ... 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::cross_finds_cross_product_of_two_vectors ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::multiplying_by_number_multiplies_each_component ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::adding_a_vector_adds_each_component_returning_vector ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::dot_with_vector_multiplies_elements ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::magnitude_uses_pythag_theorum ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::dividing_by_number_divides_each_component ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::normalize_divides_by_magnitude ... 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::multiplying_by_number_multiplies_each_component ... 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::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::reflecting_vector_45_degrees ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::reflecting_vector_off_slant ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::subtracting_a_vector_subtracts_each_component_returning_vector ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::dot_with_point_multiplies_elements ... ok
[INFO] [stdout] test rendering::math::point_tests::tests::dividing_by_number_divides_each_component ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::y_axis_sets_normalized_y_axis ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::z_axis_sets_normalized_z_axis ... ok
[INFO] [stdout] test rendering::math::vector_tests::tests::x_axis_sets_normalized_x_axis ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::default_sets_base_values ... ok
[INFO] [stdout] test rendering::obj_file_parser_tests::tests::creates_triangles_from_face_lines_in_obj_file ... 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::ignores_lines_from_obj_file_that_do_not_allowed_pattern ... 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::lighting_pattern_with_both_object_and_pattern_transformation ... 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_with_eye_between_light_and_surface ... 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_pattern_with_pattern_transformation ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::new_sets_values ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_object_with_pattern ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_with_surface_in_shadow ... 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::point_light_tests::tests::pattern_position_with_object_transformation ... 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::scene_tests::tests::creating_scene_with_lights_and_objects ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_with_eye_facing_reflection_vector ... ok
[INFO] [stdout] test rendering::scene_tests::tests::now_shadow_when_object_is_behind_point ... ok
[INFO] [stdout] test rendering::scene_tests::tests::intersecting_a_scene_with_a_ray ... ok
[INFO] [stdout] test rendering::scene_tests::tests::infinite_reflection_ends_after_maximum_reflective_rays_cast ... ok
[INFO] [stdout] test rendering::scene_tests::tests::reflected_color_of_a_reflective_material ... 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::now_shadow_when_object_is_behind_light ... 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::schlick_calculation_with_perpendicular_angle ... ok
[INFO] [stdout] test rendering::scene_tests::tests::schlick_calculation_with_total_internal_reflection ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shade_hit_factors_in_reflected_color ... ok
[INFO] [stdout] test rendering::scene_tests::tests::refracted_color_of_an_opaque_material ... ok
[INFO] [stdout] test rendering::scene_tests::tests::refracted_color_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_only_calculates_ambient_contribution_when_in_shadow ... ok
[INFO] [stdout] test rendering::scene_tests::tests::refracted_color_returns_black_if_maximum_depth_reached ... 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::reflected_color_of_a_non_reflective_material ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shades_hit_with_transparent_reflective_material ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shading_when_intersection_misses ... ok
[INFO] [stdout] test rendering::shapes::cone_tests::tests::cone_created_with_transform_and_material ... 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::shading_an_intersection_that_occurs_on_outside_of_object ... ok
[INFO] [stdout] test rendering::shapes::cone_tests::tests::normal_on_cone ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shadow_when_object_is_between_point_and_light ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shading_when_intersection_behind_ray ... ok
[INFO] [stdout] test rendering::scene_tests::tests::shading_when_intersection_hits ... ok
[INFO] [stdout] test rendering::point_light_tests::tests::lighting_with_light_behind_surface ... ok
[INFO] [stdout] test rendering::shapes::cone_tests::tests::ray_intersects_cone_caps ... ok
[INFO] [stdout] test rendering::shapes::cube_tests::tests::normal_on_cube ... ok
[INFO] [stdout] test rendering::shapes::cube_tests::tests::ray_intersects_cube ... 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::cone_tests::tests::ray_intersects_cone_parallel_to_a_half ... ok
[INFO] [stdout] test rendering::scene_tests::tests::reflected_color_returns_black_if_maximum_depth_reached ... ok
[INFO] [stdout] test rendering::shapes::cone_tests::tests::ray_intersects_cone ... ok
[INFO] [stdout] test rendering::shapes::cube_tests::tests::ray_misses_cube ... 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_coplanar ... ok
[INFO] [stdout] test rendering::shapes::cylinder_tests::tests::normal_on_cylinder_caps ... 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 ... ok
[INFO] [stdout] test rendering::shapes::cylinder_tests::tests::ray_intersects_cylinder_caps ... 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::smooth_triangle_tests::tests::smooth_triangle_uses_u_and_v_to_interpolate_normal ... 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::intersects_stores_reference_to_intersected_object ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::intersecting_a_translated_sphere ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::normal_on_sphere_at_furthest_point_along_x_axis ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::normal_on_sphere_at_furthest_point_along_z_axis ... ok
[INFO] [stdout] test rendering::shapes::smooth_triangle_tests::tests::smooth_triangle_created_with_points_transform_and_material ... 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::normal_on_sphere_at_non_axial_point ... ok
[INFO] [stdout] test rendering::shapes::cube_tests::tests::cube_created_with_transform_and_material ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::normal_on_transformed_sphere ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::ray_intersects_sphere_at_tangent ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::normal_on_translated_sphere ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::ray_intersects_sphere_at_two_point ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::ray_points_away_from_sphere ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::sphere_created_with_transform_and_material ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::ray_is_parallel_to_triangle ... ok
[INFO] [stdout] test rendering::shapes::sphere_tests::tests::ray_originates_in_sphere ... 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_misses_point_1_to_point_2_triangle_edge ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::normal_on_triangle ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::ray_misses_point_1_to_point_3_triangle_edge ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::ray_misses_point_2_to_point_3_triangle_edge ... ok
[INFO] [stdout] test rendering::shapes::triangle_tests::tests::triangle_created_with_points_transform_and_material ... ok
[INFO] [stdout] test rendering::shapes::plane_tests::tests::ray_intersects_plane_from_above ... ok
[INFO] [stdout] test rendering::shapes::plane_tests::tests::ray_does_not_intersect_plane_if_parallel ... 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] [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:     0x5b37f1342712 - std[716c9a7a72e5c14e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b37f1342712 - std[716c9a7a72e5c14e]::backtrace_rs::backtrace::trace_unsynchronized::<std[716c9a7a72e5c14e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b37f1342712 - std[716c9a7a72e5c14e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b37f1342712 - <<std[716c9a7a72e5c14e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[c5ed12ab89cc536a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b37f135811a - <core[c5ed12ab89cc536a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b37f135811a - core[c5ed12ab89cc536a]::fmt::write
[INFO] [stdout]    6:     0x5b37f1347546 - std[716c9a7a72e5c14e]::io::default_write_fmt::<alloc[9c68fdf4f4f29218]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5b37f1347546 - <alloc[9c68fdf4f4f29218]::vec::Vec<u8> as std[716c9a7a72e5c14e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5b37f1320bdf - <std[716c9a7a72e5c14e]::sys::backtrace::BacktraceLock>::print
[INFO] [stderr] error: test failed, to rerun pass `--bin jp-tracer`
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b37f1320bdf - std[716c9a7a72e5c14e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b37f133a9f9 - std[716c9a7a72e5c14e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b37f129d03e - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn for<'a, 'b> core[c5ed12ab89cc536a]::ops::function::Fn<(&'a std[716c9a7a72e5c14e]::panic::PanicHookInfo<'b>,), Output = ()> + core[c5ed12ab89cc536a]::marker::Sync + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::Fn<(&std[716c9a7a72e5c14e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x5b37f129d03e - test[64760d2bdea328cc]::test_main_with_exit_callback::<test[64760d2bdea328cc]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5b37f133abb2 - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn for<'a, 'b> core[c5ed12ab89cc536a]::ops::function::Fn<(&'a std[716c9a7a72e5c14e]::panic::PanicHookInfo<'b>,), Output = ()> + core[c5ed12ab89cc536a]::marker::Sync + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::Fn<(&std[716c9a7a72e5c14e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x5b37f133abb2 - std[716c9a7a72e5c14e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b37f1320c98 - std[716c9a7a72e5c14e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b37f1318669 - std[716c9a7a72e5c14e]::sys::backtrace::__rust_end_short_backtrace::<std[716c9a7a72e5c14e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b37f1321aed - __rustc[4f0b026143eab78e]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b37f135882c - core[c5ed12ab89cc536a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b37f13586e3 - core[c5ed12ab89cc536a]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5b37f1275fc9 - core[c5ed12ab89cc536a]::panicking::assert_failed::<f64, f64>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5b37f12400f9 - jp_tracer[77e9f1a50548fcd0]::rendering::math::matrix4x4_tests::tests::rotating_point_around_y_axis
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:560:9
[INFO] [stdout]   22:     0x5b37f123ddf7 - jp_tracer[77e9f1a50548fcd0]::rendering::math::matrix4x4_tests::tests::rotating_point_around_y_axis::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:552:38
[INFO] [stdout]   23:     0x5b37f1265146 - <jp_tracer[77e9f1a50548fcd0]::rendering::math::matrix4x4_tests::tests::rotating_point_around_y_axis::{closure#0} as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5b37f12913eb - <fn() -> core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5b37f12913eb - test[64760d2bdea328cc]::__rust_begin_short_backtrace::<core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>, fn() -> core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5b37f129dc4a - test[64760d2bdea328cc]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5b37f129dc4a - <core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5b37f129dc4a - std[716c9a7a72e5c14e]::panicking::catch_unwind::do_call::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>, core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5b37f129dc4a - std[716c9a7a72e5c14e]::panicking::catch_unwind::<core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>, core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5b37f129dc4a - std[716c9a7a72e5c14e]::panic::catch_unwind::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>, core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5b37f129dc4a - test[64760d2bdea328cc]::run_test_in_process
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5b37f129dc4a - test[64760d2bdea328cc]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5b37f1298114 - test[64760d2bdea328cc]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5b37f1298114 - std[716c9a7a72e5c14e]::sys::backtrace::__rust_begin_short_backtrace::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5b37f12a0742 - <core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::panicking::catch_unwind::do_call::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::panicking::catch_unwind::<(), core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::panic::catch_unwind::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5b37f12a0742 - <std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1} as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5b37f1341fbf - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn core[c5ed12ab89cc536a]::ops::function::FnOnce<(), Output = ()> + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x5b37f1341fbf - <std[716c9a7a72e5c14e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   44:     0x7024ce0e5aa4 - <unknown>
[INFO] [stdout]   45:     0x7024ce172a64 - 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:     0x5b37f1342712 - std[716c9a7a72e5c14e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b37f1342712 - std[716c9a7a72e5c14e]::backtrace_rs::backtrace::trace_unsynchronized::<std[716c9a7a72e5c14e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b37f1342712 - std[716c9a7a72e5c14e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b37f1342712 - <<std[716c9a7a72e5c14e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[c5ed12ab89cc536a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b37f135811a - <core[c5ed12ab89cc536a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b37f135811a - core[c5ed12ab89cc536a]::fmt::write
[INFO] [stdout]    6:     0x5b37f1347546 - std[716c9a7a72e5c14e]::io::default_write_fmt::<alloc[9c68fdf4f4f29218]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5b37f1347546 - <alloc[9c68fdf4f4f29218]::vec::Vec<u8> as std[716c9a7a72e5c14e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5b37f1320bdf - <std[716c9a7a72e5c14e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b37f1320bdf - std[716c9a7a72e5c14e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b37f133a9f9 - std[716c9a7a72e5c14e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b37f129d03e - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn for<'a, 'b> core[c5ed12ab89cc536a]::ops::function::Fn<(&'a std[716c9a7a72e5c14e]::panic::PanicHookInfo<'b>,), Output = ()> + core[c5ed12ab89cc536a]::marker::Sync + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::Fn<(&std[716c9a7a72e5c14e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x5b37f129d03e - test[64760d2bdea328cc]::test_main_with_exit_callback::<test[64760d2bdea328cc]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5b37f133abb2 - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn for<'a, 'b> core[c5ed12ab89cc536a]::ops::function::Fn<(&'a std[716c9a7a72e5c14e]::panic::PanicHookInfo<'b>,), Output = ()> + core[c5ed12ab89cc536a]::marker::Sync + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::Fn<(&std[716c9a7a72e5c14e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x5b37f133abb2 - std[716c9a7a72e5c14e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b37f1320c98 - std[716c9a7a72e5c14e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b37f1318669 - std[716c9a7a72e5c14e]::sys::backtrace::__rust_end_short_backtrace::<std[716c9a7a72e5c14e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b37f1321aed - __rustc[4f0b026143eab78e]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b37f135882c - core[c5ed12ab89cc536a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b37f13586e3 - core[c5ed12ab89cc536a]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5b37f1275fc9 - core[c5ed12ab89cc536a]::panicking::assert_failed::<f64, f64>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5b37f123febc - jp_tracer[77e9f1a50548fcd0]::rendering::math::matrix4x4_tests::tests::rotating_point_around_x_axis
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:519:9
[INFO] [stdout]   22:     0x5b37f123ddc7 - jp_tracer[77e9f1a50548fcd0]::rendering::math::matrix4x4_tests::tests::rotating_point_around_x_axis::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:509:38
[INFO] [stdout]   23:     0x5b37f1265106 - <jp_tracer[77e9f1a50548fcd0]::rendering::math::matrix4x4_tests::tests::rotating_point_around_x_axis::{closure#0} as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5b37f12913eb - <fn() -> core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5b37f12913eb - test[64760d2bdea328cc]::__rust_begin_short_backtrace::<core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>, fn() -> core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5b37f129dc4a - test[64760d2bdea328cc]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5b37f129dc4a - <core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5b37f129dc4a - std[716c9a7a72e5c14e]::panicking::catch_unwind::do_call::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>, core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5b37f129dc4a - std[716c9a7a72e5c14e]::panicking::catch_unwind::<core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>, core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5b37f129dc4a - std[716c9a7a72e5c14e]::panic::catch_unwind::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>, core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5b37f129dc4a - test[64760d2bdea328cc]::run_test_in_process
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5b37f129dc4a - test[64760d2bdea328cc]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5b37f1298114 - test[64760d2bdea328cc]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5b37f1298114 - std[716c9a7a72e5c14e]::sys::backtrace::__rust_begin_short_backtrace::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5b37f12a0742 - <core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::panicking::catch_unwind::do_call::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::panicking::catch_unwind::<(), core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::panic::catch_unwind::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5b37f12a0742 - <std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1} as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5b37f1341fbf - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn core[c5ed12ab89cc536a]::ops::function::FnOnce<(), Output = ()> + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x5b37f1341fbf - <std[716c9a7a72e5c14e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   44:     0x7024ce0e5aa4 - <unknown>
[INFO] [stdout]   45:     0x7024ce172a64 - 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:     0x5b37f1342712 - std[716c9a7a72e5c14e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b37f1342712 - std[716c9a7a72e5c14e]::backtrace_rs::backtrace::trace_unsynchronized::<std[716c9a7a72e5c14e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b37f1342712 - std[716c9a7a72e5c14e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b37f1342712 - <<std[716c9a7a72e5c14e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[c5ed12ab89cc536a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b37f135811a - <core[c5ed12ab89cc536a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b37f135811a - core[c5ed12ab89cc536a]::fmt::write
[INFO] [stdout]    6:     0x5b37f1347546 - std[716c9a7a72e5c14e]::io::default_write_fmt::<alloc[9c68fdf4f4f29218]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5b37f1347546 - <alloc[9c68fdf4f4f29218]::vec::Vec<u8> as std[716c9a7a72e5c14e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5b37f1320bdf - <std[716c9a7a72e5c14e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b37f1320bdf - std[716c9a7a72e5c14e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b37f133a9f9 - std[716c9a7a72e5c14e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b37f129d03e - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn for<'a, 'b> core[c5ed12ab89cc536a]::ops::function::Fn<(&'a std[716c9a7a72e5c14e]::panic::PanicHookInfo<'b>,), Output = ()> + core[c5ed12ab89cc536a]::marker::Sync + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::Fn<(&std[716c9a7a72e5c14e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x5b37f129d03e - test[64760d2bdea328cc]::test_main_with_exit_callback::<test[64760d2bdea328cc]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5b37f133abb2 - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn for<'a, 'b> core[c5ed12ab89cc536a]::ops::function::Fn<(&'a std[716c9a7a72e5c14e]::panic::PanicHookInfo<'b>,), Output = ()> + core[c5ed12ab89cc536a]::marker::Sync + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::Fn<(&std[716c9a7a72e5c14e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x5b37f133abb2 - std[716c9a7a72e5c14e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b37f1320c98 - std[716c9a7a72e5c14e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b37f1318669 - std[716c9a7a72e5c14e]::sys::backtrace::__rust_end_short_backtrace::<std[716c9a7a72e5c14e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b37f1321aed - __rustc[4f0b026143eab78e]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b37f135882c - core[c5ed12ab89cc536a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b37f13586e3 - core[c5ed12ab89cc536a]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5b37f1275fc9 - core[c5ed12ab89cc536a]::panicking::assert_failed::<f64, f64>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5b37f1240430 - jp_tracer[77e9f1a50548fcd0]::rendering::math::matrix4x4_tests::tests::rotating_point_around_z_axis
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:583:9
[INFO] [stdout]   22:     0x5b37f123de27 - jp_tracer[77e9f1a50548fcd0]::rendering::math::matrix4x4_tests::tests::rotating_point_around_z_axis::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/rendering/math/matrix4x4_tests.rs:575:38
[INFO] [stdout]   23:     0x5b37f1265186 - <jp_tracer[77e9f1a50548fcd0]::rendering::math::matrix4x4_tests::tests::rotating_point_around_z_axis::{closure#0} as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5b37f12913eb - <fn() -> core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5b37f12913eb - test[64760d2bdea328cc]::__rust_begin_short_backtrace::<core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>, fn() -> core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5b37f129dc4a - test[64760d2bdea328cc]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5b37f129dc4a - <core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5b37f129dc4a - std[716c9a7a72e5c14e]::panicking::catch_unwind::do_call::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>, core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5b37f129dc4a - std[716c9a7a72e5c14e]::panicking::catch_unwind::<core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>, core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5b37f129dc4a - std[716c9a7a72e5c14e]::panic::catch_unwind::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>, core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5b37f129dc4a - test[64760d2bdea328cc]::run_test_in_process
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5b37f129dc4a - test[64760d2bdea328cc]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5b37f1298114 - test[64760d2bdea328cc]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5b37f1298114 - std[716c9a7a72e5c14e]::sys::backtrace::__rust_begin_short_backtrace::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5b37f12a0742 - <core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::panicking::catch_unwind::do_call::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::panicking::catch_unwind::<(), core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::panic::catch_unwind::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5b37f12a0742 - std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5b37f12a0742 - <std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1} as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5b37f1341fbf - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn core[c5ed12ab89cc536a]::ops::function::FnOnce<(), Output = ()> + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x5b37f1341fbf - <std[716c9a7a72e5c14e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   44:     0x7024ce0e5aa4 - <unknown>
[INFO] [stdout]   45:     0x7024ce172a64 - 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.05s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "753bb1942603255ee019ab90bfc9ea41562d4c861359b2f4ae78f026450fe5f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "753bb1942603255ee019ab90bfc9ea41562d4c861359b2f4ae78f026450fe5f4", kill_on_drop: false }`
[INFO] [stdout] 753bb1942603255ee019ab90bfc9ea41562d4c861359b2f4ae78f026450fe5f4
