[INFO] cloning repository https://github.com/dontpanic92/urender [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dontpanic92/urender" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdontpanic92%2Furender", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdontpanic92%2Furender'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3fd84ca96b75d322503a56288a111b16c18e562f [INFO] checking dontpanic92/urender/3fd84ca96b75d322503a56288a111b16c18e562f against master#f609b7e0586f81fefb3523e3e17adf779ac416be for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdontpanic92%2Furender" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/dontpanic92/urender on toolchain f609b7e0586f81fefb3523e3e17adf779ac416be [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/dontpanic92/urender [INFO] finished tweaking git repo https://github.com/dontpanic92/urender [INFO] tweaked toml for git repo https://github.com/dontpanic92/urender written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/dontpanic92/urender 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" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded minidom v0.7.0 [INFO] [stderr] Downloaded quick-xml v0.10.1 [INFO] [stderr] Downloaded bmp v0.1.4 [INFO] [stderr] Downloaded rand v0.4.1 [INFO] [stderr] Downloaded winapi v0.3.3 [INFO] [stderr] Downloaded encoding_rs v0.7.1 [INFO] [stderr] Downloaded winapi-i686-pc-windows-gnu v0.3.2 [INFO] [stderr] Downloaded winapi-x86_64-pc-windows-gnu v0.3.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 72cdae11d5283c4675f302ce5e616c53a17f9658a53a47d961cfcded8bdbe465 [INFO] running `Command { std: "docker" "start" "-a" "72cdae11d5283c4675f302ce5e616c53a17f9658a53a47d961cfcded8bdbe465", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "72cdae11d5283c4675f302ce5e616c53a17f9658a53a47d961cfcded8bdbe465", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "72cdae11d5283c4675f302ce5e616c53a17f9658a53a47d961cfcded8bdbe465", kill_on_drop: false }` [INFO] [stdout] 72cdae11d5283c4675f302ce5e616c53a17f9658a53a47d961cfcded8bdbe465 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7e23c57b8578c7345fb84cd9f141e278eaede30387fa4ce1c62fdd6cfaa2337e [INFO] running `Command { std: "docker" "start" "-a" "7e23c57b8578c7345fb84cd9f141e278eaede30387fa4ce1c62fdd6cfaa2337e", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] [stderr] Compiling cc v1.0.4 [INFO] [stderr] Checking cfg-if v0.1.2 [INFO] [stderr] Checking rustc-demangle v0.1.5 [INFO] [stderr] Checking memchr v2.0.1 [INFO] [stderr] Checking byteorder v0.3.13 [INFO] [stderr] Checking rand v0.4.1 [INFO] [stderr] Checking encoding_rs v0.7.1 [INFO] [stderr] Checking bmp v0.1.4 [INFO] [stderr] Compiling backtrace-sys v0.1.16 [INFO] [stderr] Checking backtrace v0.3.5 [INFO] [stderr] Checking error-chain v0.11.0 [INFO] [stderr] Checking quick-xml v0.10.1 [INFO] [stderr] Checking minidom v0.7.0 [INFO] [stderr] Checking urender v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/geometry/cylinder.rs:45:42 [INFO] [stdout] | [INFO] [stdout] 45 | let b = (v - v.dot(va) * va).dot((deltap - deltap.dot(va) * va)) * 2.; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 45 - let b = (v - v.dot(va) * va).dot((deltap - deltap.dot(va) * va)) * 2.; [INFO] [stdout] 45 + let b = (v - v.dot(va) * va).dot(deltap - deltap.dot(va) * va) * 2.; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 75 | calc_t!(tx_min, tx_max, x); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 75 | calc_t!(tx_min, tx_max, x); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 75 | calc_t!(tx_min, tx_max, x); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 75 | calc_t!(tx_min, tx_max, x); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 76 | calc_t!(ty_min, ty_max, y); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 76 | calc_t!(ty_min, ty_max, y); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 76 | calc_t!(ty_min, ty_max, y); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 76 | calc_t!(ty_min, ty_max, y); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 77 | calc_t!(tz_min, tz_max, z); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 77 | calc_t!(tz_min, tz_max, z); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 77 | calc_t!(tz_min, tz_max, z); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 77 | calc_t!(tz_min, tz_max, z); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::orthographic_camera::*` [INFO] [stdout] --> src/camera/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use self::orthographic_camera::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::random_sampler::*` [INFO] [stdout] --> src/sampler/mod.rs:1:9 [INFO] [stdout] | [INFO] [stdout] 1 | pub use self::random_sampler::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::regular_sampler::*` [INFO] [stdout] --> src/sampler/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use self::regular_sampler::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::jittered_sampler::*` [INFO] [stdout] --> src/sampler/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use self::jittered_sampler::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::nrooks_sampler::*` [INFO] [stdout] --> src/sampler/mod.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub use self::nrooks_sampler::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 17 | objects: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | objects: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:18:21 [INFO] [stdout] | [INFO] [stdout] 18 | lights: Vec>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | lights: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:19:36 [INFO] [stdout] | [INFO] [stdout] 19 | materials: HashMap>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | materials: HashMap>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:20:24 [INFO] [stdout] | [INFO] [stdout] 20 | ambient_light: Box, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 20 | ambient_light: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | tracer: Box, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | tracer: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/pinhole_camera.rs:15:18 [INFO] [stdout] | [INFO] [stdout] 15 | sampler: Box [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | sampler: Box [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/ambient_occluder.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | sampler: Box, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 8 | sampler: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:44:46 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn add_object(&mut self, object: Box) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 | pub fn add_object(&mut self, object: Box) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:48:44 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn add_light(&mut self, light: Box) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 | pub fn add_light(&mut self, light: Box) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:74:41 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn ambient_light(&self) -> &Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 74 | pub fn ambient_light(&self) -> &Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:78:38 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn lights(&self) -> &Vec> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 78 | pub fn lights(&self) -> &Vec> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:86:56 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn material(&self, material_name: &String) -> &Material { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 86 | pub fn material(&self, material_name: &String) -> &dyn Material { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/utility/rgb_color.rs:21:56 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn from_hex(hex: &str) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn from_hex(hex: &str) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/geometry/cylinder.rs:45:42 [INFO] [stdout] | [INFO] [stdout] 45 | let b = (v - v.dot(va) * va).dot((deltap - deltap.dot(va) * va)) * 2.; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 45 - let b = (v - v.dot(va) * va).dot((deltap - deltap.dot(va) * va)) * 2.; [INFO] [stdout] 45 + let b = (v - v.dot(va) * va).dot(deltap - deltap.dot(va) * va) * 2.; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 75 | calc_t!(tx_min, tx_max, x); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default [INFO] [stdout] = note: this warning originates in the macro `calc_t` (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/utility/error.rs:20:32 [INFO] [stdout] | [INFO] [stdout] 20 | fn cause(&self) -> Option<&StdError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 20 | fn cause(&self) -> Option<&dyn StdError> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 75 | calc_t!(tx_min, tx_max, x); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 75 | calc_t!(tx_min, tx_max, x); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 75 | calc_t!(tx_min, tx_max, x); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 76 | calc_t!(ty_min, ty_max, y); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 76 | calc_t!(ty_min, ty_max, y); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 76 | calc_t!(ty_min, ty_max, y); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 76 | calc_t!(ty_min, ty_max, y); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 77 | calc_t!(tz_min, tz_max, z); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (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/geometry/mod.rs:22:52 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &dyn Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 77 | calc_t!(tz_min, tz_max, z); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 77 | calc_t!(tz_min, tz_max, z); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/geometry/aabox.rs:61:77 [INFO] [stdout] | [INFO] [stdout] 61 | ($x.$func() - ray.origin().$func()) / ray.direction().$func(); [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 77 | calc_t!(tz_min, tz_max, z); [INFO] [stdout] | -------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this warning originates in the macro `calc_t` (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/geometry/mod.rs:22:78 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::orthographic_camera::*` [INFO] [stdout] --> src/camera/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use self::orthographic_camera::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/mod.rs:22:100 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::random_sampler::*` [INFO] [stdout] --> src/sampler/mod.rs:1:9 [INFO] [stdout] | [INFO] [stdout] 1 | pub use self::random_sampler::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::regular_sampler::*` [INFO] [stdout] --> src/sampler/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use self::regular_sampler::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::jittered_sampler::*` [INFO] [stdout] --> src/sampler/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use self::jittered_sampler::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::nrooks_sampler::*` [INFO] [stdout] --> src/sampler/mod.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub use self::nrooks_sampler::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/sphere.rs:19:33 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/sphere.rs:19:67 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/plane.rs:19:33 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/plane.rs:19:66 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/cylinder.rs:21:33 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/cylinder.rs:21:69 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/disk.rs:21:33 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/disk.rs:21:65 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/aabox.rs:26:33 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/aabox.rs:26:66 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/mod.rs:15:46 [INFO] [stdout] | [INFO] [stdout] 15 | fn render(&self, world: &World, tracer: &Tracer) -> Image; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | fn render(&self, world: &World, tracer: &dyn Tracer) -> Image; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/pinhole_camera.rs:38:46 [INFO] [stdout] | [INFO] [stdout] 38 | fn render(&self, world: &World, tracer: &Tracer) -> Image { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 38 | fn render(&self, world: &World, tracer: &dyn Tracer) -> Image { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/pinhole_camera.rs:23:33 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/pinhole_camera.rs:23:74 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/orthographic_camera.rs:25:46 [INFO] [stdout] | [INFO] [stdout] 25 | fn render(&self, world: &World, tracer: &Tracer) -> Image { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 | fn render(&self, world: &World, tracer: &dyn Tracer) -> Image { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/mod.rs:22:46 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &dyn Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/mod.rs:22:72 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/mod.rs:22:84 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/directional_light.rs:15:32 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/directional_light.rs:15:76 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/ambient_light.rs:14:32 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/ambient_light.rs:14:72 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/ambient_occluder.rs:17:32 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/ambient_occluder.rs:17:75 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/point_light.rs:19:32 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/point_light.rs:19:70 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/mod.rs:16:52 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &dyn Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/mod.rs:16:78 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/mod.rs:16:93 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 17 | objects: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | objects: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/matte.rs:17:32 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/matte.rs:17:65 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:18:21 [INFO] [stdout] | [INFO] [stdout] 18 | lights: Vec>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | lights: Vec>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:19:36 [INFO] [stdout] | [INFO] [stdout] 19 | materials: HashMap>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | materials: HashMap>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:20:24 [INFO] [stdout] | [INFO] [stdout] 20 | ambient_light: Box, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 20 | ambient_light: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | tracer: Box, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | tracer: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/pinhole_camera.rs:15:18 [INFO] [stdout] | [INFO] [stdout] 15 | sampler: Box [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | sampler: Box [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/phong.rs:17:32 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/phong.rs:17:65 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/ambient_occluder.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | sampler: Box, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 8 | sampler: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:44:46 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn add_object(&mut self, object: Box) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 | pub fn add_object(&mut self, object: Box) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:48:44 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn add_light(&mut self, light: Box) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 | pub fn add_light(&mut self, light: Box) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:74:41 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn ambient_light(&self) -> &Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 74 | pub fn ambient_light(&self) -> &Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:78:38 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn lights(&self) -> &Vec> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 78 | pub fn lights(&self) -> &Vec> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/world/world.rs:86:56 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn material(&self, material_name: &String) -> &Material { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 86 | pub fn material(&self, material_name: &String) -> &dyn Material { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/utility/rgb_color.rs:21:56 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn from_hex(hex: &str) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn from_hex(hex: &str) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/utility/error.rs:20:32 [INFO] [stdout] | [INFO] [stdout] 20 | fn cause(&self) -> Option<&StdError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 20 | fn cause(&self) -> Option<&dyn StdError> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/mod.rs:22:52 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &dyn Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/mod.rs:22:78 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/mod.rs:22:100 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_geometry(geometry_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/sphere.rs:19:33 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/sphere.rs:19:67 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/plane.rs:19:33 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/plane.rs:19:66 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/cylinder.rs:21:33 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/cylinder.rs:21:69 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/disk.rs:21:33 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/disk.rs:21:65 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/aabox.rs:26:33 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/geometry/aabox.rs:26:66 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/mod.rs:15:46 [INFO] [stdout] | [INFO] [stdout] 15 | fn render(&self, world: &World, tracer: &Tracer) -> Image; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | fn render(&self, world: &World, tracer: &dyn Tracer) -> Image; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/pinhole_camera.rs:38:46 [INFO] [stdout] | [INFO] [stdout] 38 | fn render(&self, world: &World, tracer: &Tracer) -> Image { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 38 | fn render(&self, world: &World, tracer: &dyn Tracer) -> Image { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/pinhole_camera.rs:23:33 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 | pub fn new_from_dict(dict: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/pinhole_camera.rs:23:74 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 | pub fn new_from_dict(dict: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/camera/orthographic_camera.rs:25:46 [INFO] [stdout] | [INFO] [stdout] 25 | fn render(&self, world: &World, tracer: &Tracer) -> Image { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 | fn render(&self, world: &World, tracer: &dyn Tracer) -> Image { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/mod.rs:22:46 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &dyn Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/mod.rs:22:72 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/mod.rs:22:84 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | pub fn create_light(light_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/directional_light.rs:15:32 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/directional_light.rs:15:76 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/ambient_light.rs:14:32 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/ambient_light.rs:14:72 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/ambient_occluder.rs:17:32 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/ambient_occluder.rs:17:75 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/point_light.rs:19:32 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/light/point_light.rs:19:70 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/mod.rs:16:52 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &dyn Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/mod.rs:16:78 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/mod.rs:16:93 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 16 | pub fn create_material(material_type: &str, dict: &Dictionary) -> Result, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/matte.rs:17:32 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/matte.rs:17:65 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/phong.rs:17:32 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &dyn Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/material/phong.rs:17:65 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new_from_dict(map: &Dictionary) -> Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/utility/error.rs:11:32 [INFO] [stdout] | [INFO] [stdout] 11 | fmt::Display::fmt(self.description(), f) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/utility/error.rs:36:32 [INFO] [stdout] | [INFO] [stdout] 36 | fmt::Display::fmt(self.description(), f) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/utility/error.rs:43:57 [INFO] [stdout] | [INFO] [stdout] 43 | &URenderError::GenericError(ref err) => err.description() [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/utility/error.rs:11:32 [INFO] [stdout] | [INFO] [stdout] 11 | fmt::Display::fmt(self.description(), f) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/utility/error.rs:36:32 [INFO] [stdout] | [INFO] [stdout] 36 | fmt::Display::fmt(self.description(), f) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/utility/error.rs:43:57 [INFO] [stdout] | [INFO] [stdout] 43 | &URenderError::GenericError(ref err) => err.description() [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | let v = Vector3D(1, 2, 3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:6:14 [INFO] [stdout] | [INFO] [stdout] 6 | let v2 = Vector3D(0, 0, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | assert_eq!(v * 3, Vector3D(3, 6, 9)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:8:23 [INFO] [stdout] | [INFO] [stdout] 8 | assert_eq!(v * 0, Vector3D(0, 0, 0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | assert_eq!(3 * v2, Vector3D(0, 0, 0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | assert_eq!(Vector3D(1, 2, 3).dot(Vector3D(4, 5, 6)), 32.); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:14:38 [INFO] [stdout] | [INFO] [stdout] 14 | assert_eq!(Vector3D(1, 2, 3).dot(Vector3D(4, 5, 6)), 32.); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | assert_eq!(Vector3D(0, 0, 0).dot(Vector3D(4, 5, 6)), 0.); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:15:38 [INFO] [stdout] | [INFO] [stdout] 15 | assert_eq!(Vector3D(0, 0, 0).dot(Vector3D(4, 5, 6)), 0.); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:20:16 [INFO] [stdout] | [INFO] [stdout] 20 | assert_eq!(Vector3D(1, 2, 3).cross(Vector3D(4, 5, 6)), Vector3D(-3, 6, -3)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:20:40 [INFO] [stdout] | [INFO] [stdout] 20 | assert_eq!(Vector3D(1, 2, 3).cross(Vector3D(4, 5, 6)), Vector3D(-3, 6, -3)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:20:60 [INFO] [stdout] | [INFO] [stdout] 20 | assert_eq!(Vector3D(1, 2, 3).cross(Vector3D(4, 5, 6)), Vector3D(-3, 6, -3)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | assert_eq!(Vector3D(0, 0, 0).cross(Vector3D(4, 5, 6)), Vector3D(0, 0, 0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:21:40 [INFO] [stdout] | [INFO] [stdout] 21 | assert_eq!(Vector3D(0, 0, 0).cross(Vector3D(4, 5, 6)), Vector3D(0, 0, 0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:21:60 [INFO] [stdout] | [INFO] [stdout] 21 | assert_eq!(Vector3D(0, 0, 0).cross(Vector3D(4, 5, 6)), Vector3D(0, 0, 0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function, tuple struct or tuple variant `Point3D` in this scope [INFO] [stdout] --> src/utility/test.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | assert_eq!(Point3D(1, 2, 3) + Vector3D(4, 5, 6), Point3D(5, 7, 9)); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:26:35 [INFO] [stdout] | [INFO] [stdout] 26 | assert_eq!(Point3D(1, 2, 3) + Vector3D(4, 5, 6), Point3D(5, 7, 9)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function, tuple struct or tuple variant `Point3D` in this scope [INFO] [stdout] --> src/utility/test.rs:26:54 [INFO] [stdout] | [INFO] [stdout] 26 | assert_eq!(Point3D(1, 2, 3) + Vector3D(4, 5, 6), Point3D(5, 7, 9)); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function, tuple struct or tuple variant `Point3D` in this scope [INFO] [stdout] --> src/utility/test.rs:31:16 [INFO] [stdout] | [INFO] [stdout] 31 | assert_eq!(Point3D(1, 2, 3) - Point3D(4, 5, 6), Vector3D(-3, -3, -3)); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function, tuple struct or tuple variant `Point3D` in this scope [INFO] [stdout] --> src/utility/test.rs:31:35 [INFO] [stdout] | [INFO] [stdout] 31 | assert_eq!(Point3D(1, 2, 3) - Point3D(4, 5, 6), Vector3D(-3, -3, -3)); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0423]: expected function, tuple struct or tuple variant, found struct `Vector3D` [INFO] [stdout] --> src/utility/test.rs:31:53 [INFO] [stdout] | [INFO] [stdout] 31 | assert_eq!(Point3D(1, 2, 3) - Point3D(4, 5, 6), Vector3D(-3, -3, -3)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use struct literal syntax instead: `Vector3D { x: val, y: val, z: val }` [INFO] [stdout] | [INFO] [stdout] ::: src/utility/vector3d.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub struct Vector3D { [INFO] [stdout] 6 | | x: f64, [INFO] [stdout] 7 | | y: f64, [INFO] [stdout] 8 | | z: f64 [INFO] [stdout] 9 | | } [INFO] [stdout] | |_- `Vector3D` defined here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tracer` is never read [INFO] [stdout] --> src/world/world.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct World { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 21 | tracer: Box, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_object`, and `add_light` are never used [INFO] [stdout] --> src/world/world.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl World { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 28 | pub fn new() -> World { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn add_object(&mut self, object: Box) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn add_light(&mut self, light: Box) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RED` is never used [INFO] [stdout] --> src/utility/rgb_color.rs:117:11 [INFO] [stdout] | [INFO] [stdout] 117 | pub const RED: RGBColor = RGBColor { r: 1., g: 0., b: 0. }; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GREEN` is never used [INFO] [stdout] --> src/utility/rgb_color.rs:118:11 [INFO] [stdout] | [INFO] [stdout] 118 | pub const GREEN: RGBColor = RGBColor { r: 0., g: 1., b: 0. }; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLUE` is never used [INFO] [stdout] --> src/utility/rgb_color.rs:119:11 [INFO] [stdout] | [INFO] [stdout] 119 | pub const BLUE: RGBColor = RGBColor { r: 0., g: 0., b: 1. }; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRAY` is never used [INFO] [stdout] --> src/utility/rgb_color.rs:120:11 [INFO] [stdout] | [INFO] [stdout] 120 | pub const GRAY: RGBColor = RGBColor { r: 0.5, g: 0.5, b: 0.5 }; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WHITE` is never used [INFO] [stdout] --> src/utility/rgb_color.rs:121:11 [INFO] [stdout] | [INFO] [stdout] 121 | pub const WHITE: RGBColor = RGBColor { r: 1., g: 1., b: 1. }; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `GenericError` is never constructed [INFO] [stdout] --> src/utility/error.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum URenderError { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] 31 | GenericError(GenericError), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `URenderError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_position` and `look_at` are never used [INFO] [stdout] --> src/camera/mod.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub trait Camera { [INFO] [stdout] | ------ methods in this trait [INFO] [stdout] ... [INFO] [stdout] 19 | fn set_position(&mut self, position: Coord3D); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn look_at(&mut self, position: Coord3D); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `gamma` and `inv_gamma` are never read [INFO] [stdout] --> src/camera/view_plane.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct ViewPlane { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 5 | gamma: f64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | inv_gamma: f64 [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/camera/view_plane.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl ViewPlane { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 10 | pub fn new() -> ViewPlane { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn set_hres(&mut self, hres: u32) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn set_vres(&mut self, vres: u32) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn set_pixel_size(&mut self, pixel_size: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn set_gamma(&mut self, gamma: f64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn gamma(&self) -> f64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn inv_gamma(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `view_plane` are never used [INFO] [stdout] --> src/camera/orthographic_camera.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl OrthographicCamera { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 14 | pub fn new() -> OrthographicCamera [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn view_plane(&self) -> &ViewPlane { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `color` is never used [INFO] [stdout] --> src/light/mod.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub trait Light { [INFO] [stdout] | ----- method in this trait [INFO] [stdout] 16 | fn color(&self) -> RGBColor; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/sampler/random_sampler.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl RandomSampler { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 11 | pub fn new(sample_num: i32) -> RandomSampler { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/sampler/regular_sampler.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl RegularSampler { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 10 | pub fn new(row: i32, col: i32) -> RegularSampler { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/sampler/jittered_sampler.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl JitteredSampler { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 12 | pub fn new(row: i32, col: i32) -> JitteredSampler { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/sampler/nrooks_sampler.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl NRooksSampler { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 11 | pub fn new(sample_num: i32) -> NRooksSampler { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 21 previous errors; 71 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0423, E0425. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0423`. [INFO] [stdout] [INFO] [stdout] warning: 88 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `urender` (bin "urender" test) due to 22 previous errors; 83 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] running `Command { std: "docker" "inspect" "7e23c57b8578c7345fb84cd9f141e278eaede30387fa4ce1c62fdd6cfaa2337e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7e23c57b8578c7345fb84cd9f141e278eaede30387fa4ce1c62fdd6cfaa2337e", kill_on_drop: false }` [INFO] [stdout] 7e23c57b8578c7345fb84cd9f141e278eaede30387fa4ce1c62fdd6cfaa2337e