[INFO] cloning repository https://github.com/spineki/rust-tracer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/spineki/rust-tracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspineki%2Frust-tracer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspineki%2Frust-tracer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 404370a3a685e6c9090023fb9683fe8263807fd7
[INFO] checking spineki/rust-tracer against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspineki%2Frust-tracer" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/spineki/rust-tracer
[INFO] finished tweaking git repo https://github.com/spineki/rust-tracer
[INFO] tweaked toml for git repo https://github.com/spineki/rust-tracer written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/spineki/rust-tracer on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/spineki/rust-tracer already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded crossbeam-queue v0.3.6
[INFO] [stderr]   Downloaded mio-misc v1.2.2
[INFO] [stderr]   Downloaded wgpu-types v0.11.0
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.10
[INFO] [stderr]   Downloaded futures-sink v0.3.23
[INFO] [stderr]   Downloaded float_next_after v0.1.5
[INFO] [stderr]   Downloaded nannou_mesh v0.18.0
[INFO] [stderr]   Downloaded futures-task v0.3.23
[INFO] [stderr]   Downloaded pennereq v0.3.1
[INFO] [stderr]   Downloaded d3d12 v0.4.1
[INFO] [stderr]   Downloaded lyon v0.17.10
[INFO] [stderr]   Downloaded futures-macro v0.3.23
[INFO] [stderr]   Downloaded lyon_algorithms v0.17.7
[INFO] [stderr]   Downloaded nannou_core v0.18.0
[INFO] [stderr]   Downloaded lyon_path v0.17.7
[INFO] [stderr]   Downloaded futures-channel v0.3.23
[INFO] [stderr]   Downloaded palette_derive v0.5.0
[INFO] [stderr]   Downloaded futures-executor v0.3.23
[INFO] [stderr]   Downloaded lyon_geom v0.17.7
[INFO] [stderr]   Downloaded nannou_wgpu v0.18.0
[INFO] [stderr]   Downloaded futures v0.3.23
[INFO] [stderr]   Downloaded noise v0.7.0
[INFO] [stderr]   Downloaded nannou v0.18.1
[INFO] [stderr]   Downloaded wgpu v0.11.1
[INFO] [stderr]   Downloaded glam v0.17.3
[INFO] [stderr]   Downloaded lyon_tessellation v0.17.10
[INFO] [stderr]   Downloaded wgpu-core v0.11.3
[INFO] [stderr]   Downloaded wgpu-hal v0.11.5
[INFO] [stderr]   Downloaded futures-util v0.3.23
[INFO] [stderr]   Downloaded palette v0.5.0
[INFO] [stderr]   Downloaded naga v0.7.3
[INFO] [stderr]   Downloaded ash v0.33.3+1.2.191
[INFO] [stderr]   Downloaded notosans v0.1.0
[INFO] [stderr]   Downloaded metal v0.23.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e78995c1e01f42ff2b9c810e723cfec83c1e9a500f0e0b5e501f52aaf2afa7aa
[INFO] running `Command { std: "docker" "start" "-a" "e78995c1e01f42ff2b9c810e723cfec83c1e9a500f0e0b5e501f52aaf2afa7aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e78995c1e01f42ff2b9c810e723cfec83c1e9a500f0e0b5e501f52aaf2afa7aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e78995c1e01f42ff2b9c810e723cfec83c1e9a500f0e0b5e501f52aaf2afa7aa", kill_on_drop: false }`
[INFO] [stdout] e78995c1e01f42ff2b9c810e723cfec83c1e9a500f0e0b5e501f52aaf2afa7aa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6ac4ad46489471aa0182a7c3c7120b927f862b14249b8829153f806ecb949ed3
[INFO] running `Command { std: "docker" "start" "-a" "6ac4ad46489471aa0182a7c3c7120b927f862b14249b8829153f806ecb949ed3", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.132
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]    Compiling crossbeam-utils v0.8.11
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.10
[INFO] [stderr]     Checking libloading v0.7.3
[INFO] [stderr]    Compiling wayland-sys v0.28.6
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]    Compiling wayland-scanner v0.28.6
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stderr]    Compiling futures-core v0.3.23
[INFO] [stderr]    Compiling futures-channel v0.3.23
[INFO] [stderr]     Checking either v1.8.0
[INFO] [stderr]     Checking unicode-width v0.1.9
[INFO] [stderr]    Compiling futures-task v0.3.23
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]     Checking euclid v0.22.7
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking dlib v0.5.0
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.1
[INFO] [stderr]     Checking gpu-alloc-types v0.2.0
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking ttf-parser v0.6.2
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]     Checking weezl v0.1.7
[INFO] [stderr]    Compiling crossbeam-queue v0.3.6
[INFO] [stderr]     Checking futures-sink v0.3.23
[INFO] [stderr]     Checking hexf-parse v0.2.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.6
[INFO] [stderr]     Checking scoped-tls v1.0.0
[INFO] [stderr]    Compiling futures-util v0.3.23
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking gpu-alloc v0.5.3
[INFO] [stderr]    Compiling wgpu-core v0.11.3
[INFO] [stderr]     Checking ash v0.33.3+1.2.191
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking crossbeam-deque v0.8.2
[INFO] [stderr]     Checking wgpu-types v0.11.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]     Checking futures-io v0.3.23
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.5
[INFO] [stderr]     Checking renderdoc-sys v0.7.1
[INFO] [stderr]     Checking inplace_it v0.3.4
[INFO] [stderr]     Checking profiling v1.0.6
[INFO] [stderr]    Compiling palette v0.5.0
[INFO] [stderr]     Checking gif v0.11.4
[INFO] [stderr]    Compiling x11-dl v2.20.0
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]     Checking xml-rs v0.8.4
[INFO] [stderr]     Checking lyon_geom v0.17.7
[INFO] [stderr]     Checking copyless v0.1.5
[INFO] [stderr]     Checking bytemuck v1.12.1
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]     Checking crossbeam v0.8.2
[INFO] [stderr]     Checking sid v0.6.1
[INFO] [stderr]     Checking float_next_after v0.1.5
[INFO] [stderr]    Compiling winit v0.25.0
[INFO] [stderr]     Checking ordered-float v1.1.1
[INFO] [stderr]     Checking stb_truetype v0.3.1
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]     Checking pennereq v0.3.1
[INFO] [stderr]     Checking owned_ttf_parser v0.6.0
[INFO] [stderr]     Checking find_folder v0.3.0
[INFO] [stderr]     Checking notosans v0.1.0
[INFO] [stderr]     Checking rusttype v0.9.2
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]    Compiling wayland-client v0.28.6
[INFO] [stderr]    Compiling wayland-protocols v0.28.6
[INFO] [stderr]     Checking lyon_path v0.17.7
[INFO] [stderr]     Checking getrandom v0.2.7
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking nix v0.20.0
[INFO] [stderr]     Checking parking_lot_core v0.8.5
[INFO] [stderr]     Checking raw-window-handle v0.3.4
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking mio v0.7.14
[INFO] [stderr]     Checking memmap2 v0.1.0
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]     Checking ahash v0.7.6
[INFO] [stderr]     Checking rayon-core v1.9.3
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking xdg v2.4.1
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking lyon_algorithms v0.17.7
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking andrew v0.3.1
[INFO] [stderr]     Checking rand_xorshift v0.2.0
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking lyon_tessellation v0.17.10
[INFO] [stderr]     Checking rusttype v0.8.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rayon v1.5.3
[INFO] [stderr]     Checking mio-misc v1.2.2
[INFO] [stderr]     Checking lyon v0.17.10
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]     Checking gpu-descriptor v0.2.3
[INFO] [stderr]     Checking calloop v0.6.5
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking wayland-commons v0.28.6
[INFO] [stderr]    Compiling serde_derive v1.0.144
[INFO] [stderr]    Compiling thiserror-impl v1.0.32
[INFO] [stderr]    Compiling futures-macro v0.3.23
[INFO] [stderr]    Compiling palette_derive v0.5.0
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking thiserror v1.0.32
[INFO] [stderr]     Checking naga v0.7.3
[INFO] [stderr]     Checking wayland-cursor v0.28.6
[INFO] [stderr]     Checking serde v1.0.144
[INFO] [stderr]     Checking noise v0.7.0
[INFO] [stderr]     Checking futures-executor v0.3.23
[INFO] [stderr]     Checking futures v0.3.23
[INFO] [stderr]     Checking wgpu-hal v0.11.5
[INFO] [stderr]     Checking glam v0.17.3
[INFO] [stderr]     Checking toml v0.5.9
[INFO] [stderr]     Checking serde_json v1.0.85
[INFO] [stderr]     Checking wgpu v0.11.1
[INFO] [stderr]     Checking nannou_core v0.18.0
[INFO] [stderr]     Checking nannou_mesh v0.18.0
[INFO] [stderr]     Checking nannou_wgpu v0.18.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.12.3
[INFO] [stderr]     Checking nannou v0.18.1
[INFO] [stderr]     Checking gpu-attempt v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Camera {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/hittable.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord>;
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>>;
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/hittable.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn get_closest_hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |                        ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn get_closest_hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/hittable.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn get_faces(&self) -> &Vec<Triangle>;
[INFO] [stdout]    |                  ^^^^^     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                  |         |    |
[INFO] [stdout]    |                  |         |    the same lifetime is hidden here
[INFO] [stdout]    |                  |         the same lifetime is elided here
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn get_faces(&self) -> &Vec<Triangle<'_>>;
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/quad.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/quad.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn get_faces(&self) -> &Vec<Triangle> {
[INFO] [stdout]    |                  ^^^^^     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                  |         |    |
[INFO] [stdout]    |                  |         |    the same lifetime is hidden here
[INFO] [stdout]    |                  |         the same lifetime is elided here
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn get_faces(&self) -> &Vec<Triangle<'_>> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/sphere.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn hit(&self, ray: &crate::Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here                          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn hit(&self, ray: &crate::Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/tetrahedron.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/tetrahedron.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn get_faces(&self) -> &Vec<Triangle> {
[INFO] [stdout]    |                  ^^^^^     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                  |         |    |
[INFO] [stdout]    |                  |         |    the same lifetime is hidden here
[INFO] [stdout]    |                  |         the same lifetime is elided here
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn get_faces(&self) -> &Vec<Triangle<'_>> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/triangle.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn hit(&self, ray: &crate::Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here                          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn hit(&self, ray: &crate::Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `magic_number` and `max_color` are never read
[INFO] [stdout]   --> src/bin/ppm_reader.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Model {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 15 |     magic_number: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     max_color: u32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Camera {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/hittable.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord>;
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>>;
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/hittable.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn get_closest_hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |                        ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn get_closest_hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/hittable.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn get_faces(&self) -> &Vec<Triangle>;
[INFO] [stdout]    |                  ^^^^^     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                  |         |    |
[INFO] [stdout]    |                  |         |    the same lifetime is hidden here
[INFO] [stdout]    |                  |         the same lifetime is elided here
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn get_faces(&self) -> &Vec<Triangle<'_>>;
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/quad.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/quad.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn get_faces(&self) -> &Vec<Triangle> {
[INFO] [stdout]    |                  ^^^^^     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                  |         |    |
[INFO] [stdout]    |                  |         |    the same lifetime is hidden here
[INFO] [stdout]    |                  |         the same lifetime is elided here
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn get_faces(&self) -> &Vec<Triangle<'_>> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/sphere.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn hit(&self, ray: &crate::Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here                          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn hit(&self, ray: &crate::Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/tetrahedron.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn hit(&self, ray: &Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/tetrahedron.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn get_faces(&self) -> &Vec<Triangle> {
[INFO] [stdout]    |                  ^^^^^     ^^^^^^^^^^^^^^
[INFO] [stdout]    |                  |         |    |
[INFO] [stdout]    |                  |         |    the same lifetime is hidden here
[INFO] [stdout]    |                  |         the same lifetime is elided here
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn get_faces(&self) -> &Vec<Triangle<'_>> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/hittable/triangle.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn hit(&self, ray: &crate::Ray, t_min: f64, t_max: f64) -> Option<HitRecord> {
[INFO] [stdout]    |            ^^^^^ the lifetime is elided here                          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn hit(&self, ray: &crate::Ray, t_min: f64, t_max: f64) -> Option<HitRecord<'_>> {
[INFO] [stdout]    |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `magic_number` and `max_color` are never read
[INFO] [stdout]   --> src/bin/ppm_reader.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Model {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 15 |     magic_number: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     max_color: u32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     write!(file, "P3\n");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let _ = write!(file, "P3\n");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     write!(file, "{} {}\n", nb_columns, nb_lines);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let _ = write!(file, "{} {}\n", nb_columns, nb_lines);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     write!(file, "255\n");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let _ = write!(file, "255\n");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 123 |     write!(file, "\n");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let _ = write!(file, "\n");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:128:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |             write!(file, "{}\n", pixel_color.as_ppm(samples_per_pixel));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 128 |             let _ = write!(file, "{}\n", pixel_color.as_ppm(samples_per_pixel));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |         write!(file, "\n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let _ = write!(file, "\n");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 11s
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     write!(file, "P3\n");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let _ = write!(file, "P3\n");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     write!(file, "{} {}\n", nb_columns, nb_lines);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let _ = write!(file, "{} {}\n", nb_columns, nb_lines);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     write!(file, "255\n");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let _ = write!(file, "255\n");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 123 |     write!(file, "\n");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 123 |     let _ = write!(file, "\n");
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:128:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |             write!(file, "{}\n", pixel_color.as_ppm(samples_per_pixel));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 128 |             let _ = write!(file, "{}\n", pixel_color.as_ppm(samples_per_pixel));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/main.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 130 |         write!(file, "\n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let _ = write!(file, "\n");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: noise v0.7.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 7`
[INFO] running `Command { std: "docker" "inspect" "6ac4ad46489471aa0182a7c3c7120b927f862b14249b8829153f806ecb949ed3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6ac4ad46489471aa0182a7c3c7120b927f862b14249b8829153f806ecb949ed3", kill_on_drop: false }`
[INFO] [stdout] 6ac4ad46489471aa0182a7c3c7120b927f862b14249b8829153f806ecb949ed3
