[INFO] updating cached repository WereDiggle/rust-raytracer [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/WereDiggle/rust-raytracer [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/WereDiggle/rust-raytracer" "work/ex/pr-60466/sources/master#7840a0b753a065a41999f1fb6028f67d33e3fdd5/gh/WereDiggle/rust-raytracer"` [INFO] [stderr] Cloning into 'work/ex/pr-60466/sources/master#7840a0b753a065a41999f1fb6028f67d33e3fdd5/gh/WereDiggle/rust-raytracer'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/WereDiggle/rust-raytracer" "work/ex/pr-60466/sources/try#6a9f0b6cc40687e25f9d772e3b10bab335c63853/gh/WereDiggle/rust-raytracer"` [INFO] [stderr] Cloning into 'work/ex/pr-60466/sources/try#6a9f0b6cc40687e25f9d772e3b10bab335c63853/gh/WereDiggle/rust-raytracer'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 5c2a7f4e1378fd7271deeaa95da96d658a3c939e [INFO] sha for GitHub repo WereDiggle/rust-raytracer: 5c2a7f4e1378fd7271deeaa95da96d658a3c939e [INFO] validating manifest of WereDiggle/rust-raytracer on toolchain master#7840a0b753a065a41999f1fb6028f67d33e3fdd5 [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+7840a0b753a065a41999f1fb6028f67d33e3fdd5-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of WereDiggle/rust-raytracer on toolchain try#6a9f0b6cc40687e25f9d772e3b10bab335c63853 [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+6a9f0b6cc40687e25f9d772e3b10bab335c63853-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing WereDiggle/rust-raytracer [INFO] finished frobbing WereDiggle/rust-raytracer [INFO] frobbed toml for WereDiggle/rust-raytracer written to work/ex/pr-60466/sources/master#7840a0b753a065a41999f1fb6028f67d33e3fdd5/gh/WereDiggle/rust-raytracer/Cargo.toml [INFO] started frobbing WereDiggle/rust-raytracer [INFO] finished frobbing WereDiggle/rust-raytracer [INFO] frobbed toml for WereDiggle/rust-raytracer written to work/ex/pr-60466/sources/try#6a9f0b6cc40687e25f9d772e3b10bab335c63853/gh/WereDiggle/rust-raytracer/Cargo.toml [INFO] crate WereDiggle/rust-raytracer already has a lockfile, it will not be regenerated [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+7840a0b753a065a41999f1fb6028f67d33e3fdd5-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+6a9f0b6cc40687e25f9d772e3b10bab335c63853-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking WereDiggle/rust-raytracer against try#6a9f0b6cc40687e25f9d772e3b10bab335c63853 for pr-60466 [INFO] running `"docker" "create" "-v" "/mnt/crater-raid/crater/work/local/target-dirs/pr-60466/worker-7/try#6a9f0b6cc40687e25f9d772e3b10bab335c63853:/opt/crater/target:rw,Z" "-v" "/mnt/crater-raid/crater/work/ex/pr-60466/sources/try#6a9f0b6cc40687e25f9d772e3b10bab335c63853/gh/WereDiggle/rust-raytracer:/opt/crater/workdir:ro,Z" "-v" "/mnt/crater-raid/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/crater-raid/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+6a9f0b6cc40687e25f9d772e3b10bab335c63853-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] ab15173f2ebc71eeae54a2c182b61f6bb0bd3873a34bd76d71c22544891e7f87 [INFO] running `"docker" "start" "-a" "ab15173f2ebc71eeae54a2c182b61f6bb0bd3873a34bd76d71c22544891e7f87"` [INFO] [stderr] Checking rand v0.5.6 [INFO] [stderr] Checking cgmath v0.16.1 [INFO] [stderr] Checking image v0.21.0 [INFO] [stderr] Checking euler v0.4.0 [INFO] [stderr] Checking raytracer v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused imports: `ImageBuffer`, `RgbImage` [INFO] [stderr] --> src/scene.rs:8:13 [INFO] [stderr] | [INFO] [stderr] 8 | use image::{RgbImage, ImageBuffer}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/scene.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:17:16 [INFO] [stderr] | [INFO] [stderr] 17 | image: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:48:19 [INFO] [stderr] | [INFO] [stderr] 48 | pub root: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:49:25 [INFO] [stderr] | [INFO] [stderr] 49 | pub lights: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:87:44 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn add_light(&mut self, light: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:111:40 [INFO] [stderr] | [INFO] [stderr] 111 | fn add_child(&mut self, child: Box); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:112:50 [INFO] [stderr] | [INFO] [stderr] 112 | fn add_children(&mut self, children: Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:123:32 [INFO] [stderr] | [INFO] [stderr] 123 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:130:32 [INFO] [stderr] | [INFO] [stderr] 130 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:135:20 [INFO] [stderr] | [INFO] [stderr] 135 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:136:28 [INFO] [stderr] | [INFO] [stderr] 136 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:144:27 [INFO] [stderr] | [INFO] [stderr] 144 | primitive: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:145:19 [INFO] [stderr] | [INFO] [stderr] 145 | material: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:147:23 [INFO] [stderr] | [INFO] [stderr] 147 | children: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:163:52 [INFO] [stderr] | [INFO] [stderr] 163 | pub fn set_primitive(&mut self, primitive: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:167:50 [INFO] [stderr] | [INFO] [stderr] 167 | pub fn set_material(&mut self, material: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:192:40 [INFO] [stderr] | [INFO] [stderr] 192 | fn add_child(&mut self, child: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DVec2`, `dvec2` [INFO] [stderr] --> src/geometry.rs:1:27 [INFO] [stderr] | [INFO] [stderr] 1 | use euler::{dmat4, DMat4, DVec2, DVec3, dvec3, dvec4, dvec2}; [INFO] [stderr] | ^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry/intersect.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | pub shader: &'a (Shadable + Send + Sync + 'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry/intersect.rs:71:54 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn new(hit_id: ProcessUniqueId, shader: &'a (Shadable + Send + Sync + 'a), intersect: Intersect) -> NodeIntersect<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:33:32 [INFO] [stderr] | [INFO] [stderr] 33 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:40:32 [INFO] [stderr] | [INFO] [stderr] 40 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:45:20 [INFO] [stderr] | [INFO] [stderr] 45 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:46:28 [INFO] [stderr] | [INFO] [stderr] 46 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:65:32 [INFO] [stderr] | [INFO] [stderr] 65 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Transformable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:72:32 [INFO] [stderr] | [INFO] [stderr] 72 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Transformable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:77:20 [INFO] [stderr] | [INFO] [stderr] 77 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Transformable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:78:28 [INFO] [stderr] | [INFO] [stderr] 78 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Transformable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: unused import: `euler::DVec3` [INFO] [stderr] --> src/shader.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use euler::DVec3; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `SurfaceCoord` [INFO] [stderr] --> src/shader.rs:7:32 [INFO] [stderr] | [INFO] [stderr] 7 | use geometry::{Intersect, Ray, SurfaceCoord}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader/texture.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | texture: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader/texture.rs:9:29 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn new(texture: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:34:32 [INFO] [stderr] | [INFO] [stderr] 34 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:41:32 [INFO] [stderr] | [INFO] [stderr] 41 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:46:20 [INFO] [stderr] | [INFO] [stderr] 46 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:47:28 [INFO] [stderr] | [INFO] [stderr] 47 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:54:22 [INFO] [stderr] | [INFO] [stderr] 54 | shaders: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:58:42 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn from_shaders(shaders: Vec>) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:62:46 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn add_shader(&mut self, shader: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:79:28 [INFO] [stderr] | [INFO] [stderr] 79 | shaders: Vec<(f64, Box)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:87:59 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn add_shader(&mut self, weight: f64, shader: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:91:48 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn from_shaders(shaders: Vec<(f64, Box)>) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:116:22 [INFO] [stderr] | [INFO] [stderr] 116 | shaders: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:126:42 [INFO] [stderr] | [INFO] [stderr] 126 | pub fn from_shaders(shaders: Vec>) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:130:47 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn push_shader(&mut self, shader: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:158:21 [INFO] [stderr] | [INFO] [stderr] 158 | normal_map: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:162:32 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn new(normal_map: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/primitive.rs:21:20 [INFO] [stderr] | [INFO] [stderr] 21 | primitive: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/primitive.rs:25:31 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn new(primitive: Box) -> OneWay { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/primitive.rs:50:20 [INFO] [stderr] | [INFO] [stderr] 50 | primitive: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/primitive.rs:54:31 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn new(primitive: Box) -> Inverted { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/light.rs:18:32 [INFO] [stderr] | [INFO] [stderr] 18 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/light.rs:25:32 [INFO] [stderr] | [INFO] [stderr] 25 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/light.rs:30:20 [INFO] [stderr] | [INFO] [stderr] 30 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/light.rs:31:28 [INFO] [stderr] | [INFO] [stderr] 31 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/multithread.rs:19:16 [INFO] [stderr] | [INFO] [stderr] 19 | type Job = Box; [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn FnBox + Send` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Duration` [INFO] [stderr] --> src/progress_tracker.rs:4:26 [INFO] [stderr] | [INFO] [stderr] 4 | use std::time::{Instant, Duration}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `shader::*` [INFO] [stderr] --> src/render.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use shader::*; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `primitive::*` [INFO] [stderr] --> src/render.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use primitive::*; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `light::*` [INFO] [stderr] --> src/render.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use light::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/base_shape.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | primitive: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/base_shape.rs:10:46 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn new(matrix: DMat4, primitive: Box) -> BaseShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/base_shape.rs:19:35 [INFO] [stderr] | [INFO] [stderr] 19 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/subtract_shape.rs:6:19 [INFO] [stderr] | [INFO] [stderr] 6 | positive: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/subtract_shape.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | negative: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/subtract_shape.rs:11:30 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(positive: Box, negative: Box) -> SubtractShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/subtract_shape.rs:11:73 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(positive: Box, negative: Box) -> SubtractShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/subtract_shape.rs:21:35 [INFO] [stderr] | [INFO] [stderr] 21 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/or_shape.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | primary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/or_shape.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | secondary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/or_shape.rs:11:29 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> OrShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/or_shape.rs:11:73 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> OrShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/or_shape.rs:51:35 [INFO] [stderr] | [INFO] [stderr] 51 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/xor_shape.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | primary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/xor_shape.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | secondary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/xor_shape.rs:11:29 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> XorShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/xor_shape.rs:11:73 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> XorShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/xor_shape.rs:58:35 [INFO] [stderr] | [INFO] [stderr] 58 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | primary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | secondary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:11:29 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> AndShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:11:73 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> AndShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:47:35 [INFO] [stderr] | [INFO] [stderr] 47 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | shapes: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:74:37 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn from_vec(shapes: Vec>) -> MultiAndShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:83:35 [INFO] [stderr] | [INFO] [stderr] 83 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:75:33 [INFO] [stderr] | [INFO] [stderr] 75 | fn calculate_intersects(comp: &(Compositable + Send + Sync), ray: Ray, check_get: &mut FnMut(usize, &Vec, Intersect) -> Control) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:75:88 [INFO] [stderr] | [INFO] [stderr] 75 | fn calculate_intersects(comp: &(Compositable + Send + Sync), ray: Ray, check_get: &mut FnMut(usize, &Vec, Intersect) -> Control) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(usize, &Vec, Intersect) -> Control` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:126:35 [INFO] [stderr] | [INFO] [stderr] 126 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:132:45 [INFO] [stderr] | [INFO] [stderr] 132 | fn clone_compositable_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:139:45 [INFO] [stderr] | [INFO] [stderr] 139 | fn clone_compositable_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:144:20 [INFO] [stderr] | [INFO] [stderr] 144 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:145:28 [INFO] [stderr] | [INFO] [stderr] 145 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:35:36 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn build_scene(lights: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:38:30 [INFO] [stderr] | [INFO] [stderr] 38 | root: Box) -> Scene { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:58:33 [INFO] [stderr] | [INFO] [stderr] 58 | material: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:59:34 [INFO] [stderr] | [INFO] [stderr] 59 | primitive: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:60:37 [INFO] [stderr] | [INFO] [stderr] 60 | children: Vec>) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:72:37 [INFO] [stderr] | [INFO] [stderr] 72 | children: Vec>) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:101:59 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn create_wall_from_material(size: f64, material: Box, transform: DMat4) -> SceneNode { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:128:60 [INFO] [stderr] | [INFO] [stderr] 128 | pub fn create_floor_from_material(size: f64, material: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:147:22 [INFO] [stderr] | [INFO] [stderr] 147 | pub ceiling: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:148:20 [INFO] [stderr] | [INFO] [stderr] 148 | pub floor: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:149:20 [INFO] [stderr] | [INFO] [stderr] 149 | pub front: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:150:19 [INFO] [stderr] | [INFO] [stderr] 150 | pub back: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:151:19 [INFO] [stderr] | [INFO] [stderr] 151 | pub left: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:152:20 [INFO] [stderr] | [INFO] [stderr] 152 | pub right: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:299:55 [INFO] [stderr] | [INFO] [stderr] 299 | pub fn subtract_shape(transform: DMat4, positive: Box, negative: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:299:98 [INFO] [stderr] | [INFO] [stderr] 299 | pub fn subtract_shape(transform: DMat4, positive: Box, negative: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:305:48 [INFO] [stderr] | [INFO] [stderr] 305 | pub fn or_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:305:92 [INFO] [stderr] | [INFO] [stderr] 305 | pub fn or_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:311:49 [INFO] [stderr] | [INFO] [stderr] 311 | pub fn xor_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:311:93 [INFO] [stderr] | [INFO] [stderr] 311 | pub fn xor_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:317:49 [INFO] [stderr] | [INFO] [stderr] 317 | pub fn and_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:317:93 [INFO] [stderr] | [INFO] [stderr] 317 | pub fn and_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:325:26 [INFO] [stderr] | [INFO] [stderr] 325 | let spheres: Vec> = vec!( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:351:52 [INFO] [stderr] | [INFO] [stderr] 351 | pub fn base_shape(transform: DMat4, primitive: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/texture.rs:11:32 [INFO] [stderr] | [INFO] [stderr] 11 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/texture.rs:18:32 [INFO] [stderr] | [INFO] [stderr] 18 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/texture.rs:23:20 [INFO] [stderr] | [INFO] [stderr] 23 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/texture.rs:24:28 [INFO] [stderr] | [INFO] [stderr] 24 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: unused import: `color::Color` [INFO] [stderr] --> src/normal_map.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use color::Color; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/normal_map.rs:16:32 [INFO] [stderr] | [INFO] [stderr] 16 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/normal_map.rs:23:32 [INFO] [stderr] | [INFO] [stderr] 23 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/normal_map.rs:28:20 [INFO] [stderr] | [INFO] [stderr] 28 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/normal_map.rs:29:28 [INFO] [stderr] | [INFO] [stderr] 29 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: unused import: `image::RgbImage` [INFO] [stderr] --> src/asset_manager.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use image::RgbImage; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/asset_manager.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/asset_manager.rs:16:41 [INFO] [stderr] | [INFO] [stderr] 16 | texture_cache: HashMap<&'a str, Box>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/asset_manager.rs:17:44 [INFO] [stderr] | [INFO] [stderr] 17 | normal_map_cache: HashMap<&'a str, Box>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/asset_manager.rs:29:69 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn image_texture_from_path(&mut self, path: &'a str) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/asset_manager.rs:41:76 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn bump_map_from_path(&mut self, path: &'a str, depth: f64) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/asset_manager.rs:51:66 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn normal_map_from_path(&mut self, path: &'a str) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable` [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ImageBuffer`, `RgbImage` [INFO] [stderr] --> src/scene.rs:8:13 [INFO] [stderr] | [INFO] [stderr] 8 | use image::{RgbImage, ImageBuffer}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/scene.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:17:16 [INFO] [stderr] | [INFO] [stderr] 17 | image: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:48:19 [INFO] [stderr] | [INFO] [stderr] 48 | pub root: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:49:25 [INFO] [stderr] | [INFO] [stderr] 49 | pub lights: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:87:44 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn add_light(&mut self, light: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:111:40 [INFO] [stderr] | [INFO] [stderr] 111 | fn add_child(&mut self, child: Box); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:112:50 [INFO] [stderr] | [INFO] [stderr] 112 | fn add_children(&mut self, children: Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:123:32 [INFO] [stderr] | [INFO] [stderr] 123 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:130:32 [INFO] [stderr] | [INFO] [stderr] 130 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:135:20 [INFO] [stderr] | [INFO] [stderr] 135 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:136:28 [INFO] [stderr] | [INFO] [stderr] 136 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:144:27 [INFO] [stderr] | [INFO] [stderr] 144 | primitive: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:145:19 [INFO] [stderr] | [INFO] [stderr] 145 | material: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:147:23 [INFO] [stderr] | [INFO] [stderr] 147 | children: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:163:52 [INFO] [stderr] | [INFO] [stderr] 163 | pub fn set_primitive(&mut self, primitive: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:167:50 [INFO] [stderr] | [INFO] [stderr] 167 | pub fn set_material(&mut self, material: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/scene.rs:192:40 [INFO] [stderr] | [INFO] [stderr] 192 | fn add_child(&mut self, child: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DVec2`, `dvec2` [INFO] [stderr] --> src/geometry.rs:1:27 [INFO] [stderr] | [INFO] [stderr] 1 | use euler::{dmat4, DMat4, DVec2, DVec3, dvec3, dvec4, dvec2}; [INFO] [stderr] | ^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry/intersect.rs:66:22 [INFO] [stderr] | [INFO] [stderr] 66 | pub shader: &'a (Shadable + Send + Sync + 'a), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry/intersect.rs:71:54 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn new(hit_id: ProcessUniqueId, shader: &'a (Shadable + Send + Sync + 'a), intersect: Intersect) -> NodeIntersect<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:33:32 [INFO] [stderr] | [INFO] [stderr] 33 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:40:32 [INFO] [stderr] | [INFO] [stderr] 40 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:45:20 [INFO] [stderr] | [INFO] [stderr] 45 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:46:28 [INFO] [stderr] | [INFO] [stderr] 46 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:65:32 [INFO] [stderr] | [INFO] [stderr] 65 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Transformable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:72:32 [INFO] [stderr] | [INFO] [stderr] 72 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Transformable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:77:20 [INFO] [stderr] | [INFO] [stderr] 77 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Transformable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/geometry.rs:78:28 [INFO] [stderr] | [INFO] [stderr] 78 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Transformable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: unused import: `euler::DVec3` [INFO] [stderr] --> src/shader.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use euler::DVec3; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `SurfaceCoord` [INFO] [stderr] --> src/shader.rs:7:32 [INFO] [stderr] | [INFO] [stderr] 7 | use geometry::{Intersect, Ray, SurfaceCoord}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader/texture.rs:5:18 [INFO] [stderr] | [INFO] [stderr] 5 | texture: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader/texture.rs:9:29 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn new(texture: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:34:32 [INFO] [stderr] | [INFO] [stderr] 34 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:41:32 [INFO] [stderr] | [INFO] [stderr] 41 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:46:20 [INFO] [stderr] | [INFO] [stderr] 46 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:47:28 [INFO] [stderr] | [INFO] [stderr] 47 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:54:22 [INFO] [stderr] | [INFO] [stderr] 54 | shaders: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:58:42 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn from_shaders(shaders: Vec>) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:62:46 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn add_shader(&mut self, shader: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:79:28 [INFO] [stderr] | [INFO] [stderr] 79 | shaders: Vec<(f64, Box)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:87:59 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn add_shader(&mut self, weight: f64, shader: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:91:48 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn from_shaders(shaders: Vec<(f64, Box)>) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:116:22 [INFO] [stderr] | [INFO] [stderr] 116 | shaders: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:126:42 [INFO] [stderr] | [INFO] [stderr] 126 | pub fn from_shaders(shaders: Vec>) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:130:47 [INFO] [stderr] | [INFO] [stderr] 130 | pub fn push_shader(&mut self, shader: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:158:21 [INFO] [stderr] | [INFO] [stderr] 158 | normal_map: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/shader.rs:162:32 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn new(normal_map: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/primitive.rs:21:20 [INFO] [stderr] | [INFO] [stderr] 21 | primitive: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/primitive.rs:25:31 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn new(primitive: Box) -> OneWay { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/primitive.rs:50:20 [INFO] [stderr] | [INFO] [stderr] 50 | primitive: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/primitive.rs:54:31 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn new(primitive: Box) -> Inverted { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/light.rs:18:32 [INFO] [stderr] | [INFO] [stderr] 18 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/light.rs:25:32 [INFO] [stderr] | [INFO] [stderr] 25 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/light.rs:30:20 [INFO] [stderr] | [INFO] [stderr] 30 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/light.rs:31:28 [INFO] [stderr] | [INFO] [stderr] 31 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/multithread.rs:19:16 [INFO] [stderr] | [INFO] [stderr] 19 | type Job = Box; [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn FnBox + Send` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Duration` [INFO] [stderr] --> src/progress_tracker.rs:4:26 [INFO] [stderr] | [INFO] [stderr] 4 | use std::time::{Instant, Duration}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `shader::*` [INFO] [stderr] --> src/render.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use shader::*; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `primitive::*` [INFO] [stderr] --> src/render.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use primitive::*; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `light::*` [INFO] [stderr] --> src/render.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use light::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/base_shape.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | primitive: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/base_shape.rs:10:46 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn new(matrix: DMat4, primitive: Box) -> BaseShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/base_shape.rs:19:35 [INFO] [stderr] | [INFO] [stderr] 19 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/subtract_shape.rs:6:19 [INFO] [stderr] | [INFO] [stderr] 6 | positive: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/subtract_shape.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | negative: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/subtract_shape.rs:11:30 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(positive: Box, negative: Box) -> SubtractShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/subtract_shape.rs:11:73 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(positive: Box, negative: Box) -> SubtractShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/subtract_shape.rs:21:35 [INFO] [stderr] | [INFO] [stderr] 21 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/or_shape.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | primary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/or_shape.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | secondary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/or_shape.rs:11:29 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> OrShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/or_shape.rs:11:73 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> OrShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/or_shape.rs:51:35 [INFO] [stderr] | [INFO] [stderr] 51 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/xor_shape.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | primary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/xor_shape.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | secondary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/xor_shape.rs:11:29 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> XorShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/xor_shape.rs:11:73 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> XorShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/xor_shape.rs:58:35 [INFO] [stderr] | [INFO] [stderr] 58 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | primary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | secondary: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:11:29 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> AndShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:11:73 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn new(primary: Box, secondary: Box) -> AndShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:47:35 [INFO] [stderr] | [INFO] [stderr] 47 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | shapes: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:74:37 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn from_vec(shapes: Vec>) -> MultiAndShape { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape/and_shape.rs:83:35 [INFO] [stderr] | [INFO] [stderr] 83 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:75:33 [INFO] [stderr] | [INFO] [stderr] 75 | fn calculate_intersects(comp: &(Compositable + Send + Sync), ray: Ray, check_get: &mut FnMut(usize, &Vec, Intersect) -> Control) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:75:88 [INFO] [stderr] | [INFO] [stderr] 75 | fn calculate_intersects(comp: &(Compositable + Send + Sync), ray: Ray, check_get: &mut FnMut(usize, &Vec, Intersect) -> Control) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(usize, &Vec, Intersect) -> Control` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:126:35 [INFO] [stderr] | [INFO] [stderr] 126 | fn get_shapes(&self) -> Vec<&(Compositable + Send + Sync)>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:132:45 [INFO] [stderr] | [INFO] [stderr] 132 | fn clone_compositable_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:139:45 [INFO] [stderr] | [INFO] [stderr] 139 | fn clone_compositable_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:144:20 [INFO] [stderr] | [INFO] [stderr] 144 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/composite_shape.rs:145:28 [INFO] [stderr] | [INFO] [stderr] 145 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:35:36 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn build_scene(lights: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Lightable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:38:30 [INFO] [stderr] | [INFO] [stderr] 38 | root: Box) -> Scene { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:58:33 [INFO] [stderr] | [INFO] [stderr] 58 | material: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:59:34 [INFO] [stderr] | [INFO] [stderr] 59 | primitive: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:60:37 [INFO] [stderr] | [INFO] [stderr] 60 | children: Vec>) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:72:37 [INFO] [stderr] | [INFO] [stderr] 72 | children: Vec>) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Traceable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:101:59 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn create_wall_from_material(size: f64, material: Box, transform: DMat4) -> SceneNode { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:128:60 [INFO] [stderr] | [INFO] [stderr] 128 | pub fn create_floor_from_material(size: f64, material: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:147:22 [INFO] [stderr] | [INFO] [stderr] 147 | pub ceiling: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:148:20 [INFO] [stderr] | [INFO] [stderr] 148 | pub floor: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:149:20 [INFO] [stderr] | [INFO] [stderr] 149 | pub front: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:150:19 [INFO] [stderr] | [INFO] [stderr] 150 | pub back: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:151:19 [INFO] [stderr] | [INFO] [stderr] 151 | pub left: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:152:20 [INFO] [stderr] | [INFO] [stderr] 152 | pub right: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Shadable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:299:55 [INFO] [stderr] | [INFO] [stderr] 299 | pub fn subtract_shape(transform: DMat4, positive: Box, negative: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:299:98 [INFO] [stderr] | [INFO] [stderr] 299 | pub fn subtract_shape(transform: DMat4, positive: Box, negative: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:305:48 [INFO] [stderr] | [INFO] [stderr] 305 | pub fn or_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:305:92 [INFO] [stderr] | [INFO] [stderr] 305 | pub fn or_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:311:49 [INFO] [stderr] | [INFO] [stderr] 311 | pub fn xor_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:311:93 [INFO] [stderr] | [INFO] [stderr] 311 | pub fn xor_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:317:49 [INFO] [stderr] | [INFO] [stderr] 317 | pub fn and_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:317:93 [INFO] [stderr] | [INFO] [stderr] 317 | pub fn and_shape(transform: DMat4, primary: Box, secondary: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:325:26 [INFO] [stderr] | [INFO] [stderr] 325 | let spheres: Vec> = vec!( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Compositable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/util.rs:351:52 [INFO] [stderr] | [INFO] [stderr] 351 | pub fn base_shape(transform: DMat4, primitive: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Intersectable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/texture.rs:11:32 [INFO] [stderr] | [INFO] [stderr] 11 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/texture.rs:18:32 [INFO] [stderr] | [INFO] [stderr] 18 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/texture.rs:23:20 [INFO] [stderr] | [INFO] [stderr] 23 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/texture.rs:24:28 [INFO] [stderr] | [INFO] [stderr] 24 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: unused import: `color::Color` [INFO] [stderr] --> src/normal_map.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use color::Color; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/normal_map.rs:16:32 [INFO] [stderr] | [INFO] [stderr] 16 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/normal_map.rs:23:32 [INFO] [stderr] | [INFO] [stderr] 23 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/normal_map.rs:28:20 [INFO] [stderr] | [INFO] [stderr] 28 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/normal_map.rs:29:28 [INFO] [stderr] | [INFO] [stderr] 29 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: unused import: `image::RgbImage` [INFO] [stderr] --> src/asset_manager.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use image::RgbImage; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/asset_manager.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/asset_manager.rs:16:41 [INFO] [stderr] | [INFO] [stderr] 16 | texture_cache: HashMap<&'a str, Box>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/asset_manager.rs:17:44 [INFO] [stderr] | [INFO] [stderr] 17 | normal_map_cache: HashMap<&'a str, Box>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/asset_manager.rs:29:69 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn image_texture_from_path(&mut self, path: &'a str) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TextureMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/asset_manager.rs:41:76 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn bump_map_from_path(&mut self, path: &'a str, depth: f64) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/asset_manager.rs:51:66 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn normal_map_from_path(&mut self, path: &'a str) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable` [INFO] [stderr] [INFO] [stderr] warning: unused import: `scene::Traceable` [INFO] [stderr] --> src/shader.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use scene::Traceable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `scene` [INFO] [stderr] --> src/shader.rs:171:25 [INFO] [stderr] | [INFO] [stderr] 171 | fn get_color(&self, scene: &Scene, intersect: Intersect) -> Color { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_scene` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `scene` [INFO] [stderr] --> src/shader.rs:176:32 [INFO] [stderr] | [INFO] [stderr] 176 | fn modify_intersect(&self, scene: &Scene, intersect: Intersect) -> Intersect { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_scene` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ray` [INFO] [stderr] --> src/primitive/plane.rs:207:37 [INFO] [stderr] | [INFO] [stderr] 207 | fn get_closest_intersect(&self, ray: Ray) -> Option { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_ray` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/scene.rs:241:25 [INFO] [stderr] | [INFO] [stderr] 241 | if let Some(mut child_node_intersect) = child.partial_trace_until_distance(ray, max_distance) { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `scene::Traceable` [INFO] [stderr] --> src/shader.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use scene::Traceable; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `scene` [INFO] [stderr] --> src/shader.rs:171:25 [INFO] [stderr] | [INFO] [stderr] 171 | fn get_color(&self, scene: &Scene, intersect: Intersect) -> Color { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_scene` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `scene` [INFO] [stderr] --> src/shader.rs:176:32 [INFO] [stderr] | [INFO] [stderr] 176 | fn modify_intersect(&self, scene: &Scene, intersect: Intersect) -> Intersect { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_scene` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ray` [INFO] [stderr] --> src/primitive/plane.rs:207:37 [INFO] [stderr] | [INFO] [stderr] 207 | fn get_closest_intersect(&self, ray: Ray) -> Option { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_ray` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/scene.rs:241:25 [INFO] [stderr] | [INFO] [stderr] 241 | if let Some(mut child_node_intersect) = child.partial_trace_until_distance(ray, max_distance) { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/composite_shape.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | let mut intersects: Vec<(usize, Hit, Intersect)> = shape_sects.into_iter().map(|x| (i, hit_direction(x), x)).collect(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `AMBIENT_PORTION` [INFO] [stderr] --> src/light.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | const AMBIENT_PORTION : f64 = 0.01; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `id` [INFO] [stderr] --> src/multithread.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | id: usize, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `image_dimension` [INFO] [stderr] --> src/progress_tracker.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | image_dimension: ImageDimension, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated constant `texture_offsets` should have an upper case name [INFO] [stderr] --> src/primitive/cube.rs:12:11 [INFO] [stderr] | [INFO] [stderr] 12 | const texture_offsets: [(f64, f64); 6] = [(2.0, 1.0), (0.0, 1.0), (1.0, 1.0), (3.0, 1.0), (1.0, 2.0), (1.0, 0.0)]; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TEXTURE_OFFSETS` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_upper_case_globals)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `A` should have a snake case name [INFO] [stderr] --> src/composite_shape.rs:33:10 [INFO] [stderr] | [INFO] [stderr] 33 | fn merge(A: Vec<(usize, Hit, Intersect)>, B: Vec<(usize, Hit, Intersect)>) -> Vec<(usize, Hit, Intersect)> { [INFO] [stderr] | ^ help: convert the identifier to snake case: `a` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `B` should have a snake case name [INFO] [stderr] --> src/composite_shape.rs:33:43 [INFO] [stderr] | [INFO] [stderr] 33 | fn merge(A: Vec<(usize, Hit, Intersect)>, B: Vec<(usize, Hit, Intersect)>) -> Vec<(usize, Hit, Intersect)> { [INFO] [stderr] | ^ help: convert the identifier to snake case: `b` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/composite_shape.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | let mut intersects: Vec<(usize, Hit, Intersect)> = shape_sects.into_iter().map(|x| (i, hit_direction(x), x)).collect(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `AMBIENT_PORTION` [INFO] [stderr] --> src/light.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | const AMBIENT_PORTION : f64 = 0.01; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `id` [INFO] [stderr] --> src/multithread.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | id: usize, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `image_dimension` [INFO] [stderr] --> src/progress_tracker.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | image_dimension: ImageDimension, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated constant `texture_offsets` should have an upper case name [INFO] [stderr] --> src/primitive/cube.rs:12:11 [INFO] [stderr] | [INFO] [stderr] 12 | const texture_offsets: [(f64, f64); 6] = [(2.0, 1.0), (0.0, 1.0), (1.0, 1.0), (3.0, 1.0), (1.0, 2.0), (1.0, 0.0)]; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TEXTURE_OFFSETS` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_upper_case_globals)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `A` should have a snake case name [INFO] [stderr] --> src/composite_shape.rs:33:10 [INFO] [stderr] | [INFO] [stderr] 33 | fn merge(A: Vec<(usize, Hit, Intersect)>, B: Vec<(usize, Hit, Intersect)>) -> Vec<(usize, Hit, Intersect)> { [INFO] [stderr] | ^ help: convert the identifier to snake case: `a` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `B` should have a snake case name [INFO] [stderr] --> src/composite_shape.rs:33:43 [INFO] [stderr] | [INFO] [stderr] 33 | fn merge(A: Vec<(usize, Hit, Intersect)>, B: Vec<(usize, Hit, Intersect)>) -> Vec<(usize, Hit, Intersect)> { [INFO] [stderr] | ^ help: convert the identifier to snake case: `b` [INFO] [stderr] [INFO] [stderr] warning: unused import: `raytracer::matrix::*` [INFO] [stderr] --> tests/basic_test.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use raytracer::matrix::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `raytracer::matrix::*` [INFO] [stderr] --> tests/composite_shape_test.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use raytracer::matrix::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `raytracer::matrix::*` [INFO] [stderr] --> tests/dice_scene.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use raytracer::matrix::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `raytracer::matrix::*` [INFO] [stderr] --> tests/anti_alias_test.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use raytracer::matrix::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `double_subracted_sphere` [INFO] [stderr] --> tests/composite_shape_test.rs:128:1 [INFO] [stderr] | [INFO] [stderr] 128 | fn double_subracted_sphere(size: f64) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_camera` [INFO] [stderr] --> tests/dice_scene.rs:89:1 [INFO] [stderr] | [INFO] [stderr] 89 | fn make_camera() -> CameraConfig { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> tests/bump_map_test.rs:16:55 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn test_bump_shader(color: Color, normal_map: Box) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NormalMappable + Send + Sync` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `light4` [INFO] [stderr] --> tests/polyhedra_test.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | fn light4() -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `light1` [INFO] [stderr] --> src/main.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | fn light1() -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `light2` [INFO] [stderr] --> src/main.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | fn light2() -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `wood_material` [INFO] [stderr] --> src/main.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | fn wood_material() -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_character_sheet` [INFO] [stderr] --> src/main.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | fn make_character_sheet(size: f64, transform: DMat4) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_d6` [INFO] [stderr] --> src/main.rs:43:1 [INFO] [stderr] | [INFO] [stderr] 43 | fn make_d6(size: f64, transform: DMat4) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_d4` [INFO] [stderr] --> src/main.rs:58:1 [INFO] [stderr] | [INFO] [stderr] 58 | fn make_d4(transform: DMat4) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_d6_no_texture` [INFO] [stderr] --> src/main.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | fn make_d6_no_texture(size: f64, transform: DMat4) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_dice_scene` [INFO] [stderr] --> src/main.rs:83:1 [INFO] [stderr] | [INFO] [stderr] 83 | fn make_dice_scene() -> Scene { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_camera` [INFO] [stderr] --> src/main.rs:101:1 [INFO] [stderr] | [INFO] [stderr] 101 | fn make_camera() -> CameraConfig { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `dice_scene_lo_res` [INFO] [stderr] --> src/main.rs:105:1 [INFO] [stderr] | [INFO] [stderr] 105 | fn dice_scene_lo_res() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `dice_scene_hi_res` [INFO] [stderr] --> src/main.rs:111:1 [INFO] [stderr] | [INFO] [stderr] 111 | fn dice_scene_hi_res() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `raytracer::matrix::*` [INFO] [stderr] --> tests/scene_test.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use raytracer::matrix::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `light1` [INFO] [stderr] --> src/main.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | fn light1() -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `light2` [INFO] [stderr] --> src/main.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | fn light2() -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `wood_material` [INFO] [stderr] --> src/main.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | fn wood_material() -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_character_sheet` [INFO] [stderr] --> src/main.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | fn make_character_sheet(size: f64, transform: DMat4) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_d6` [INFO] [stderr] --> src/main.rs:43:1 [INFO] [stderr] | [INFO] [stderr] 43 | fn make_d6(size: f64, transform: DMat4) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_d4` [INFO] [stderr] --> src/main.rs:58:1 [INFO] [stderr] | [INFO] [stderr] 58 | fn make_d4(transform: DMat4) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_d6_no_texture` [INFO] [stderr] --> src/main.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | fn make_d6_no_texture(size: f64, transform: DMat4) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_dice_scene` [INFO] [stderr] --> src/main.rs:83:1 [INFO] [stderr] | [INFO] [stderr] 83 | fn make_dice_scene() -> Scene { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `make_camera` [INFO] [stderr] --> src/main.rs:101:1 [INFO] [stderr] | [INFO] [stderr] 101 | fn make_camera() -> CameraConfig { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `dice_scene_lo_res` [INFO] [stderr] --> src/main.rs:105:1 [INFO] [stderr] | [INFO] [stderr] 105 | fn dice_scene_lo_res() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `dice_scene_hi_res` [INFO] [stderr] --> src/main.rs:111:1 [INFO] [stderr] | [INFO] [stderr] 111 | fn dice_scene_hi_res() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `light3` [INFO] [stderr] --> tests/normal_map_test.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | fn light3() -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `light4` [INFO] [stderr] --> tests/normal_map_test.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | fn light4() -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 12.34s [INFO] running `"docker" "inspect" "ab15173f2ebc71eeae54a2c182b61f6bb0bd3873a34bd76d71c22544891e7f87"` [INFO] running `"docker" "rm" "-f" "ab15173f2ebc71eeae54a2c182b61f6bb0bd3873a34bd76d71c22544891e7f87"` [INFO] [stdout] ab15173f2ebc71eeae54a2c182b61f6bb0bd3873a34bd76d71c22544891e7f87