[INFO] cloning repository https://github.com/txus/rye
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/txus/rye" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftxus%2Frye", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftxus%2Frye'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f8191df42acb7305c331bb6fa520a147bfae9e77
[INFO] testing txus/rye against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftxus%2Frye" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/txus/rye
[INFO] finished tweaking git repo https://github.com/txus/rye
[INFO] tweaked toml for git repo https://github.com/txus/rye written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/txus/rye on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/txus/rye 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded yaml-rust v0.4.3
[INFO] [stderr]   Downloaded indextree v3.1.0
[INFO] [stderr]   Downloaded unicode-segmentation v1.2.1
[INFO] [stderr]   Downloaded structopt v0.2.15
[INFO] [stderr]   Downloaded libc v0.2.50
[INFO] [stderr]   Downloaded structopt-derive v0.2.15
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cb659700a5a8ce0cce1069856809681bca15c2cb21c5211067c89352f982d4da
[INFO] running `Command { std: "docker" "start" "-a" "cb659700a5a8ce0cce1069856809681bca15c2cb21c5211067c89352f982d4da", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cb659700a5a8ce0cce1069856809681bca15c2cb21c5211067c89352f982d4da", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cb659700a5a8ce0cce1069856809681bca15c2cb21c5211067c89352f982d4da", kill_on_drop: false }`
[INFO] [stdout] cb659700a5a8ce0cce1069856809681bca15c2cb21c5211067c89352f982d4da
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 94bef328b22e12c68058295a8f3f01d8c89119cd39e24f177373f3b3da137ebf
[INFO] running `Command { std: "docker" "start" "-a" "94bef328b22e12c68058295a8f3f01d8c89119cd39e24f177373f3b3da137ebf", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.2
[INFO] [stderr]    Compiling libc v0.2.50
[INFO] [stderr]    Compiling proc-macro2 v0.4.27
[INFO] [stderr]    Compiling rand_core v0.4.0
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]    Compiling syn v0.15.29
[INFO] [stderr]    Compiling cc v1.0.32
[INFO] [stderr]    Compiling failure_derive v0.1.5
[INFO] [stderr]    Compiling unicode-width v0.1.5
[INFO] [stderr]    Compiling unicode-segmentation v1.2.1
[INFO] [stderr]    Compiling cfg-if v0.1.7
[INFO] [stderr]    Compiling rustc-demangle v0.1.13
[INFO] [stderr]    Compiling vec_map v0.8.1
[INFO] [stderr]    Compiling bitflags v1.0.4
[INFO] [stderr]    Compiling strsim v0.7.0
[INFO] [stderr]    Compiling ansi_term v0.11.0
[INFO] [stderr]    Compiling textwrap v0.10.0
[INFO] [stderr]    Compiling linked-hash-map v0.5.2
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling rand_jitter v0.1.3
[INFO] [stderr]    Compiling yaml-rust v0.4.3
[INFO] [stderr]    Compiling heck v0.3.1
[INFO] [stderr]    Compiling backtrace v0.3.14
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling rand_isaac v0.1.1
[INFO] [stderr]    Compiling rand_hc v0.1.0
[INFO] [stderr]    Compiling rand_xorshift v0.1.1
[INFO] [stderr]    Compiling atty v0.2.11
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]    Compiling clap v2.32.0
[INFO] [stderr]    Compiling quote v0.6.11
[INFO] [stderr]    Compiling backtrace-sys v0.1.28
[INFO] [stderr]    Compiling synstructure v0.10.1
[INFO] [stderr]    Compiling structopt-derive v0.2.15
[INFO] [stderr]    Compiling failure v0.1.5
[INFO] [stderr]    Compiling structopt v0.2.15
[INFO] [stderr]    Compiling indextree v3.1.0
[INFO] [stderr]    Compiling rye v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/materials.rs:19:29
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub pattern: Option<Box<Pattern>>,
[INFO] [stdout]    |                             ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub pattern: Option<Box<dyn Pattern>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/world.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub lights: Vec<Box<Light>>,
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub lights: Vec<Box<dyn Light>>,
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/registry.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     arena: Arena<Box<Shape>>
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     arena: Arena<Box<dyn Shape>>
[INFO] [stdout]   |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/shapes.rs:169:30
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl std::cmp::PartialEq for Shape {
[INFO] [stdout]     |                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl std::cmp::PartialEq for dyn Shape {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/patterns.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn color_at_object(&self, s: &Box<Shape>, p: &Point) -> Color {
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn color_at_object(&self, s: &Box<dyn Shape>, p: &Point) -> Color {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/shapes.rs:170:26
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn eq(&self, other: &Shape) -> bool {
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn eq(&self, other: &dyn Shape) -> bool {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/shapes.rs:875:45
[INFO] [stdout]     |
[INFO] [stdout] 875 | pub fn precompute_bounds(children: Vec<&Box<Shape>>) -> Bounds {
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 875 | pub fn precompute_bounds(children: Vec<&Box<dyn Shape>>) -> Bounds {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:61:42
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn parse_light(doc: &Yaml) -> Result<Box<Light>, Error> {
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn parse_light(doc: &Yaml) -> Result<Box<dyn Light>, Error> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:86:44
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn parse_pattern(doc: &Yaml) -> Result<Box<Pattern>, Error> {
[INFO] [stdout]    |                                            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn parse_pattern(doc: &Yaml) -> Result<Box<dyn Pattern>, Error> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/obj_parser.rs:22:83
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn fan_triangulation(faces: &[(Point, Option<Point>, Option<Vector>)]) -> Vec<Box<Shape>> {
[INFO] [stdout]    |                                                                                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn fan_triangulation(faces: &[(Point, Option<Point>, Option<Vector>)]) -> Vec<Box<dyn Shape>> {
[INFO] [stdout]    |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:111:48
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn effective_color(&self, object: &Box<Shape>, point: &Point) -> Color {
[INFO] [stdout]     |                                                ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn effective_color(&self, object: &Box<dyn Shape>, point: &Point) -> Color {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:121:22
[INFO] [stdout]     |
[INFO] [stdout] 121 |         object: &Box<Shape>,
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 121 |         object: &Box<dyn Shape>,
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:122:23
[INFO] [stdout]     |
[INFO] [stdout] 122 |         lights: &[Box<Light>],
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 122 |         lights: &[Box<dyn Light>],
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:23:47
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn register(&mut self, mut shape: Box<Shape>) -> NodeId {
[INFO] [stdout]    |                                               ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn register(&mut self, mut shape: Box<dyn Shape>) -> NodeId {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:30:47
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn get<'a>(&self, id: NodeId) -> &Box<Shape> {
[INFO] [stdout]    |                                               ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn get<'a>(&self, id: NodeId) -> &Box<dyn Shape> {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:38:59
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn parent(&self, child_id: NodeId) -> Option<&Box<Shape>> {
[INFO] [stdout]    |                                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn parent(&self, child_id: NodeId) -> Option<&Box<dyn Shape>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:46:58
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn children(&self, group_id: NodeId) -> Vec<&Box<Shape>> {
[INFO] [stdout]    |                                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn children(&self, group_id: NodeId) -> Vec<&Box<dyn Shape>> {
[INFO] [stdout]    |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:63:35
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn all(&self) -> Vec<&Box<Shape>> {
[INFO] [stdout]    |                                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn all(&self) -> Vec<&Box<dyn Shape>> {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:87:55
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn get_mut(&mut self, id: NodeId) -> &mut Box<Shape> {
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn get_mut(&mut self, id: NodeId) -> &mut Box<dyn Shape> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/world.rs:42:25
[INFO] [stdout]    |
[INFO] [stdout] 42 |             let s1: Box<Shape> = Box::from(Self::default_sphere1());
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 |             let s1: Box<dyn Shape> = Box::from(Self::default_sphere1());
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/world.rs:43:25
[INFO] [stdout]    |
[INFO] [stdout] 43 |             let s2: Box<Shape> = Box::from(Self::default_sphere2());
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |             let s2: Box<dyn Shape> = Box::from(Self::default_sphere2());
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parser.rs:332:29
[INFO] [stdout]     |
[INFO] [stdout] 332 |     let mut lights: Vec<Box<Light>> = vec![];
[INFO] [stdout]     |                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 332 |     let mut lights: Vec<Box<dyn Light>> = vec![];
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/obj_parser.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let mut triangles: Vec<Box<Shape>> = vec![];
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let mut triangles: Vec<Box<dyn Shape>> = vec![];
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/obj_parser.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let tri: Box<Shape> = if let (Some(na), Some(nb), Some(nc)) = (mna, mnb, mnc) {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let tri: Box<dyn Shape> = if let (Some(na), Some(nb), Some(nc)) = (mna, mnb, mnc) {
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:24:44
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let write = &mut shape as *mut Box<Shape>;
[INFO] [stdout]    |                                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let write = &mut shape as *mut Box<dyn Shape>;
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `red`, `green`, and `blue` are never used
[INFO] [stdout]   --> src/color.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Color {
[INFO] [stdout]    | ---------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn red() -> Color {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn green() -> Color {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn blue() -> 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: method `intensity` is never used
[INFO] [stdout]   --> src/light.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Light {
[INFO] [stdout]    |           ----- method in this trait
[INFO] [stdout] 13 |     fn intensity(&self) -> &Color;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `shearing` is never used
[INFO] [stdout]   --> src/linear.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Matrix4 {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn shearing(xy: f32, xz: f32, yx: f32, yz: f32, zx: f32, zy: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_transform` is never used
[INFO] [stdout]  --> src/patterns.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Pattern: Send + Sync {
[INFO] [stdout]   |           ------- method in this trait
[INFO] [stdout] 6 |     fn transform(&self) -> &Matrix4;
[INFO] [stdout] 7 |     fn set_transform(&mut self, t: Matrix4);
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/patterns.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl StripePattern {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(a: Color, b: Color) -> StripePattern {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestPattern` is never constructed
[INFO] [stdout]   --> src/patterns.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct TestPattern {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/patterns.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl TestPattern {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 57 |     pub fn new() -> TestPattern {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/patterns.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl GradientPattern {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 86 |     pub fn new(a: Color, b: Color) -> GradientPattern {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/patterns.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl RingPattern {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 119 |     pub fn new(a: Color, b: Color) -> RingPattern {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/patterns.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl CheckerPattern {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] 156 |     pub fn new(a: Color, b: Color) -> CheckerPattern {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `t`, `point`, and `inside` are never read
[INFO] [stdout]   --> src/rays.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Precomputation {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 32 |     pub t: f32,
[INFO] [stdout]    |         ^
[INFO] [stdout] 33 |     pub object: NodeId,
[INFO] [stdout] 34 |     pub point: Point,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub inside: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `glass` is never used
[INFO] [stdout]    --> src/shapes.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | impl Sphere {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn glass() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `open` and `closed` are never used
[INFO] [stdout]    --> src/shapes.rs:531:12
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl Cylinder {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 531 |     pub fn open(minimum: f32, maximum: f32) -> Cylinder {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 538 |     pub fn closed(minimum: f32, maximum: f32) -> Cylinder {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `open` and `closed` are never used
[INFO] [stdout]    --> src/shapes.rs:705:12
[INFO] [stdout]     |
[INFO] [stdout] 683 | impl Cone {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 705 |     pub fn open(minimum: f32, maximum: f32) -> Cone {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 713 |     pub fn closed(minimum: f32, maximum: f32) -> Cone {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `b` and `c` are never read
[INFO] [stdout]    --> src/shapes.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 945 | pub struct Triangle {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 948 |     b: Point,
[INFO] [stdout]     |     ^
[INFO] [stdout] 949 |     c: Point,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `b` and `c` are never read
[INFO] [stdout]     --> src/shapes.rs:1069:5
[INFO] [stdout]      |
[INFO] [stdout] 1066 | pub struct SmoothTriangle {
[INFO] [stdout]      |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1069 |     b: Point,
[INFO] [stdout]      |     ^
[INFO] [stdout] 1070 |     c: Point,
[INFO] [stdout]      |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `default_sphere1`, `default_sphere2`, and `default` are never used
[INFO] [stdout]   --> src/world.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl World {
[INFO] [stdout]    | ---------- associated functions in this implementation
[INFO] [stdout] 20 |     pub fn default_sphere1() -> Sphere {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn default_sphere2() -> Sphere {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn default() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParseError` is never constructed
[INFO] [stdout]   --> src/parser.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ParseError(String);
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/parser.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Parse(String),
[INFO] [stdout]    |     ----- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 23 -     Parse(String),
[INFO] [stdout] 23 +     Parse(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/parser.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 |     File(String),
[INFO] [stdout]    |     ---- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 24 -     File(String),
[INFO] [stdout] 24 +     File(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/obj_parser.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 |     File(String),
[INFO] [stdout]    |     ---- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 11 -     File(String),
[INFO] [stdout] 11 +     File(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ignored_count`, `triangles_count`, and `vertices` are never read
[INFO] [stdout]   --> src/obj_parser.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ParseResult {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 15 |     pub ignored_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     pub triangles_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     pub vertices: Vec<Point>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `id` is never used
[INFO] [stdout]  --> src/registry.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn id() -> NodeId {
[INFO] [stdout]   |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `id_from` is never used
[INFO] [stdout]   --> src/registry.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn id_from(id: usize) -> NodeId {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `all` is never used
[INFO] [stdout]   --> src/registry.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Registry {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn all(&self) -> Vec<&Box<Shape>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstantJitter` is never constructed
[INFO] [stdout]   --> src/jitter.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ConstantJitter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/jitter.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl ConstantJitter {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(value: f32) -> ConstantJitter {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&rays::Intersection` instead of cloning the inner type
[INFO] [stdout]   --> src/rays.rs:72:31
[INFO] [stdout]    |
[INFO] [stdout] 72 |             Some(i) => Some(*i.clone()),
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.67s
[INFO] running `Command { std: "docker" "inspect" "94bef328b22e12c68058295a8f3f01d8c89119cd39e24f177373f3b3da137ebf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "94bef328b22e12c68058295a8f3f01d8c89119cd39e24f177373f3b3da137ebf", kill_on_drop: false }`
[INFO] [stdout] 94bef328b22e12c68058295a8f3f01d8c89119cd39e24f177373f3b3da137ebf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3ef0beeacdfc563a1a264989e018a959bf61e7f0e120eef2ecc452956fbe0be9
[INFO] running `Command { std: "docker" "start" "-a" "3ef0beeacdfc563a1a264989e018a959bf61e7f0e120eef2ecc452956fbe0be9", kill_on_drop: false }`
[INFO] [stderr]    Compiling rye v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PointLight`
[INFO] [stdout]    --> src/materials.rs:151:21
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let light = PointLight::new(Point::new(0.0, 0.0, -10.0), Color::white());
[INFO] [stdout]     |                     ^^^^^^^^^^ use of undeclared type `PointLight`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 139 +     use crate::light::PointLight;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PointLight`
[INFO] [stdout]    --> src/materials.rs:163:21
[INFO] [stdout]     |
[INFO] [stdout] 163 |         let light = PointLight::new(Point::new(0.0, 0.0, -10.0), Color::white());
[INFO] [stdout]     |                     ^^^^^^^^^^ use of undeclared type `PointLight`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 139 +     use crate::light::PointLight;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PointLight`
[INFO] [stdout]    --> src/materials.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let light = PointLight::new(Point::new(0.0, 10.0, -10.0), Color::white());
[INFO] [stdout]     |                     ^^^^^^^^^^ use of undeclared type `PointLight`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 139 +     use crate::light::PointLight;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PointLight`
[INFO] [stdout]    --> src/materials.rs:187:21
[INFO] [stdout]     |
[INFO] [stdout] 187 |         let light = PointLight::new(Point::new(0.0, 10.0, -10.0), Color::white());
[INFO] [stdout]     |                     ^^^^^^^^^^ use of undeclared type `PointLight`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 139 +     use crate::light::PointLight;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PointLight`
[INFO] [stdout]    --> src/materials.rs:199:21
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let light = PointLight::new(Point::new(0.0, 0.0, 10.0), Color::white());
[INFO] [stdout]     |                     ^^^^^^^^^^ use of undeclared type `PointLight`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 139 +     use crate::light::PointLight;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PointLight`
[INFO] [stdout]    --> src/materials.rs:211:21
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let light = PointLight::new(Point::new(0.0, 0.0, -10.0), Color::white());
[INFO] [stdout]     |                     ^^^^^^^^^^ use of undeclared type `PointLight`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 139 +     use crate::light::PointLight;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `PointLight`
[INFO] [stdout]    --> src/materials.rs:229:21
[INFO] [stdout]     |
[INFO] [stdout] 229 |         let light = PointLight::new(Point::new(0.0, 0.0, 10.0), Color::white());
[INFO] [stdout]     |                     ^^^^^^^^^^ use of undeclared type `PointLight`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 139 +     use crate::light::PointLight;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/materials.rs:19:29
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub pattern: Option<Box<Pattern>>,
[INFO] [stdout]    |                             ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub pattern: Option<Box<dyn Pattern>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/world.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub lights: Vec<Box<Light>>,
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub lights: Vec<Box<dyn Light>>,
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/registry.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     arena: Arena<Box<Shape>>
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     arena: Arena<Box<dyn Shape>>
[INFO] [stdout]   |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/shapes.rs:169:30
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl std::cmp::PartialEq for Shape {
[INFO] [stdout]     |                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl std::cmp::PartialEq for dyn Shape {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/patterns.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn color_at_object(&self, s: &Box<Shape>, p: &Point) -> Color {
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn color_at_object(&self, s: &Box<dyn Shape>, p: &Point) -> Color {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/shapes.rs:170:26
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn eq(&self, other: &Shape) -> bool {
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn eq(&self, other: &dyn Shape) -> bool {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/shapes.rs:875:45
[INFO] [stdout]     |
[INFO] [stdout] 875 | pub fn precompute_bounds(children: Vec<&Box<Shape>>) -> Bounds {
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 875 | pub fn precompute_bounds(children: Vec<&Box<dyn Shape>>) -> Bounds {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:61:42
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn parse_light(doc: &Yaml) -> Result<Box<Light>, Error> {
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn parse_light(doc: &Yaml) -> Result<Box<dyn Light>, Error> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:86:44
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn parse_pattern(doc: &Yaml) -> Result<Box<Pattern>, Error> {
[INFO] [stdout]    |                                            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn parse_pattern(doc: &Yaml) -> Result<Box<dyn Pattern>, Error> {
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/obj_parser.rs:22:83
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn fan_triangulation(faces: &[(Point, Option<Point>, Option<Vector>)]) -> Vec<Box<Shape>> {
[INFO] [stdout]    |                                                                                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn fan_triangulation(faces: &[(Point, Option<Point>, Option<Vector>)]) -> Vec<Box<dyn Shape>> {
[INFO] [stdout]    |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:111:48
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn effective_color(&self, object: &Box<Shape>, point: &Point) -> Color {
[INFO] [stdout]     |                                                ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn effective_color(&self, object: &Box<dyn Shape>, point: &Point) -> Color {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:121:22
[INFO] [stdout]     |
[INFO] [stdout] 121 |         object: &Box<Shape>,
[INFO] [stdout]     |                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 121 |         object: &Box<dyn Shape>,
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:122:23
[INFO] [stdout]     |
[INFO] [stdout] 122 |         lights: &[Box<Light>],
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 122 |         lights: &[Box<dyn Light>],
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:23:47
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn register(&mut self, mut shape: Box<Shape>) -> NodeId {
[INFO] [stdout]    |                                               ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn register(&mut self, mut shape: Box<dyn Shape>) -> NodeId {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:30:47
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn get<'a>(&self, id: NodeId) -> &Box<Shape> {
[INFO] [stdout]    |                                               ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn get<'a>(&self, id: NodeId) -> &Box<dyn Shape> {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:38:59
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn parent(&self, child_id: NodeId) -> Option<&Box<Shape>> {
[INFO] [stdout]    |                                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn parent(&self, child_id: NodeId) -> Option<&Box<dyn Shape>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:46:58
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn children(&self, group_id: NodeId) -> Vec<&Box<Shape>> {
[INFO] [stdout]    |                                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn children(&self, group_id: NodeId) -> Vec<&Box<dyn Shape>> {
[INFO] [stdout]    |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:63:35
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn all(&self) -> Vec<&Box<Shape>> {
[INFO] [stdout]    |                                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn all(&self) -> Vec<&Box<dyn Shape>> {
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:87:55
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn get_mut(&mut self, id: NodeId) -> &mut Box<Shape> {
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn get_mut(&mut self, id: NodeId) -> &mut Box<dyn Shape> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `light_source` on type `world::World`
[INFO] [stdout]    --> src/light.rs:117:24
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let light = &w.light_source;
[INFO] [stdout]     |                        ^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `registry`, `lights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/light.rs:151:45
[INFO] [stdout]     |
[INFO] [stdout] 151 |             assert_eq!(light.point_on_light(jitter, *u, *v), *result);
[INFO] [stdout]     |                              -------------- ^^^^^^ expected `&mut _`, found `ConstantJitter`
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut _`
[INFO] [stdout]                           found struct `ConstantJitter`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/light.rs:95:8
[INFO] [stdout]     |
[INFO] [stdout]  95 |     fn point_on_light<I: Iterator<Item=f32>>(&self, jitter: &mut I, u: usize, v: usize) -> Point {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^                               --------------
[INFO] [stdout] help: consider mutably borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 151 |             assert_eq!(light.point_on_light(&mut jitter, *u, *v), *result);
[INFO] [stdout]     |                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 4 arguments but 2 arguments were supplied
[INFO] [stdout]    --> src/light.rs:172:30
[INFO] [stdout]     |
[INFO] [stdout] 172 |             assert_eq!(light.intensity_at(point, &w), *result);
[INFO] [stdout]     |                              ^^^^^^^^^^^^-----------
[INFO] [stdout]     |                                          ||
[INFO] [stdout]     |                                          |expected `&Color`, found `&Point`
[INFO] [stdout]     |                                          two arguments of type `&Precomputation` and `&materials::Material` are missing
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&color::Color`
[INFO] [stdout]                found reference `&linear::Point`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/light.rs:14:8
[INFO] [stdout]     |
[INFO] [stdout]  14 |     fn intensity_at(&self, color: &Color, comps: &Precomputation, mat: &Material, w: &World) -> Color;
[INFO] [stdout]     |        ^^^^^^^^^^^^        -----          -----                   ---
[INFO] [stdout] help: provide the arguments
[INFO] [stdout]     |
[INFO] [stdout] 172 -             assert_eq!(light.intensity_at(point, &w), *result);
[INFO] [stdout] 172 +             assert_eq!(light.intensity_at(/* &color::Color */, /* &Precomputation */, /* &materials::Material */, &w), *result);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/light.rs:172:55
[INFO] [stdout]     |
[INFO] [stdout] 172 |             assert_eq!(light.intensity_at(point, &w), *result);
[INFO] [stdout]     |                                                       ^^^^^^^ expected `Color`, found `f32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:147:20
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 4 arguments but 6 arguments were supplied
[INFO] [stdout]    --> src/materials.rs:152:26
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let result = mat.lighting(&s, &light, &position, &eye, &normal, 1.0);
[INFO] [stdout]     |                          ^^^^^^^^             ---------  ----  -------  --- unexpected argument #6 of type `{float}`
[INFO] [stdout]     |                                               |          |     |
[INFO] [stdout]     |                                               |          |     unexpected argument #5 of type `&linear::Vector`
[INFO] [stdout]     |                                               |          expected `&World`, found `&Vector`
[INFO] [stdout]     |                                               expected `&Precomputation`, found `&Point`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Precomputation`
[INFO] [stdout]                found reference `&linear::Point`
[INFO] [stdout]     = note: expected reference `&world::World`
[INFO] [stdout]                found reference `&linear::Vector`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/materials.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn lighting(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         comps: &Precomputation,
[INFO] [stdout]     |         ----------------------
[INFO] [stdout] 124 |         world: &World,
[INFO] [stdout]     |         -------------
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 152 -         let result = mat.lighting(&s, &light, &position, &eye, &normal, 1.0);
[INFO] [stdout] 152 +         let result = mat.lighting(&s, &light, /* &Precomputation */, /* &world::World */);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:159:20
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 4 arguments but 6 arguments were supplied
[INFO] [stdout]    --> src/materials.rs:164:26
[INFO] [stdout]     |
[INFO] [stdout] 164 |         let result = mat.lighting(&s, &light, &position, &eye, &normal, 1.0);
[INFO] [stdout]     |                          ^^^^^^^^             ---------  ----  -------  --- unexpected argument #6 of type `{float}`
[INFO] [stdout]     |                                               |          |     |
[INFO] [stdout]     |                                               |          |     unexpected argument #5 of type `&linear::Vector`
[INFO] [stdout]     |                                               |          expected `&World`, found `&Vector`
[INFO] [stdout]     |                                               expected `&Precomputation`, found `&Point`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Precomputation`
[INFO] [stdout]                found reference `&linear::Point`
[INFO] [stdout]     = note: expected reference `&world::World`
[INFO] [stdout]                found reference `&linear::Vector`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/materials.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn lighting(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         comps: &Precomputation,
[INFO] [stdout]     |         ----------------------
[INFO] [stdout] 124 |         world: &World,
[INFO] [stdout]     |         -------------
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 164 -         let result = mat.lighting(&s, &light, &position, &eye, &normal, 1.0);
[INFO] [stdout] 164 +         let result = mat.lighting(&s, &light, /* &Precomputation */, /* &world::World */);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:171:20
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 4 arguments but 6 arguments were supplied
[INFO] [stdout]    --> src/materials.rs:176:26
[INFO] [stdout]     |
[INFO] [stdout] 176 |         let result = mat.lighting(&s, &light, &position, &eye, &normal, 1.0);
[INFO] [stdout]     |                          ^^^^^^^^             ---------  ----  -------  --- unexpected argument #6 of type `{float}`
[INFO] [stdout]     |                                               |          |     |
[INFO] [stdout]     |                                               |          |     unexpected argument #5 of type `&linear::Vector`
[INFO] [stdout]     |                                               |          expected `&World`, found `&Vector`
[INFO] [stdout]     |                                               expected `&Precomputation`, found `&Point`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Precomputation`
[INFO] [stdout]                found reference `&linear::Point`
[INFO] [stdout]     = note: expected reference `&world::World`
[INFO] [stdout]                found reference `&linear::Vector`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/materials.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn lighting(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         comps: &Precomputation,
[INFO] [stdout]     |         ----------------------
[INFO] [stdout] 124 |         world: &World,
[INFO] [stdout]     |         -------------
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 176 -         let result = mat.lighting(&s, &light, &position, &eye, &normal, 1.0);
[INFO] [stdout] 176 +         let result = mat.lighting(&s, &light, /* &Precomputation */, /* &world::World */);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:183:20
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 4 arguments but 6 arguments were supplied
[INFO] [stdout]    --> src/materials.rs:188:26
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let result = mat.lighting(&s, &light, &position, &eye, &normal, 1.0);
[INFO] [stdout]     |                          ^^^^^^^^             ---------  ----  -------  --- unexpected argument #6 of type `{float}`
[INFO] [stdout]     |                                               |          |     |
[INFO] [stdout]     |                                               |          |     unexpected argument #5 of type `&linear::Vector`
[INFO] [stdout]     |                                               |          expected `&World`, found `&Vector`
[INFO] [stdout]     |                                               expected `&Precomputation`, found `&Point`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Precomputation`
[INFO] [stdout]                found reference `&linear::Point`
[INFO] [stdout]     = note: expected reference `&world::World`
[INFO] [stdout]                found reference `&linear::Vector`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/materials.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn lighting(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         comps: &Precomputation,
[INFO] [stdout]     |         ----------------------
[INFO] [stdout] 124 |         world: &World,
[INFO] [stdout]     |         -------------
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 188 -         let result = mat.lighting(&s, &light, &position, &eye, &normal, 1.0);
[INFO] [stdout] 188 +         let result = mat.lighting(&s, &light, /* &Precomputation */, /* &world::World */);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:195:20
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 4 arguments but 6 arguments were supplied
[INFO] [stdout]    --> src/materials.rs:200:26
[INFO] [stdout]     |
[INFO] [stdout] 200 |         let result = mat.lighting(&s, &light, &position, &eye, &normal, 1.0);
[INFO] [stdout]     |                          ^^^^^^^^             ---------  ----  -------  --- unexpected argument #6 of type `{float}`
[INFO] [stdout]     |                                               |          |     |
[INFO] [stdout]     |                                               |          |     unexpected argument #5 of type `&linear::Vector`
[INFO] [stdout]     |                                               |          expected `&World`, found `&Vector`
[INFO] [stdout]     |                                               expected `&Precomputation`, found `&Point`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Precomputation`
[INFO] [stdout]                found reference `&linear::Point`
[INFO] [stdout]     = note: expected reference `&world::World`
[INFO] [stdout]                found reference `&linear::Vector`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/materials.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn lighting(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         comps: &Precomputation,
[INFO] [stdout]     |         ----------------------
[INFO] [stdout] 124 |         world: &World,
[INFO] [stdout]     |         -------------
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 200 -         let result = mat.lighting(&s, &light, &position, &eye, &normal, 1.0);
[INFO] [stdout] 200 +         let result = mat.lighting(&s, &light, /* &Precomputation */, /* &world::World */);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:207:20
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 4 arguments but 6 arguments were supplied
[INFO] [stdout]    --> src/materials.rs:212:26
[INFO] [stdout]     |
[INFO] [stdout] 212 |         let result = mat.lighting(&s, &light, &position, &eye, &normal, 0.0);
[INFO] [stdout]     |                          ^^^^^^^^             ---------  ----  -------  --- unexpected argument #6 of type `{float}`
[INFO] [stdout]     |                                               |          |     |
[INFO] [stdout]     |                                               |          |     unexpected argument #5 of type `&linear::Vector`
[INFO] [stdout]     |                                               |          expected `&World`, found `&Vector`
[INFO] [stdout]     |                                               expected `&Precomputation`, found `&Point`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Precomputation`
[INFO] [stdout]                found reference `&linear::Point`
[INFO] [stdout]     = note: expected reference `&world::World`
[INFO] [stdout]                found reference `&linear::Vector`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/materials.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn lighting(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         comps: &Precomputation,
[INFO] [stdout]     |         ----------------------
[INFO] [stdout] 124 |         world: &World,
[INFO] [stdout]     |         -------------
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 212 -         let result = mat.lighting(&s, &light, &position, &eye, &normal, 0.0);
[INFO] [stdout] 212 +         let result = mat.lighting(&s, &light, /* &Precomputation */, /* &world::World */);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/materials.rs:218:20
[INFO] [stdout]     |
[INFO] [stdout] 218 |         let s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 218 |         let s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 4 arguments but 6 arguments were supplied
[INFO] [stdout]    --> src/materials.rs:230:22
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let c1 = mat.lighting(&s, &light, &Point::new(0.9, 0.0, 0.0), &eye, &normal, 1.0);
[INFO] [stdout]     |                      ^^^^^^^^             --------------------------  ----  -------  --- unexpected argument #6 of type `{float}`
[INFO] [stdout]     |                                           |                           |     |
[INFO] [stdout]     |                                           |                           |     unexpected argument #5 of type `&linear::Vector`
[INFO] [stdout]     |                                           |                           expected `&World`, found `&Vector`
[INFO] [stdout]     |                                           expected `&Precomputation`, found `&Point`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Precomputation`
[INFO] [stdout]                found reference `&linear::Point`
[INFO] [stdout]     = note: expected reference `&world::World`
[INFO] [stdout]                found reference `&linear::Vector`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/materials.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn lighting(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         comps: &Precomputation,
[INFO] [stdout]     |         ----------------------
[INFO] [stdout] 124 |         world: &World,
[INFO] [stdout]     |         -------------
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 230 -         let c1 = mat.lighting(&s, &light, &Point::new(0.9, 0.0, 0.0), &eye, &normal, 1.0);
[INFO] [stdout] 230 +         let c1 = mat.lighting(&s, &light, /* &Precomputation */, /* &world::World */);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 4 arguments but 6 arguments were supplied
[INFO] [stdout]    --> src/materials.rs:231:22
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let c2 = mat.lighting(&s, &light, &Point::new(1.1, 0.0, 0.0), &eye, &normal, 1.0);
[INFO] [stdout]     |                      ^^^^^^^^             --------------------------  ----  -------  --- unexpected argument #6 of type `{float}`
[INFO] [stdout]     |                                           |                           |     |
[INFO] [stdout]     |                                           |                           |     unexpected argument #5 of type `&linear::Vector`
[INFO] [stdout]     |                                           |                           expected `&World`, found `&Vector`
[INFO] [stdout]     |                                           expected `&Precomputation`, found `&Point`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&Precomputation`
[INFO] [stdout]                found reference `&linear::Point`
[INFO] [stdout]     = note: expected reference `&world::World`
[INFO] [stdout]                found reference `&linear::Vector`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/materials.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn lighting(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         comps: &Precomputation,
[INFO] [stdout]     |         ----------------------
[INFO] [stdout] 124 |         world: &World,
[INFO] [stdout]     |         -------------
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 231 -         let c2 = mat.lighting(&s, &light, &Point::new(1.1, 0.0, 0.0), &eye, &normal, 1.0);
[INFO] [stdout] 231 +         let c2 = mat.lighting(&s, &light, /* &Precomputation */, /* &world::World */);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/patterns.rs:228:28
[INFO] [stdout]     |
[INFO] [stdout] 228 |             let mut s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 228 |             let mut s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/patterns.rs:237:24
[INFO] [stdout]     |
[INFO] [stdout] 237 |             let s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 237 |             let s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/patterns.rs:246:28
[INFO] [stdout]     |
[INFO] [stdout] 246 |             let mut s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 246 |             let mut s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/world.rs:42:25
[INFO] [stdout]    |
[INFO] [stdout] 42 |             let s1: Box<Shape> = Box::from(Self::default_sphere1());
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 |             let s1: Box<dyn Shape> = Box::from(Self::default_sphere1());
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/world.rs:43:25
[INFO] [stdout]    |
[INFO] [stdout] 43 |             let s2: Box<Shape> = Box::from(Self::default_sphere2());
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |             let s2: Box<dyn Shape> = Box::from(Self::default_sphere2());
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `light_source` on type `world::World`
[INFO] [stdout]    --> src/world.rs:225:11
[INFO] [stdout]     |
[INFO] [stdout] 225 |         w.light_source = PointLight::new(Point::new(0.0, 0.25, 0.0), Color::white());
[INFO] [stdout]     |           ^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `registry`, `lights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `light_source` on type `RefMut<'_, world::World>`
[INFO] [stdout]    --> src/world.rs:362:19
[INFO] [stdout]     |
[INFO] [stdout] 362 |             world.light_source = PointLight::new(Point::origin(), Color::white());
[INFO] [stdout]     |                   ^^^^^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `registry`, `lights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parser.rs:332:29
[INFO] [stdout]     |
[INFO] [stdout] 332 |     let mut lights: Vec<Box<Light>> = vec![];
[INFO] [stdout]     |                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 332 |     let mut lights: Vec<Box<dyn Light>> = vec![];
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/obj_parser.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let mut triangles: Vec<Box<Shape>> = vec![];
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let mut triangles: Vec<Box<dyn Shape>> = vec![];
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/obj_parser.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let tri: Box<Shape> = if let (Some(na), Some(nb), Some(nc)) = (mna, mnb, mnc) {
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let tri: Box<dyn Shape> = if let (Some(na), Some(nb), Some(nc)) = (mna, mnb, mnc) {
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/registry.rs:24:44
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let write = &mut shape as *mut Box<Shape>;
[INFO] [stdout]    |                                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |         let write = &mut shape as *mut Box<dyn Shape>;
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/registry.rs:100:20
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/registry.rs:109:20
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let s: Box<Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let s: Box<dyn Shape> = Box::from(Sphere::new());
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/registry.rs:110:20
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let g: Box<Shape> = Box::from(parent);
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let g: Box<dyn Shape> = Box::from(parent);
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/registry.rs:123:20
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let s: Box<Shape> = Box::from(sphere);
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let s: Box<dyn Shape> = Box::from(sphere);
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/registry.rs:124:20
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let g: Box<Shape> = Box::from(parent);
[INFO] [stdout]     |                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let g: Box<dyn Shape> = Box::from(parent);
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sphere`
[INFO] [stdout]     --> src/shapes.rs:2525:18
[INFO] [stdout]      |
[INFO] [stdout] 2525 |             let (sphere, cube, csg) = { 
[INFO] [stdout]      |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sphere`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cube`
[INFO] [stdout]     --> src/shapes.rs:2525:26
[INFO] [stdout]      |
[INFO] [stdout] 2525 |             let (sphere, cube, csg) = { 
[INFO] [stdout]      |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_cube`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]    --> src/registry.rs:128:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let parent = reg.get(group_id);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0308, E0433, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rye` (bin "rye" test) due to 21 previous errors; 43 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "3ef0beeacdfc563a1a264989e018a959bf61e7f0e120eef2ecc452956fbe0be9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3ef0beeacdfc563a1a264989e018a959bf61e7f0e120eef2ecc452956fbe0be9", kill_on_drop: false }`
[INFO] [stdout] 3ef0beeacdfc563a1a264989e018a959bf61e7f0e120eef2ecc452956fbe0be9
