[INFO] cloning repository https://github.com/ehuss/raytracer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ehuss/raytracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fehuss%2Fraytracer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fehuss%2Fraytracer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9a88a081dab342da88ba7829283f2a28e14c6274
[INFO] checking ehuss/raytracer against master#7f5a42b073dc2bee2aa625052eb066ee07072048 for pr-78991
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fehuss%2Fraytracer" "/workspace/builds/worker-9/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-9/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ehuss/raytracer on toolchain 7f5a42b073dc2bee2aa625052eb066ee07072048
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+7f5a42b073dc2bee2aa625052eb066ee07072048" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/ehuss/raytracer
[INFO] finished tweaking git repo https://github.com/ehuss/raytracer
[INFO] tweaked toml for git repo https://github.com/ehuss/raytracer written to /workspace/builds/worker-9/source/Cargo.toml
[INFO] crate git repo https://github.com/ehuss/raytracer already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+7f5a42b073dc2bee2aa625052eb066ee07072048" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+7f5a42b073dc2bee2aa625052eb066ee07072048" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 35fa6f36b2890def55dcd4090864920940ad09fcd6c0e41cbdb8aa19b0ceb04e
[INFO] running `Command { std: "docker" "start" "-a" "35fa6f36b2890def55dcd4090864920940ad09fcd6c0e41cbdb8aa19b0ceb04e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "35fa6f36b2890def55dcd4090864920940ad09fcd6c0e41cbdb8aa19b0ceb04e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "35fa6f36b2890def55dcd4090864920940ad09fcd6c0e41cbdb8aa19b0ceb04e", kill_on_drop: false }`
[INFO] [stdout] 35fa6f36b2890def55dcd4090864920940ad09fcd6c0e41cbdb8aa19b0ceb04e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+7f5a42b073dc2bee2aa625052eb066ee07072048" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] a5dd33014c7d4972722b597f8c9905ba8cf7cd543392532271b8acc9a3514129
[INFO] running `Command { std: "docker" "start" "-a" "a5dd33014c7d4972722b597f8c9905ba8cf7cd543392532271b8acc9a3514129", kill_on_drop: false }`
[INFO] [stderr]     Checking libc v0.2.20
[INFO] [stderr]     Checking num-traits v0.1.36
[INFO] [stderr]     Checking adler32 v0.3.0
[INFO] [stderr]    Compiling gcc v0.3.43
[INFO] [stderr]     Checking bitflags v0.7.0
[INFO] [stderr]    Compiling quote v0.2.3
[INFO] [stderr]     Checking color_quant v1.0.0
[INFO] [stderr]     Checking scoped_threadpool v0.1.7
[INFO] [stderr]     Checking strsim v0.6.0
[INFO] [stderr]     Checking vec_map v0.6.0
[INFO] [stderr]     Checking unicode-segmentation v1.1.0
[INFO] [stderr]     Checking ansi_term v0.9.0
[INFO] [stderr]     Checking unicode-width v0.1.4
[INFO] [stderr]     Checking deflate v0.7.4
[INFO] [stderr]     Checking gif v0.9.0
[INFO] [stderr]    Compiling syn v0.8.7
[INFO] [stderr]     Checking rand v0.3.15
[INFO] [stderr]     Checking num_cpus v1.2.1
[INFO] [stderr]     Checking dylib v0.0.1
[INFO] [stderr]     Checking term_size v0.2.2
[INFO] [stderr]     Checking time v0.1.36
[INFO] [stderr]     Checking clap v2.20.5
[INFO] [stderr]     Checking x11-dl v2.2.1
[INFO] [stderr]     Checking num-integer v0.1.32
[INFO] [stderr]     Checking enum_primitive v0.1.1
[INFO] [stderr]     Checking num-iter v0.1.32
[INFO] [stderr]     Checking num-rational v0.1.35
[INFO] [stderr]    Compiling minifb v0.9.0
[INFO] [stderr]     Checking png v0.6.2
[INFO] [stderr]     Checking deque v0.3.1
[INFO] [stderr]     Checking rayon v0.6.0
[INFO] [stderr]    Compiling derive-new v0.4.0
[INFO] [stderr]     Checking jpeg-decoder v0.1.11
[INFO] [stderr]     Checking image v0.12.3
[INFO] [stderr]     Checking raytracer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/vec3.rs:260:15
[INFO] [stdout]     |
[INFO] [stdout] 260 |     Vec3::new((v1.y * v2.z - v1.z * v2.y),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/vec3.rs:261:15
[INFO] [stdout]     |
[INFO] [stdout] 261 |               (-(v1.x * v2.z - v1.z * v2.x)),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/vec3.rs:262:15
[INFO] [stdout]     |
[INFO] [stdout] 262 |               (v1.x * v2.y - v1.y * v2.x))
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hitable.rs:21:22
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub material: Rc<Material>,
[INFO] [stdout]    |                      ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hitable.rs:45:18
[INFO] [stdout]    |
[INFO] [stdout] 45 |     hitable: Box<Hitable>
[INFO] [stdout]    |                  ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hitable.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 64 |     hitable: Box<Hitable>,
[INFO] [stdout]    |                  ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hitable.rs:91:18
[INFO] [stdout]    |
[INFO] [stdout] 91 |     hitable: Box<Hitable>,
[INFO] [stdout]    |                  ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hitable.rs:98:29
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn new(hitable: Box<Hitable>, angle: f64) -> RotateY {
[INFO] [stdout]    |                             ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/hitable_list.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 |     list: Vec<Box<Hitable + 'a>>,
[INFO] [stdout]   |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn Hitable + 'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sphere.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |     material: Rc<Material>,
[INFO] [stdout]    |                  ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sphere.rs:18:53
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(cen: Vec3<f64>, r: f64, material: Rc<Material>) -> Sphere {
[INFO] [stdout]    |                                                     ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/moving_sphere.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 |     material: Rc<Material>,
[INFO] [stdout]    |                  ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/moving_sphere.rs:28:29
[INFO] [stdout]    |
[INFO] [stdout] 28 |                material: Rc<Material>)
[INFO] [stdout]    |                             ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/material.rs:45:25
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub pdf: Option<Box<Pdf>>
[INFO] [stdout]    |                         ^^^ help: use `dyn`: `dyn Pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/material.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |     albedo: Box<Texture>,
[INFO] [stdout]    |                 ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/material.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn new(a: Box<Texture>) -> Lambertian {
[INFO] [stdout]    |                       ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/material.rs:88:26
[INFO] [stdout]    |
[INFO] [stdout] 88 |                -> Option<(ScatterRecord)> {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/material.rs:142:26
[INFO] [stdout]     |
[INFO] [stdout] 142 |                -> Option<(ScatterRecord)> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/material.rs:170:26
[INFO] [stdout]     |
[INFO] [stdout] 170 |                -> Option<(ScatterRecord)> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/material.rs:211:15
[INFO] [stdout]     |
[INFO] [stdout] 211 |     emit: Box<Texture>
[INFO] [stdout]     |               ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |     left: Box<Hitable>,
[INFO] [stdout]    |               ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 |     right: Box<Hitable>,
[INFO] [stdout]    |                ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/vec3.rs:260:15
[INFO] [stdout]     |
[INFO] [stdout] 260 |     Vec3::new((v1.y * v2.z - v1.z * v2.y),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                       ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 72 | box_a_compare!(box_x_compare, x);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/vec3.rs:261:15
[INFO] [stdout]     |
[INFO] [stdout] 261 |               (-(v1.x * v2.z - v1.z * v2.x)),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/vec3.rs:262:15
[INFO] [stdout]     |
[INFO] [stdout] 262 |               (v1.x * v2.y - v1.y * v2.x))
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hitable.rs:21:22
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub material: Rc<Material>,
[INFO] [stdout]    |                      ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:41
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                                         ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 72 | box_a_compare!(box_x_compare, x);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hitable.rs:45:18
[INFO] [stdout]    |
[INFO] [stdout] 45 |     hitable: Box<Hitable>
[INFO] [stdout]    |                  ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hitable.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 64 |     hitable: Box<Hitable>,
[INFO] [stdout]    |                  ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hitable.rs:91:18
[INFO] [stdout]    |
[INFO] [stdout] 91 |     hitable: Box<Hitable>,
[INFO] [stdout]    |                  ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hitable.rs:98:29
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn new(hitable: Box<Hitable>, angle: f64) -> RotateY {
[INFO] [stdout]    |                             ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/hitable_list.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 |     list: Vec<Box<Hitable + 'a>>,
[INFO] [stdout]   |                   ^^^^^^^^^^^^ help: use `dyn`: `dyn Hitable + 'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sphere.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 |     material: Rc<Material>,
[INFO] [stdout]    |                  ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                       ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 73 | box_a_compare!(box_y_compare, y);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:41
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                                         ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 73 | box_a_compare!(box_y_compare, y);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                       ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 74 | box_a_compare!(box_z_compare, z);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:41
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                                         ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 74 | box_a_compare!(box_z_compare, z);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:79:46
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn new(rng: &mut Rng, mut l: Vec<Box<Hitable>>, time0: f64, time1: f64) -> BVHNode
[INFO] [stdout]    |                                              ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/texture.rs:34:14
[INFO] [stdout]    |
[INFO] [stdout] 34 |     odd: Box<Texture>,
[INFO] [stdout]    |              ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/texture.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 |     even: Box<Texture>,
[INFO] [stdout]    |               ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/texture.rs:39:24
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn new(t0: Box<Texture>, t1: Box<Texture>) -> CheckerTexture {
[INFO] [stdout]    |                        ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/texture.rs:39:42
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn new(t0: Box<Texture>, t1: Box<Texture>) -> CheckerTexture {
[INFO] [stdout]    |                                          ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/aarect.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |     material: Rc<Material>
[INFO] [stdout]    |                  ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/aarect.rs:50:18
[INFO] [stdout]    |
[INFO] [stdout] 50 |     material: Rc<Material>
[INFO] [stdout]    |                  ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/aarect.rs:99:18
[INFO] [stdout]    |
[INFO] [stdout] 99 |     material: Rc<Material>
[INFO] [stdout]    |                  ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hbox.rs:18:59
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(p0: Vec3<f64>, p1: Vec3<f64>, material: Rc<Material>) -> HBox<'a> {
[INFO] [stdout]    |                                                           ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pdf.rs:63:18
[INFO] [stdout]    |
[INFO] [stdout] 63 |     hitable: &'a Hitable,
[INFO] [stdout]    |                  ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pdf.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pdf0: &'a Pdf,
[INFO] [stdout]    |               ^^^ help: use `dyn`: `dyn Pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pdf.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pdf1: &'b Pdf,
[INFO] [stdout]    |               ^^^ help: use `dyn`: `dyn Pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/core.rs:54:81
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn render(scene: &Scene, output_settings: &OutputSettings, output: &mut Box<Output>) -> output::Result<()> {
[INFO] [stdout]    |                                                                                 ^^^^^^ help: use `dyn`: `dyn Output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sphere.rs:18:53
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(cen: Vec3<f64>, r: f64, material: Rc<Material>) -> Sphere {
[INFO] [stdout]    |                                                     ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/core.rs:73:35
[INFO] [stdout]    |
[INFO] [stdout] 73 |                  output: &mut Box<Output>,
[INFO] [stdout]    |                                   ^^^^^^ help: use `dyn`: `dyn Output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/moving_sphere.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 |     material: Rc<Material>,
[INFO] [stdout]    |                  ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/scene.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub world: Box<Hitable>,
[INFO] [stdout]   |                    ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/moving_sphere.rs:28:29
[INFO] [stdout]    |
[INFO] [stdout] 28 |                material: Rc<Material>)
[INFO] [stdout]    |                             ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/material.rs:45:25
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub pdf: Option<Box<Pdf>>
[INFO] [stdout]    |                         ^^^ help: use `dyn`: `dyn Pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/scene.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub light_shapes: Box<Hitable>,
[INFO] [stdout]   |                           ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/material.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |     albedo: Box<Texture>,
[INFO] [stdout]    |                 ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/material.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn new(a: Box<Texture>) -> Lambertian {
[INFO] [stdout]    |                       ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/material.rs:88:26
[INFO] [stdout]    |
[INFO] [stdout] 88 |                -> Option<(ScatterRecord)> {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/output/error.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type GenericError = Box<std::error::Error>;
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/material.rs:142:26
[INFO] [stdout]     |
[INFO] [stdout] 142 |                -> Option<(ScatterRecord)> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/material.rs:170:26
[INFO] [stdout]     |
[INFO] [stdout] 170 |                -> Option<(ScatterRecord)> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/material.rs:211:15
[INFO] [stdout]     |
[INFO] [stdout] 211 |     emit: Box<Texture>
[INFO] [stdout]     |               ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |     left: Box<Hitable>,
[INFO] [stdout]    |               ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 |     right: Box<Hitable>,
[INFO] [stdout]    |                ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/output/mod.rs:66:75
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn new_output(settings: &OutputSettings, scene: &Scene) -> Result<Box<Output>> {
[INFO] [stdout]    |                                                                           ^^^^^^ help: use `dyn`: `dyn Output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                       ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 72 | box_a_compare!(box_x_compare, x);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition
[INFO] [stdout]   --> src/lib.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | / macro_rules! perrln {
[INFO] [stdout] 57 | |     ($($arg:tt)*) => ({
[INFO] [stdout] 58 | |         use std::io::{Write, stderr};
[INFO] [stdout] 59 | |         writeln!(&mut stderr(), $($arg)*).ok();
[INFO] [stdout] 60 | |     })
[INFO] [stdout] 61 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:41
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                                         ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 72 | box_a_compare!(box_x_compare, x);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                       ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 73 | box_a_compare!(box_y_compare, y);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:41
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                                         ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 73 | box_a_compare!(box_y_compare, y);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                       ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 74 | box_a_compare!(box_z_compare, z);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:59:41
[INFO] [stdout]    |
[INFO] [stdout] 59 |         fn $f(a: &Box<Hitable>, b: &Box<Hitable>) -> Ordering {
[INFO] [stdout]    |                                         ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] ...
[INFO] [stdout] 74 | box_a_compare!(box_z_compare, z);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bvh.rs:79:46
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn new(rng: &mut Rng, mut l: Vec<Box<Hitable>>, time0: f64, time1: f64) -> BVHNode
[INFO] [stdout]    |                                              ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/texture.rs:34:14
[INFO] [stdout]    |
[INFO] [stdout] 34 |     odd: Box<Texture>,
[INFO] [stdout]    |              ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/texture.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 |     even: Box<Texture>,
[INFO] [stdout]    |               ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/texture.rs:39:24
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn new(t0: Box<Texture>, t1: Box<Texture>) -> CheckerTexture {
[INFO] [stdout]    |                        ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/texture.rs:39:42
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn new(t0: Box<Texture>, t1: Box<Texture>) -> CheckerTexture {
[INFO] [stdout]    |                                          ^^^^^^^ help: use `dyn`: `dyn Texture`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/aarect.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |     material: Rc<Material>
[INFO] [stdout]    |                  ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/aarect.rs:50:18
[INFO] [stdout]    |
[INFO] [stdout] 50 |     material: Rc<Material>
[INFO] [stdout]    |                  ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/aarect.rs:99:18
[INFO] [stdout]    |
[INFO] [stdout] 99 |     material: Rc<Material>
[INFO] [stdout]    |                  ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/hbox.rs:18:59
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(p0: Vec3<f64>, p1: Vec3<f64>, material: Rc<Material>) -> HBox<'a> {
[INFO] [stdout]    |                                                           ^^^^^^^^ help: use `dyn`: `dyn Material`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pdf.rs:63:18
[INFO] [stdout]    |
[INFO] [stdout] 63 |     hitable: &'a Hitable,
[INFO] [stdout]    |                  ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pdf.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pdf0: &'a Pdf,
[INFO] [stdout]    |               ^^^ help: use `dyn`: `dyn Pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pdf.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pdf1: &'b Pdf,
[INFO] [stdout]    |               ^^^ help: use `dyn`: `dyn Pdf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/core.rs:54:81
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn render(scene: &Scene, output_settings: &OutputSettings, output: &mut Box<Output>) -> output::Result<()> {
[INFO] [stdout]    |                                                                                 ^^^^^^ help: use `dyn`: `dyn Output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/core.rs:73:35
[INFO] [stdout]    |
[INFO] [stdout] 73 |                  output: &mut Box<Output>,
[INFO] [stdout]    |                                   ^^^^^^ help: use `dyn`: `dyn Output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/scene.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub world: Box<Hitable>,
[INFO] [stdout]   |                    ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/scene.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub light_shapes: Box<Hitable>,
[INFO] [stdout]   |                           ^^^^^^^ help: use `dyn`: `dyn Hitable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/output/error.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type GenericError = Box<std::error::Error>;
[INFO] [stdout]   |                             ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/output/mod.rs:66:75
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn new_output(settings: &OutputSettings, scene: &Scene) -> Result<Box<Output>> {
[INFO] [stdout]    |                                                                           ^^^^^^ help: use `dyn`: `dyn Output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition
[INFO] [stdout]   --> src/lib.rs:56:1
[INFO] [stdout]    |
[INFO] [stdout] 56 | / macro_rules! perrln {
[INFO] [stdout] 57 | |     ($($arg:tt)*) => ({
[INFO] [stdout] 58 | |         use std::io::{Write, stderr};
[INFO] [stdout] 59 | |         writeln!(&mut stderr(), $($arg)*).ok();
[INFO] [stdout] 60 | |     })
[INFO] [stdout] 61 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/perlin.rs:23:39
[INFO] [stdout]    |
[INFO] [stdout] 23 |         static mut ONCE: sync::Once = sync::ONCE_INIT;
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^ help: replace the use of the deprecated constant: `Once::new()`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/perlin.rs:23:39
[INFO] [stdout]    |
[INFO] [stdout] 23 |         static mut ONCE: sync::Once = sync::ONCE_INIT;
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^ help: replace the use of the deprecated constant: `Once::new()`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/output/error.rs:24:46
[INFO] [stdout]    |
[INFO] [stdout] 24 |         write!(fmt, "Output Error: {}", self.description())
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/output/error.rs:24:46
[INFO] [stdout]    |
[INFO] [stdout] 24 |         write!(fmt, "Output Error: {}", self.description())
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 49 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:311:58
[INFO] [stdout]     |
[INFO] [stdout] 311 |             let desc = format!("Invalid filename: {}", e.description());
[INFO] [stdout]     |                                                          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:311:58
[INFO] [stdout]     |
[INFO] [stdout] 311 |             let desc = format!("Invalid filename: {}", e.description());
[INFO] [stdout]     |                                                          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 49 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 22.82s
[INFO] running `Command { std: "docker" "inspect" "a5dd33014c7d4972722b597f8c9905ba8cf7cd543392532271b8acc9a3514129", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a5dd33014c7d4972722b597f8c9905ba8cf7cd543392532271b8acc9a3514129", kill_on_drop: false }`
[INFO] [stdout] a5dd33014c7d4972722b597f8c9905ba8cf7cd543392532271b8acc9a3514129