[INFO] cloning repository https://github.com/AskoldMakaruk/rust_renderer_2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AskoldMakaruk/rust_renderer_2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAskoldMakaruk%2Frust_renderer_2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAskoldMakaruk%2Frust_renderer_2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6262ec05dc9541f1c88a345b2bb16b93a80e8480
[INFO] checking AskoldMakaruk/rust_renderer_2 against try#438eb4c1a1c3841523d7f672601e8adbe04cff28 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAskoldMakaruk%2Frust_renderer_2" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/AskoldMakaruk/rust_renderer_2
[INFO] finished tweaking git repo https://github.com/AskoldMakaruk/rust_renderer_2
[INFO] tweaked toml for git repo https://github.com/AskoldMakaruk/rust_renderer_2 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AskoldMakaruk/rust_renderer_2 on toolchain 438eb4c1a1c3841523d7f672601e8adbe04cff28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+438eb4c1a1c3841523d7f672601e8adbe04cff28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AskoldMakaruk/rust_renderer_2 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" "+438eb4c1a1c3841523d7f672601e8adbe04cff28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+438eb4c1a1c3841523d7f672601e8adbe04cff28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3dcef584e777c5f807814c5cff856e3594aa40374c4ac0de5303a4644aa25bd1
[INFO] running `Command { std: "docker" "start" "-a" "3dcef584e777c5f807814c5cff856e3594aa40374c4ac0de5303a4644aa25bd1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3dcef584e777c5f807814c5cff856e3594aa40374c4ac0de5303a4644aa25bd1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3dcef584e777c5f807814c5cff856e3594aa40374c4ac0de5303a4644aa25bd1", kill_on_drop: false }`
[INFO] [stdout] 3dcef584e777c5f807814c5cff856e3594aa40374c4ac0de5303a4644aa25bd1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+438eb4c1a1c3841523d7f672601e8adbe04cff28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 40a79c50a9a25520e24a4f87df9c36993b958b1605d172c673f6ce9e2ee5088d
[INFO] running `Command { std: "docker" "start" "-a" "40a79c50a9a25520e24a4f87df9c36993b958b1605d172c673f6ce9e2ee5088d", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.132
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling proc-macro2 v1.0.43
[INFO] [stderr]    Compiling unicode-ident v1.0.3
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]     Checking smallvec v1.9.0
[INFO] [stderr]     Checking dlib v0.5.0
[INFO] [stderr]     Checking once_cell v1.13.1
[INFO] [stderr]     Checking scoped-tls v1.0.0
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]    Compiling x11-dl v2.20.0
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling lock_api v0.4.8
[INFO] [stderr]    Compiling smithay-client-toolkit v0.15.4
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]    Compiling winit v0.26.1
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]    Compiling backtrace v0.3.66
[INFO] [stderr]     Checking gimli v0.26.2
[INFO] [stderr]     Checking miniz_oxide v0.5.3
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking object v0.29.0
[INFO] [stderr]     Checking rustc-demangle v0.1.21
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]     Checking takeable-option v0.5.0
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.6
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.8
[INFO] [stderr]    Compiling glium v0.31.0
[INFO] [stderr]     Checking nix v0.24.2
[INFO] [stderr]     Checking nix v0.22.3
[INFO] [stderr]     Checking memmap2 v0.3.1
[INFO] [stderr]     Checking parking_lot_core v0.8.5
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking mio v0.8.4
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking addr2line v0.17.0
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking wayland-egl v0.29.5
[INFO] [stderr]     Checking calloop v0.9.3
[INFO] [stderr]     Checking glutin v0.28.0
[INFO] [stderr]     Checking pixel-canvas v0.2.3
[INFO] [stderr]     Checking rust-renderer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0369]: binary operation `>` cannot be applied to type `Hit`
[INFO] [stdout]   --> src/main.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 |     if t > 0.0 {
[INFO] [stdout]    |        - ^ --- {float}
[INFO] [stdout]    |        |
[INFO] [stdout]    |        Hit
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialOrd<{float}>` might be missing for `Hit`
[INFO] [stdout]   --> src/math/hit.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Hit {
[INFO] [stdout]    | ^^^^^^^^^^^^^^ must implement `PartialOrd<{float}>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let N = (r.at(t) - Vec3::new(0.0, 0.0, -1.0)).unit_vec();
[INFO] [stdout]    |                    -- ^ expected `f32`, found `Hit`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/math/ray.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn at(&self, t: f32) -> Point {
[INFO] [stdout]    |            ^^        ------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0384]: cannot assign twice to immutable variable `root`
[INFO] [stdout]   --> src/math/sphere.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let root = (-half_b - sqrtd) / a;
[INFO] [stdout]    |             ---- first assignment to `root`
[INFO] [stdout] 26 |         if root < t_min || root > t_max {
[INFO] [stdout] 27 |             root = (-half_b + sqrtd) / a;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot assign twice to immutable variable
[INFO] [stdout]    |
[INFO] [stdout] help: consider making this binding mutable
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut root = (-half_b - sqrtd) / a;
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.objects` which is behind a shared reference
[INFO] [stdout]   --> src/math/hittable_list.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         for obj in self.objects {
[INFO] [stdout]    |                    ^^^^^^^^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    `self.objects` moved due to this implicit call to `.into_iter()`
[INFO] [stdout]    |                    move occurs because `self.objects` has type `Vec<Rc<dyn Hittable>>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `self.objects`
[INFO] [stdout]   --> /rustc/438eb4c1a1c3841523d7f672601e8adbe04cff28/library/core/src/iter/traits/collect.rs:310:18
[INFO] [stdout] help: consider iterating over a slice of the `Vec<Rc<dyn Hittable>>`'s content to avoid moving into the `for` loop
[INFO] [stdout]    |
[INFO] [stdout] 15 |         for obj in &self.objects {
[INFO] [stdout]    |                    +
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 15 |         for obj in self.objects.clone() {
[INFO] [stdout]    |                                ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0381]: used binding `rec` is possibly-uninitialized
[INFO] [stdout]   --> src/math/hittable_list.rs:28:34
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let mut rec: Hit;
[INFO] [stdout]    |             ------- binding declared here but left uninitialized
[INFO] [stdout] ...
[INFO] [stdout] 21 |                     rec = i
[INFO] [stdout]    |                     ------- binding initialized here in some conditions
[INFO] [stdout] ...
[INFO] [stdout] 28 |             true => Option::Some(rec),
[INFO] [stdout]    |                                  ^^^ `rec` used here but it is possibly-uninitialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]   --> src/math/hittable_list.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn clear(mut self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 36 |         self.clear();
[INFO] [stdout]    |         ------------ recursive call site
[INFO] [stdout]    |
[INFO] [stdout]    = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]    = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/math/hittable_list.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn clear(mut self) {
[INFO] [stdout]    |              ----^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0369, E0381, E0384, E0507.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-renderer` (bin "rust-renderer" test) due to 5 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0369]: binary operation `>` cannot be applied to type `Hit`
[INFO] [stdout]   --> src/main.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 |     if t > 0.0 {
[INFO] [stdout]    |        - ^ --- {float}
[INFO] [stdout]    |        |
[INFO] [stdout]    |        Hit
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialOrd<{float}>` might be missing for `Hit`
[INFO] [stdout]   --> src/math/hit.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Hit {
[INFO] [stdout]    | ^^^^^^^^^^^^^^ must implement `PartialOrd<{float}>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/main.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let N = (r.at(t) - Vec3::new(0.0, 0.0, -1.0)).unit_vec();
[INFO] [stdout]    |                    -- ^ expected `f32`, found `Hit`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/math/ray.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn at(&self, t: f32) -> Point {
[INFO] [stdout]    |            ^^        ------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0384]: cannot assign twice to immutable variable `root`
[INFO] [stdout]   --> src/math/sphere.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let root = (-half_b - sqrtd) / a;
[INFO] [stdout]    |             ---- first assignment to `root`
[INFO] [stdout] 26 |         if root < t_min || root > t_max {
[INFO] [stdout] 27 |             root = (-half_b + sqrtd) / a;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot assign twice to immutable variable
[INFO] [stdout]    |
[INFO] [stdout] help: consider making this binding mutable
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut root = (-half_b - sqrtd) / a;
[INFO] [stdout]    |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.objects` which is behind a shared reference
[INFO] [stdout]   --> src/math/hittable_list.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 |         for obj in self.objects {
[INFO] [stdout]    |                    ^^^^^^^^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    `self.objects` moved due to this implicit call to `.into_iter()`
[INFO] [stdout]    |                    move occurs because `self.objects` has type `Vec<Rc<dyn Hittable>>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `self.objects`
[INFO] [stdout]   --> /rustc/438eb4c1a1c3841523d7f672601e8adbe04cff28/library/core/src/iter/traits/collect.rs:310:18
[INFO] [stdout] help: consider iterating over a slice of the `Vec<Rc<dyn Hittable>>`'s content to avoid moving into the `for` loop
[INFO] [stdout]    |
[INFO] [stdout] 15 |         for obj in &self.objects {
[INFO] [stdout]    |                    +
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 15 |         for obj in self.objects.clone() {
[INFO] [stdout]    |                                ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0381]: used binding `rec` is possibly-uninitialized
[INFO] [stdout]   --> src/math/hittable_list.rs:28:34
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let mut rec: Hit;
[INFO] [stdout]    |             ------- binding declared here but left uninitialized
[INFO] [stdout] ...
[INFO] [stdout] 21 |                     rec = i
[INFO] [stdout]    |                     ------- binding initialized here in some conditions
[INFO] [stdout] ...
[INFO] [stdout] 28 |             true => Option::Some(rec),
[INFO] [stdout]    |                                  ^^^ `rec` used here but it is possibly-uninitialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]   --> src/math/hittable_list.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn clear(mut self) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 36 |         self.clear();
[INFO] [stdout]    |         ------------ recursive call site
[INFO] [stdout]    |
[INFO] [stdout]    = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]    = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/math/hittable_list.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn clear(mut self) {
[INFO] [stdout]    |              ----^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0369, E0381, E0384, E0507.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-renderer` (bin "rust-renderer") due to 5 previous errors; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "40a79c50a9a25520e24a4f87df9c36993b958b1605d172c673f6ce9e2ee5088d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "40a79c50a9a25520e24a4f87df9c36993b958b1605d172c673f6ce9e2ee5088d", kill_on_drop: false }`
[INFO] [stdout] 40a79c50a9a25520e24a4f87df9c36993b958b1605d172c673f6ce9e2ee5088d
