[INFO] cloning repository https://github.com/nikklassen/raytracer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nikklassen/raytracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnikklassen%2Fraytracer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnikklassen%2Fraytracer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 71745284d71d0d6fce1cba64bdf28c71cf3de30a
[INFO] checking nikklassen/raytracer against try#e117153a45c546e883c1f91d82611775fcaeffe0 for pr-146470
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnikklassen%2Fraytracer" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nikklassen/raytracer
[INFO] finished tweaking git repo https://github.com/nikklassen/raytracer
[INFO] tweaked toml for git repo https://github.com/nikklassen/raytracer written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nikklassen/raytracer on toolchain e117153a45c546e883c1f91d82611775fcaeffe0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e117153a45c546e883c1f91d82611775fcaeffe0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nikklassen/raytracer 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" "+e117153a45c546e883c1f91d82611775fcaeffe0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded user32-sys v0.2.0
[INFO] [stderr]   Downloaded gdi32-sys v0.2.0
[INFO] [stderr]   Downloaded lazy_static v0.2.10
[INFO] [stderr]   Downloaded libc v0.2.33
[INFO] [stderr]   Downloaded rayon v0.9.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+e117153a45c546e883c1f91d82611775fcaeffe0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 29b0d1ef7f0352463cf5809f02859a96e14c686ef47fca6679cc02fe13d5d898
[INFO] running `Command { std: "docker" "start" "-a" "29b0d1ef7f0352463cf5809f02859a96e14c686ef47fca6679cc02fe13d5d898", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "29b0d1ef7f0352463cf5809f02859a96e14c686ef47fca6679cc02fe13d5d898", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "29b0d1ef7f0352463cf5809f02859a96e14c686ef47fca6679cc02fe13d5d898", kill_on_drop: false }`
[INFO] [stdout] 29b0d1ef7f0352463cf5809f02859a96e14c686ef47fca6679cc02fe13d5d898
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+e117153a45c546e883c1f91d82611775fcaeffe0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 02579b6b12cf35c9d6bc0b6758718be32159c8c5a6298d3a09a18bc0daad5ce0
[INFO] running `Command { std: "docker" "start" "-a" "02579b6b12cf35c9d6bc0b6758718be32159c8c5a6298d3a09a18bc0daad5ce0", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking libc v0.2.33
[INFO] [stderr]     Checking either v1.4.0
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]    Compiling rayon-core v1.3.0
[INFO] [stderr]     Checking scopeguard v0.3.3
[INFO] [stderr]     Checking lazy_static v0.2.10
[INFO] [stderr]     Checking coco v0.1.1
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling gdi32-sys v0.2.0
[INFO] [stderr]    Compiling user32-sys v0.2.0
[INFO] [stderr]     Checking num_cpus v1.7.0
[INFO] [stderr]     Checking rand v0.3.18
[INFO] [stderr]     Checking rayon v0.9.0
[INFO] [stderr]     Checking raytracer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0433]: failed to resolve: could not find `windows` in `os`
[INFO] [stdout]   --> src/main.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::os::windows::ffi::OsStrExt;
[INFO] [stdout]    |              ^^^^^^^ could not find `windows` in `os`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /rustc/e117153a45c546e883c1f91d82611775fcaeffe0/library/std/src/os/mod.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item is gated here
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /rustc/e117153a45c546e883c1f91d82611775fcaeffe0/library/std/src/os/mod.rs:120:9
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item is gated here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `gdi32::StretchDIBits`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use gdi32::StretchDIBits;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ no `StretchDIBits` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `winapi::c_int`, `winapi::c_void`, `winapi::BITMAPINFO`, `winapi::BITMAPINFOHEADER`, `winapi::BI_RGB`, `winapi::DIB_RGB_COLORS`, `winapi::HDC`, `winapi::HWND`, `winapi::PAINTSTRUCT`, `winapi::SRCCOPY`
[INFO] [stdout]   --> src/main.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 20 | use winapi::{c_int, c_void, BITMAPINFO, BITMAPINFOHEADER, BI_RGB, DIB_RGB_COLORS, HDC, HWND,
[INFO] [stdout]    |              ^^^^^  ^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^  ^^^  ^^^^ no `HWND` in the root
[INFO] [stdout]    |              |      |       |           |                 |       |               |
[INFO] [stdout]    |              |      |       |           |                 |       |               no `HDC` in the root
[INFO] [stdout]    |              |      |       |           |                 |       no `DIB_RGB_COLORS` in the root
[INFO] [stdout]    |              |      |       |           |                 no `BI_RGB` in the root
[INFO] [stdout]    |              |      |       |           no `BITMAPINFOHEADER` in the root
[INFO] [stdout]    |              |      |       no `BITMAPINFO` in the root
[INFO] [stdout]    |              |      no `c_void` in the root
[INFO] [stdout]    |              no `c_int` in the root
[INFO] [stdout] 21 |              PAINTSTRUCT, SRCCOPY};
[INFO] [stdout]    |              ^^^^^^^^^^^  ^^^^^^^ no `SRCCOPY` in the root
[INFO] [stdout]    |              |
[INFO] [stdout]    |              no `PAINTSTRUCT` in the root
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider importing one of these type aliases instead:
[INFO] [stdout]            std::ffi::c_int
[INFO] [stdout]            std::os::raw::c_int
[INFO] [stdout]    = help: consider importing one of these items instead:
[INFO] [stdout]            std::ffi::c_void
[INFO] [stdout]            std::os::raw::c_void
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `winapi::minwindef`
[INFO] [stdout]   --> src/main.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use winapi::minwindef::{LPARAM, LRESULT, UINT, WPARAM};
[INFO] [stdout]    |             ^^^^^^^^^ could not find `minwindef` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `winapi::winuser`
[INFO] [stdout]   --> src/main.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 | use winapi::winuser::{CS_HREDRAW, CS_OWNDC, CS_VREDRAW, CW_USEDEFAULT, MSG, WM_PAINT, WNDCLASSW,
[INFO] [stdout]    |             ^^^^^^^ could not find `winuser` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `user32::BeginPaint`, `user32::CreateWindowExW`, `user32::DefWindowProcW`, `user32::DispatchMessageW`, `user32::EndPaint`, `user32::GetMessageW`, `user32::RegisterClassW`, `user32::TranslateMessage`, `user32::InvalidateRect`
[INFO] [stdout]   --> src/main.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | use user32::{BeginPaint, CreateWindowExW, DefWindowProcW, DispatchMessageW, EndPaint, GetMessageW,
[INFO] [stdout]    |              ^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^ no `GetMessageW` in the root
[INFO] [stdout]    |              |           |                |               |                 |
[INFO] [stdout]    |              |           |                |               |                 no `EndPaint` in the root
[INFO] [stdout]    |              |           |                |               no `DispatchMessageW` in the root
[INFO] [stdout]    |              |           |                no `DefWindowProcW` in the root
[INFO] [stdout]    |              |           no `CreateWindowExW` in the root
[INFO] [stdout]    |              no `BeginPaint` in the root
[INFO] [stdout] 26 |              RegisterClassW, TranslateMessage, InvalidateRect};
[INFO] [stdout]    |              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^ no `InvalidateRect` in the root
[INFO] [stdout]    |              |               |
[INFO] [stdout]    |              |               no `TranslateMessage` in the root
[INFO] [stdout]    |              no `RegisterClassW` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `kernel32::GetModuleHandleW`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use kernel32::GetModuleHandleW;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `GetModuleHandleW` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/canvas.rs:34:28
[INFO] [stdout]    |
[INFO] [stdout] 34 |             r: clamp_color((self.r as f32 + other.r as f32)),
[INFO] [stdout]    |                            ^                              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 34 -             r: clamp_color((self.r as f32 + other.r as f32)),
[INFO] [stdout] 34 +             r: clamp_color(self.r as f32 + other.r as f32 ),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/canvas.rs:35:28
[INFO] [stdout]    |
[INFO] [stdout] 35 |             g: clamp_color((self.g as f32 + other.g as f32)),
[INFO] [stdout]    |                            ^                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 35 -             g: clamp_color((self.g as f32 + other.g as f32)),
[INFO] [stdout] 35 +             g: clamp_color(self.g as f32 + other.g as f32 ),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/canvas.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 |             b: clamp_color((self.b as f32 + other.b as f32)),
[INFO] [stdout]    |                            ^                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -             b: clamp_color((self.b as f32 + other.b as f32)),
[INFO] [stdout] 36 +             b: clamp_color(self.b as f32 + other.b as f32 ),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_ISIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/main.rs:11:38
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{AtomicIsize, ATOMIC_ISIZE_INIT, Ordering};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_ISIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/main.rs:86:34
[INFO] [stdout]    |
[INFO] [stdout] 86 | static X_ROTATION: AtomicIsize = ATOMIC_ISIZE_INIT;
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]    |
[INFO] [stdout] 86 - static X_ROTATION: AtomicIsize = ATOMIC_ISIZE_INIT;
[INFO] [stdout] 86 + static X_ROTATION: AtomicIsize = AtomicIsize::new(0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_ISIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/main.rs:87:34
[INFO] [stdout]    |
[INFO] [stdout] 87 | static Y_ROTATION: AtomicIsize = ATOMIC_ISIZE_INIT;
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]    |
[INFO] [stdout] 87 - static Y_ROTATION: AtomicIsize = ATOMIC_ISIZE_INIT;
[INFO] [stdout] 87 + static Y_ROTATION: AtomicIsize = AtomicIsize::new(0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/main.rs:99:41
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut info: BITMAPINFO = mem::uninitialized();
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/main.rs:108:40
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let mut ps: PAINTSTRUCT = mem::uninitialized();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/main.rs:134:37
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let mut message: MSG = mem::uninitialized();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tracer.rs:194:19
[INFO] [stdout]     |
[INFO] [stdout] 194 |     type Target = Shape;
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) 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] 194 |     type Target = dyn Shape;
[INFO] [stdout]     |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tracer.rs:196:36
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn deref<'a>(&'a self) -> &'a (Shape + 'static) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) 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] 196 |     fn deref<'a>(&'a self) -> &'a (dyn Shape + 'static) {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `encode_wide` found for reference `&OsStr` in the current scope
[INFO] [stdout]   --> src/main.rs:32:23
[INFO] [stdout]    |
[INFO] [stdout] 32 |     OsStr::new(value).encode_wide().chain(once(0)).collect()
[INFO] [stdout]    |                       ^^^^^^^^^^^ method not found in `&OsStr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `windows` in `os`
[INFO] [stdout]   --> src/main.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::os::windows::ffi::OsStrExt;
[INFO] [stdout]    |              ^^^^^^^ could not find `windows` in `os`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /rustc/e117153a45c546e883c1f91d82611775fcaeffe0/library/std/src/os/mod.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item is gated here
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /rustc/e117153a45c546e883c1f91d82611775fcaeffe0/library/std/src/os/mod.rs:120:9
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item is gated here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `gdi32::StretchDIBits`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use gdi32::StretchDIBits;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ no `StretchDIBits` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `winapi::c_int`, `winapi::c_void`, `winapi::BITMAPINFO`, `winapi::BITMAPINFOHEADER`, `winapi::BI_RGB`, `winapi::DIB_RGB_COLORS`, `winapi::HDC`, `winapi::HWND`, `winapi::PAINTSTRUCT`, `winapi::SRCCOPY`
[INFO] [stdout]   --> src/main.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 20 | use winapi::{c_int, c_void, BITMAPINFO, BITMAPINFOHEADER, BI_RGB, DIB_RGB_COLORS, HDC, HWND,
[INFO] [stdout]    |              ^^^^^  ^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^  ^^^  ^^^^ no `HWND` in the root
[INFO] [stdout]    |              |      |       |           |                 |       |               |
[INFO] [stdout]    |              |      |       |           |                 |       |               no `HDC` in the root
[INFO] [stdout]    |              |      |       |           |                 |       no `DIB_RGB_COLORS` in the root
[INFO] [stdout]    |              |      |       |           |                 no `BI_RGB` in the root
[INFO] [stdout]    |              |      |       |           no `BITMAPINFOHEADER` in the root
[INFO] [stdout]    |              |      |       no `BITMAPINFO` in the root
[INFO] [stdout]    |              |      no `c_void` in the root
[INFO] [stdout]    |              no `c_int` in the root
[INFO] [stdout] 21 |              PAINTSTRUCT, SRCCOPY};
[INFO] [stdout]    |              ^^^^^^^^^^^  ^^^^^^^ no `SRCCOPY` in the root
[INFO] [stdout]    |              |
[INFO] [stdout]    |              no `PAINTSTRUCT` in the root
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider importing one of these type aliases instead:
[INFO] [stdout]            std::ffi::c_int
[INFO] [stdout]            std::os::raw::c_int
[INFO] [stdout]    = help: consider importing one of these items instead:
[INFO] [stdout]            std::ffi::c_void
[INFO] [stdout]            std::os::raw::c_void
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `winapi::minwindef`
[INFO] [stdout]   --> src/main.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use winapi::minwindef::{LPARAM, LRESULT, UINT, WPARAM};
[INFO] [stdout]    |             ^^^^^^^^^ could not find `minwindef` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `winapi::winuser`
[INFO] [stdout]   --> src/main.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 | use winapi::winuser::{CS_HREDRAW, CS_OWNDC, CS_VREDRAW, CW_USEDEFAULT, MSG, WM_PAINT, WNDCLASSW,
[INFO] [stdout]    |             ^^^^^^^ could not find `winuser` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `user32::BeginPaint`, `user32::CreateWindowExW`, `user32::DefWindowProcW`, `user32::DispatchMessageW`, `user32::EndPaint`, `user32::GetMessageW`, `user32::RegisterClassW`, `user32::TranslateMessage`, `user32::InvalidateRect`
[INFO] [stdout]   --> src/main.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | use user32::{BeginPaint, CreateWindowExW, DefWindowProcW, DispatchMessageW, EndPaint, GetMessageW,
[INFO] [stdout]    |              ^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^ no `GetMessageW` in the root
[INFO] [stdout]    |              |           |                |               |                 |
[INFO] [stdout]    |              |           |                |               |                 no `EndPaint` in the root
[INFO] [stdout]    |              |           |                |               no `DispatchMessageW` in the root
[INFO] [stdout]    |              |           |                no `DefWindowProcW` in the root
[INFO] [stdout]    |              |           no `CreateWindowExW` in the root
[INFO] [stdout]    |              no `BeginPaint` in the root
[INFO] [stdout] 26 |              RegisterClassW, TranslateMessage, InvalidateRect};
[INFO] [stdout]    |              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^ no `InvalidateRect` in the root
[INFO] [stdout]    |              |               |
[INFO] [stdout]    |              |               no `TranslateMessage` in the root
[INFO] [stdout]    |              no `RegisterClassW` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `kernel32::GetModuleHandleW`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use kernel32::GetModuleHandleW;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `GetModuleHandleW` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/canvas.rs:34:28
[INFO] [stdout]    |
[INFO] [stdout] 34 |             r: clamp_color((self.r as f32 + other.r as f32)),
[INFO] [stdout]    |                            ^                              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 34 -             r: clamp_color((self.r as f32 + other.r as f32)),
[INFO] [stdout] 34 +             r: clamp_color(self.r as f32 + other.r as f32 ),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `raytracer` (bin "raytracer" test) due to 8 previous errors; 11 warnings emitted
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/canvas.rs:35:28
[INFO] [stdout]    |
[INFO] [stdout] 35 |             g: clamp_color((self.g as f32 + other.g as f32)),
[INFO] [stdout]    |                            ^                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 35 -             g: clamp_color((self.g as f32 + other.g as f32)),
[INFO] [stdout] 35 +             g: clamp_color(self.g as f32 + other.g as f32 ),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/canvas.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 |             b: clamp_color((self.b as f32 + other.b as f32)),
[INFO] [stdout]    |                            ^                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -             b: clamp_color((self.b as f32 + other.b as f32)),
[INFO] [stdout] 36 +             b: clamp_color(self.b as f32 + other.b as f32 ),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_ISIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/main.rs:11:38
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{AtomicIsize, ATOMIC_ISIZE_INIT, Ordering};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_ISIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/main.rs:86:34
[INFO] [stdout]    |
[INFO] [stdout] 86 | static X_ROTATION: AtomicIsize = ATOMIC_ISIZE_INIT;
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]    |
[INFO] [stdout] 86 - static X_ROTATION: AtomicIsize = ATOMIC_ISIZE_INIT;
[INFO] [stdout] 86 + static X_ROTATION: AtomicIsize = AtomicIsize::new(0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_ISIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/main.rs:87:34
[INFO] [stdout]    |
[INFO] [stdout] 87 | static Y_ROTATION: AtomicIsize = ATOMIC_ISIZE_INIT;
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]    |
[INFO] [stdout] 87 - static Y_ROTATION: AtomicIsize = ATOMIC_ISIZE_INIT;
[INFO] [stdout] 87 + static Y_ROTATION: AtomicIsize = AtomicIsize::new(0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/main.rs:99:41
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut info: BITMAPINFO = mem::uninitialized();
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/main.rs:108:40
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let mut ps: PAINTSTRUCT = mem::uninitialized();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/main.rs:134:37
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let mut message: MSG = mem::uninitialized();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tracer.rs:194:19
[INFO] [stdout]     |
[INFO] [stdout] 194 |     type Target = Shape;
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) 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] 194 |     type Target = dyn Shape;
[INFO] [stdout]     |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/tracer.rs:196:36
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn deref<'a>(&'a self) -> &'a (Shape + 'static) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) 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] 196 |     fn deref<'a>(&'a self) -> &'a (dyn Shape + 'static) {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `encode_wide` found for reference `&OsStr` in the current scope
[INFO] [stdout]   --> src/main.rs:32:23
[INFO] [stdout]    |
[INFO] [stdout] 32 |     OsStr::new(value).encode_wide().chain(once(0)).collect()
[INFO] [stdout]    |                       ^^^^^^^^^^^ method not found in `&OsStr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `raytracer` (bin "raytracer") due to 8 previous errors; 11 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "02579b6b12cf35c9d6bc0b6758718be32159c8c5a6298d3a09a18bc0daad5ce0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "02579b6b12cf35c9d6bc0b6758718be32159c8c5a6298d3a09a18bc0daad5ce0", kill_on_drop: false }`
[INFO] [stdout] 02579b6b12cf35c9d6bc0b6758718be32159c8c5a6298d3a09a18bc0daad5ce0
