[INFO] cloning repository https://github.com/Original-2/RustRayTracer2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Original-2/RustRayTracer2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOriginal-2%2FRustRayTracer2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOriginal-2%2FRustRayTracer2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fac6262dc547815b25bd7927ef99432830456caa
[INFO] checking Original-2/RustRayTracer2 against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOriginal-2%2FRustRayTracer2" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Original-2/RustRayTracer2
[INFO] finished tweaking git repo https://github.com/Original-2/RustRayTracer2
[INFO] tweaked toml for git repo https://github.com/Original-2/RustRayTracer2 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Original-2/RustRayTracer2 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/Original-2/RustRayTracer2 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]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded hermit-abi v0.2.6
[INFO] [stderr]   Downloaded num_cpus v1.15.0
[INFO] [stderr]   Downloaded weezl v0.1.7
[INFO] [stderr]   Downloaded lebe v0.5.2
[INFO] [stderr]   Downloaded either v1.8.0
[INFO] [stderr]   Downloaded futures-sink v0.3.25
[INFO] [stderr]   Downloaded adler v1.0.2
[INFO] [stderr]   Downloaded scoped_threadpool v0.1.9
[INFO] [stderr]   Downloaded scopeguard v1.1.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.83
[INFO] [stderr]   Downloaded futures-core v0.3.25
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.83
[INFO] [stderr]   Downloaded bit_field v0.10.1
[INFO] [stderr]   Downloaded crunchy v0.2.2
[INFO] [stderr]   Downloaded memoffset v0.7.1
[INFO] [stderr]   Downloaded rayon-core v1.10.1
[INFO] [stderr]   Downloaded once_cell v1.16.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.83
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.83
[INFO] [stderr]   Downloaded getrandom v0.2.8
[INFO] [stderr]   Downloaded log v0.4.17
[INFO] [stderr]   Downloaded bytemuck v1.12.3
[INFO] [stderr]   Downloaded byteorder v1.4.3
[INFO] [stderr]   Downloaded proc-macro2 v1.0.49
[INFO] [stderr]   Downloaded js-sys v0.3.60
[INFO] [stderr]   Downloaded pin-project v1.0.12
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.6
[INFO] [stderr]   Downloaded flate2 v1.0.25
[INFO] [stderr]   Downloaded bumpalo v3.11.1
[INFO] [stderr]   Downloaded rayon v1.6.1
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.83
[INFO] [stderr]   Downloaded flume v0.10.14
[INFO] [stderr]   Downloaded png v0.17.7
[INFO] [stderr]   Downloaded exr v1.5.2
[INFO] [stderr]   Downloaded syn v1.0.107
[INFO] [stderr]   Downloaded lock_api v0.4.9
[INFO] [stderr]   Downloaded image v0.24.5
[INFO] [stderr]   Downloaded num-traits v0.2.15
[INFO] [stderr]   Downloaded miniz_oxide v0.6.2
[INFO] [stderr]   Downloaded unicode-ident v1.0.6
[INFO] [stderr]   Downloaded spin v0.9.4
[INFO] [stderr]   Downloaded half v2.1.0
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.13
[INFO] [stderr]   Downloaded num-rational v0.4.1
[INFO] [stderr]   Downloaded crc32fast v1.3.2
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.14
[INFO] [stderr]   Downloaded nanorand v0.7.0
[INFO] [stderr]   Downloaded smallvec v1.10.0
[INFO] [stderr]   Downloaded autocfg v1.1.0
[INFO] [stderr]   Downloaded quote v1.0.23
[INFO] [stderr]   Downloaded pin-project-internal v1.0.12
[INFO] [stderr]   Downloaded libc v0.2.139
[INFO] [stderr]   Downloaded num-integer v0.1.45
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.2
[INFO] [stderr]   Downloaded color_quant v1.1.0
[INFO] [stderr]   Downloaded threadpool v1.8.1
[INFO] [stderr]   Downloaded gif v0.11.4
[INFO] [stderr]   Downloaded jpeg-decoder v0.3.0
[INFO] [stderr]   Downloaded tiff v0.8.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b380c3ccae69228562866f7790e5233e80a1f36d3e47660048c85a8e8d7a70f9
[INFO] running `Command { std: "docker" "start" "-a" "b380c3ccae69228562866f7790e5233e80a1f36d3e47660048c85a8e8d7a70f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b380c3ccae69228562866f7790e5233e80a1f36d3e47660048c85a8e8d7a70f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b380c3ccae69228562866f7790e5233e80a1f36d3e47660048c85a8e8d7a70f9", kill_on_drop: false }`
[INFO] [stdout] b380c3ccae69228562866f7790e5233e80a1f36d3e47660048c85a8e8d7a70f9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ed9e6fc34d5b66d1e8726baae5c31cff8bb1ec1f2dbcf4a8d584faba2a9b7209
[INFO] running `Command { std: "docker" "start" "-a" "ed9e6fc34d5b66d1e8726baae5c31cff8bb1ec1f2dbcf4a8d584faba2a9b7209", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.14
[INFO] [stderr]    Compiling proc-macro2 v1.0.49
[INFO] [stderr]    Compiling quote v1.0.23
[INFO] [stderr]    Compiling unicode-ident v1.0.6
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]    Compiling rayon-core v1.10.1
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling futures-core v0.3.25
[INFO] [stderr]     Checking either v1.8.0
[INFO] [stderr]     Checking futures-sink v0.3.25
[INFO] [stderr]     Checking weezl v0.1.7
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking bit_field v0.10.1
[INFO] [stderr]     Checking half v2.1.0
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking miniz_oxide v0.6.2
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking smallvec v1.10.0
[INFO] [stderr]     Checking bytemuck v1.12.3
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]     Checking gif v0.11.4
[INFO] [stderr]     Checking flate2 v1.0.25
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.13
[INFO] [stderr]    Compiling lock_api v0.4.9
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]     Checking num_cpus v1.15.0
[INFO] [stderr]     Checking getrandom v0.2.8
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking png v0.17.7
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.6
[INFO] [stderr]     Checking spin v0.9.4
[INFO] [stderr]     Checking crossbeam-deque v0.8.2
[INFO] [stderr]     Checking rayon v1.6.1
[INFO] [stderr]     Checking jpeg-decoder v0.3.0
[INFO] [stderr]     Checking tiff v0.8.1
[INFO] [stderr]    Compiling pin-project-internal v1.0.12
[INFO] [stderr]     Checking pin-project v1.0.12
[INFO] [stderr]     Checking flume v0.10.14
[INFO] [stderr]     Checking exr v1.5.2
[INFO] [stderr]     Checking image v0.24.5
[INFO] [stderr]     Checking RustRenderer2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: methods `get_w`, `get_h`, and `set_color` are never used
[INFO] [stdout]    --> src/bmp.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Bmp {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 160 |     fn get_w(self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn get_h(self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn set_color(&mut self, x: i32, y: i32, color: Color) -> () {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_texture` and `compare` are never used
[INFO] [stdout]   --> src/material.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Material {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn set_texture(&mut self, texture: Bmp) -> () {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn compare(&self, other: Material) -> Ordering {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_texture_axis` is never used
[INFO] [stdout]    --> src/objects.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl Plane {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 205 |     fn set_texture_axis(&mut self, o: Vector3, dx: Vector3, dy: Vector3) -> () {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_texture_axis` is never used
[INFO] [stdout]    --> src/objects.rs:346:8
[INFO] [stdout]     |
[INFO] [stdout] 345 | impl Sphere {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] 346 |     fn set_texture_axis(&mut self, dz: Vector3, dx: Vector3) -> () {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `at_rect_light` and `ray_start` are never read
[INFO] [stdout]   --> src/collision.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Collision<'a> {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub at_rect_light: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub rect_light: &'a RectLight,
[INFO] [stdout] 21 |     pub ray_start: Vector3,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Collision` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `at_object` is never used
[INFO] [stdout]    --> src/collision.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl<'a> Collision<'a> {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn at_object(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `m_up`, `m_fov_y`, and `m_film` are never read
[INFO] [stdout]   --> src/camera.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Camera {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub m_up: Vector3,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub m_fov_y: f64,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub m_film: Bmp, // m_film = new Bmp(m_w, m_h);
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Camera` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_w`, `get_h`, and `set_color` are never used
[INFO] [stdout]   --> src/camera.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Camera {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 22 |
[INFO] [stdout] 23 |     pub fn get_w(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn get_h(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn set_color(&mut self, x: i32, y: i32, color: Color) -> () {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bfType` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     bfType: u16,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `bf_type`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bfSize` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     bfSize: u32,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `bf_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bfReserved1` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     bfReserved1: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `bf_reserved1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bfReserved2` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     bfReserved2: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `bf_reserved2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bfOffBits` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     bfOffBits: u32,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `bf_off_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biSize` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     biSize: u32,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `bi_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biWidth` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     biWidth: u32,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to snake case: `bi_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biHeight` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     biHeight: u32,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `bi_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biPlanes` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     biPlanes: u16,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `bi_planes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biBitCount` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     biBitCount: u16,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `bi_bit_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biCompression` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     biCompression: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `bi_compression`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biSizeImage` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     biSizeImage: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `bi_size_image`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biXPelsPerMeter` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     biXPelsPerMeter: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `bi_xpels_per_meter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biYPelsPerMeter` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     biYPelsPerMeter: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `bi_ypels_per_meter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biClrUsed` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     biClrUsed: u32,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `bi_clr_used`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biClrImportant` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     biClrImportant: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `bi_clr_important`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `BmpNew` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn BmpNew(w: i32, h: i32, background: Color) -> Bmp {
[INFO] [stdout]    |        ^^^^^^ help: convert the identifier to snake case: `bmp_new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bmp.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     f.read_to_end(&mut bytes);
[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] 103 |     let _ = f.read_to_end(&mut bytes);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/objects.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision;
[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] 12 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_>;
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/objects.rs:55:18
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision {
[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] 55 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_> {
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/objects.rs:238:18
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision {
[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] 238 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_> {
[INFO] [stdout]     |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/light.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision;
[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 collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_>;
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `MakePointLight` should have a snake case name
[INFO] [stdout]   --> src/light.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn MakePointLight(c: Color, o: Vector3) -> PointLight {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `make_point_light`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/light.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision {
[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] 41 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_> {
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `makeRectLight` should have a snake case name
[INFO] [stdout]   --> src/light.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn makeRectLight(c: Color, o: Vector3, dx: Vector3, dy: Vector3) -> RectLight {
[INFO] [stdout]    |        ^^^^^^^^^^^^^ help: convert the identifier to snake case: `make_rect_light`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/light.rs:94:18
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision {
[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] 94 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_> {
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scene.rs:155:35
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn find_nearest_collision(&self, start: Vector3, dir: Vector3) -> Collision {
[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] 155 |     pub fn find_nearest_collision(&self, start: Vector3, dir: Vector3) -> Collision<'_> {
[INFO] [stdout]     |                                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_w`, `get_h`, and `set_color` are never used
[INFO] [stdout]    --> src/bmp.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Bmp {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 160 |     fn get_w(self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn get_h(self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn set_color(&mut self, x: i32, y: i32, color: Color) -> () {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_texture` and `compare` are never used
[INFO] [stdout]   --> src/material.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Material {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn set_texture(&mut self, texture: Bmp) -> () {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn compare(&self, other: Material) -> Ordering {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_texture_axis` is never used
[INFO] [stdout]    --> src/objects.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl Plane {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 205 |     fn set_texture_axis(&mut self, o: Vector3, dx: Vector3, dy: Vector3) -> () {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_texture_axis` is never used
[INFO] [stdout]    --> src/objects.rs:346:8
[INFO] [stdout]     |
[INFO] [stdout] 345 | impl Sphere {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] 346 |     fn set_texture_axis(&mut self, dz: Vector3, dx: Vector3) -> () {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `at_rect_light` and `ray_start` are never read
[INFO] [stdout]   --> src/collision.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Collision<'a> {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub at_rect_light: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub rect_light: &'a RectLight,
[INFO] [stdout] 21 |     pub ray_start: Vector3,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Collision` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `at_object` is never used
[INFO] [stdout]    --> src/collision.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl<'a> Collision<'a> {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn at_object(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `m_up`, `m_fov_y`, and `m_film` are never read
[INFO] [stdout]   --> src/camera.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Camera {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub m_up: Vector3,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub m_fov_y: f64,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub m_film: Bmp, // m_film = new Bmp(m_w, m_h);
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Camera` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_w`, `get_h`, and `set_color` are never used
[INFO] [stdout]   --> src/camera.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Camera {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 22 |
[INFO] [stdout] 23 |     pub fn get_w(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn get_h(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn set_color(&mut self, x: i32, y: i32, color: Color) -> () {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bfType` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     bfType: u16,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `bf_type`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bfSize` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     bfSize: u32,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `bf_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bfReserved1` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     bfReserved1: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `bf_reserved1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bfReserved2` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     bfReserved2: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `bf_reserved2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bfOffBits` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     bfOffBits: u32,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `bf_off_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biSize` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     biSize: u32,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `bi_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biWidth` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     biWidth: u32,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to snake case: `bi_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biHeight` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     biHeight: u32,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `bi_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biPlanes` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     biPlanes: u16,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `bi_planes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biBitCount` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     biBitCount: u16,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `bi_bit_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biCompression` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     biCompression: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `bi_compression`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biSizeImage` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     biSizeImage: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `bi_size_image`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biXPelsPerMeter` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     biXPelsPerMeter: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `bi_xpels_per_meter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biYPelsPerMeter` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     biYPelsPerMeter: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `bi_ypels_per_meter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biClrUsed` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     biClrUsed: u32,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `bi_clr_used`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `biClrImportant` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     biClrImportant: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `bi_clr_important`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `BmpNew` should have a snake case name
[INFO] [stdout]   --> src/bmp.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn BmpNew(w: i32, h: i32, background: Color) -> Bmp {
[INFO] [stdout]    |        ^^^^^^ help: convert the identifier to snake case: `bmp_new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bmp.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     f.read_to_end(&mut bytes);
[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] 103 |     let _ = f.read_to_end(&mut bytes);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/objects.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision;
[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] 12 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_>;
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/objects.rs:55:18
[INFO] [stdout]    |
[INFO] [stdout] 55 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision {
[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] 55 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_> {
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/objects.rs:238:18
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision {
[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] 238 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_> {
[INFO] [stdout]     |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/light.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision;
[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 collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_>;
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `MakePointLight` should have a snake case name
[INFO] [stdout]   --> src/light.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn MakePointLight(c: Color, o: Vector3) -> PointLight {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `make_point_light`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/light.rs:41:18
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision {
[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] 41 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_> {
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `makeRectLight` should have a snake case name
[INFO] [stdout]   --> src/light.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn makeRectLight(c: Color, o: Vector3, dx: Vector3, dy: Vector3) -> RectLight {
[INFO] [stdout]    |        ^^^^^^^^^^^^^ help: convert the identifier to snake case: `make_rect_light`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/light.rs:94:18
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision {
[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] 94 |     fn collision(&self, start: &Vector3, dir: &Vector3) -> Collision<'_> {
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scene.rs:155:35
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn find_nearest_collision(&self, start: Vector3, dir: Vector3) -> Collision {
[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] 155 |     pub fn find_nearest_collision(&self, start: Vector3, dir: Vector3) -> Collision<'_> {
[INFO] [stdout]     |                                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.06s
[INFO] running `Command { std: "docker" "inspect" "ed9e6fc34d5b66d1e8726baae5c31cff8bb1ec1f2dbcf4a8d584faba2a9b7209", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ed9e6fc34d5b66d1e8726baae5c31cff8bb1ec1f2dbcf4a8d584faba2a9b7209", kill_on_drop: false }`
[INFO] [stdout] ed9e6fc34d5b66d1e8726baae5c31cff8bb1ec1f2dbcf4a8d584faba2a9b7209
