[INFO] updating cached repository https://github.com/dobrite/dwemthys-rs
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] cabcbafb64c6f39fdc89ed23479281b44153c61f
[INFO] checking dobrite/dwemthys-rs against master#209b2be09fcaff937480d1fbbe8b31646e361c7a for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdobrite%2Fdwemthys-rs" "/workspace/builds/worker-12/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-12/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/dobrite/dwemthys-rs on toolchain 209b2be09fcaff937480d1fbbe8b31646e361c7a
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/dobrite/dwemthys-rs
[INFO] finished tweaking git repo https://github.com/dobrite/dwemthys-rs
[INFO] tweaked toml for git repo https://github.com/dobrite/dwemthys-rs written to /workspace/builds/worker-12/source/Cargo.toml
[INFO] crate git repo https://github.com/dobrite/dwemthys-rs already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr] error: the lock file /workspace/builds/worker-12/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating git repository `https://github.com/tomassedovic/tcod-rs.git`
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 0a898e0d5174d96dee7eb6d25bcb6758f854d8b046a83560370a939cf38801aa
[INFO] running `"docker" "start" "-a" "0a898e0d5174d96dee7eb6d25bcb6758f854d8b046a83560370a939cf38801aa"`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling tcod-sys v5.0.1 (https://github.com/tomassedovic/tcod-rs.git#725f0672)
[INFO] [stderr]     Checking tcod v0.15.0 (https://github.com/tomassedovic/tcod-rs.git#725f0672)
[INFO] [stderr]     Checking dwemthys v0.0.1 (/opt/rustwide/workdir)
[INFO] [stderr] error[E0432]: unresolved import `self::tcod::KeyState`
[INFO] [stderr]  --> src/game/mod.rs:3:18
[INFO] [stderr]   |
[INFO] [stderr] 3 | use self::tcod::{KeyState};
[INFO] [stderr]   |                  ^^^^^^^^ no `KeyState` in the root
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved imports `self::tcod::background_flag`, `self::tcod::KeyState`
[INFO] [stderr]  --> src/rendering/mod.rs:2:27
[INFO] [stderr]   |
[INFO] [stderr] 2 | use self::tcod::{Console, background_flag, KeyState};
[INFO] [stderr]   |                           ^^^^^^^^^^^^^^^  ^^^^^^^^ no `KeyState` in the root
[INFO] [stderr]   |                           |
[INFO] [stderr]   |                           no `background_flag` in the root
[INFO] [stderr]   |                           help: a similar name exists in the module: `BackgroundFlag`
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved import `std::rand`
[INFO] [stderr]  --> src/movement/mod.rs:4:10
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::rand::Rng;
[INFO] [stderr]   |          ^^^^ could not find `rand` in `std`
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved imports `self::tcod::Special`, `self::tcod::key_code`
[INFO] [stderr]  --> src/movement/mod.rs:6:18
[INFO] [stderr]   |
[INFO] [stderr] 6 | use self::tcod::{Special, key_code};
[INFO] [stderr]   |                  ^^^^^^^  ^^^^^^^^ no `key_code` in the root
[INFO] [stderr]   |                  |
[INFO] [stderr]   |                  no `Special` in the root
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved imports `util::DoesContain`, `util::DoesNotContain`, `util::LeftOfPoint`, `util::RightOfPoint`, `util::OnPointX`, `util::OnPointY`, `util::AbovePoint`, `util::BelowPoint`, `util::PointsEqual`, `util::PointsNotEqual`
[INFO] [stderr]   --> src/movement/mod.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     DoesContain,
[INFO] [stderr]    |     ^^^^^^^^^^^ no `DoesContain` in `util`
[INFO] [stderr] 12 |     DoesNotContain,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ no `DoesNotContain` in `util`
[INFO] [stderr] 13 |     LeftOfPoint,
[INFO] [stderr]    |     ^^^^^^^^^^^ no `LeftOfPoint` in `util`
[INFO] [stderr] 14 |     RightOfPoint,
[INFO] [stderr]    |     ^^^^^^^^^^^^ no `RightOfPoint` in `util`
[INFO] [stderr] 15 |     OnPointX,
[INFO] [stderr]    |     ^^^^^^^^ no `OnPointX` in `util`
[INFO] [stderr] 16 |     OnPointY,
[INFO] [stderr]    |     ^^^^^^^^ no `OnPointY` in `util`
[INFO] [stderr] 17 |     AbovePoint,
[INFO] [stderr]    |     ^^^^^^^^^^ no `AbovePoint` in `util`
[INFO] [stderr] 18 |     BelowPoint,
[INFO] [stderr]    |     ^^^^^^^^^^ no `BelowPoint` in `util`
[INFO] [stderr] 19 |     PointsEqual,
[INFO] [stderr]    |     ^^^^^^^^^^^ no `PointsEqual` in `util`
[INFO] [stderr] 20 |     PointsNotEqual
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ no `PointsNotEqual` in `util`
[INFO] [stderr] 
[INFO] [stderr] error[E0433]: failed to resolve: could not find `rand` in `std`
[INFO] [stderr]   --> src/movement/mod.rs:49:29
[INFO] [stderr]    |
[INFO] [stderr] 49 |         let offset_x = std::rand::task_rng().gen_range(0, 3i32) - 1;
[INFO] [stderr]    |                             ^^^^ could not find `rand` in `std`
[INFO] [stderr] 
[INFO] [stderr] error[E0433]: failed to resolve: could not find `rand` in `std`
[INFO] [stderr]   --> src/movement/mod.rs:55:29
[INFO] [stderr]    |
[INFO] [stderr] 55 |         let offset_y = std::rand::task_rng().gen_range(0, 3i32) - 1;
[INFO] [stderr]    |                             ^^^^ could not find `rand` in `std`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `RightOfPoint` in this scope
[INFO] [stderr]   --> src/util/mod.rs:38:13
[INFO] [stderr]    |
[INFO] [stderr] 38 |             RightOfPoint
[INFO] [stderr]    |             ^^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::XPointRelation::RightOfPoint;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `LeftOfPoint` in this scope
[INFO] [stderr]   --> src/util/mod.rs:40:13
[INFO] [stderr]    |
[INFO] [stderr] 40 |             LeftOfPoint
[INFO] [stderr]    |             ^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::XPointRelation::LeftOfPoint;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `OnPointX` in this scope
[INFO] [stderr]   --> src/util/mod.rs:42:13
[INFO] [stderr]    |
[INFO] [stderr] 42 |             OnPointX
[INFO] [stderr]    |             ^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::XPointRelation::OnPointX;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `BelowPoint` in this scope
[INFO] [stderr]   --> src/util/mod.rs:48:13
[INFO] [stderr]    |
[INFO] [stderr] 48 |             BelowPoint
[INFO] [stderr]    |             ^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::YPointRelation::BelowPoint;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `AbovePoint` in this scope
[INFO] [stderr]   --> src/util/mod.rs:50:13
[INFO] [stderr]    |
[INFO] [stderr] 50 |             AbovePoint
[INFO] [stderr]    |             ^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::YPointRelation::AbovePoint;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `OnPointY` in this scope
[INFO] [stderr]   --> src/util/mod.rs:52:13
[INFO] [stderr]    |
[INFO] [stderr] 52 |             OnPointY
[INFO] [stderr]    |             ^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::YPointRelation::OnPointY;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `PointsEqual` in this scope
[INFO] [stderr]   --> src/util/mod.rs:58:13
[INFO] [stderr]    |
[INFO] [stderr] 58 |             PointsEqual
[INFO] [stderr]    |             ^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::PointEquality::PointsEqual;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `PointsNotEqual` in this scope
[INFO] [stderr]   --> src/util/mod.rs:60:13
[INFO] [stderr]    |
[INFO] [stderr] 60 |             PointsNotEqual
[INFO] [stderr]    |             ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::PointEquality::PointsNotEqual;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `DoesContain` in this scope
[INFO] [stderr]   --> src/util/mod.rs:83:13
[INFO] [stderr]    |
[INFO] [stderr] 83 |             DoesContain
[INFO] [stderr]    |             ^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::Contains::DoesContain;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `DoesNotContain` in this scope
[INFO] [stderr]   --> src/util/mod.rs:85:13
[INFO] [stderr]    |
[INFO] [stderr] 85 |             DoesNotContain
[INFO] [stderr]    |             ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::Contains::DoesNotContain;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `int` in this scope
[INFO] [stderr]   --> src/rendering/mod.rs:21:35
[INFO] [stderr]    |
[INFO] [stderr] 21 |             (bounds.max.x + 1) as int,
[INFO] [stderr]    |                                   ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `int` in this scope
[INFO] [stderr]   --> src/rendering/mod.rs:22:35
[INFO] [stderr]    |
[INFO] [stderr] 22 |             (bounds.max.y + 1) as int,
[INFO] [stderr]    |                                   ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `int` in this scope
[INFO] [stderr]   --> src/rendering/mod.rs:37:45
[INFO] [stderr]    |
[INFO] [stderr] 37 |         self.console.put_char(position.x as int, position.y as int, symbol, background_flag::Set);
[INFO] [stderr]    |                                             ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `int` in this scope
[INFO] [stderr]   --> src/rendering/mod.rs:37:64
[INFO] [stderr]    |
[INFO] [stderr] 37 |         self.console.put_char(position.x as int, position.y as int, symbol, background_flag::Set);
[INFO] [stderr]    |                                                                ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
[INFO] [stderr]   --> src/game/mod.rs:41:48
[INFO] [stderr]    |
[INFO] [stderr] 41 |         let rc : Box<TcodRenderingComponent> = box RenderingComponent::new(bounds);
[INFO] [stderr]    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
[INFO] [stderr]    = help: add `#![feature(box_syntax)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
[INFO] [stderr]   --> src/actor/mod.rs:43:49
[INFO] [stderr]    |
[INFO] [stderr] 43 |         let mc : Box<RandomMovementComponent> = box MovementComponent::new(bound);
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
[INFO] [stderr]    = help: add `#![feature(box_syntax)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
[INFO] [stderr]   --> src/actor/mod.rs:48:49
[INFO] [stderr]    |
[INFO] [stderr] 48 |         let mc : Box<RandomMovementComponent> = box MovementComponent::new(bound);
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
[INFO] [stderr]    = help: add `#![feature(box_syntax)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
[INFO] [stderr]   --> src/actor/mod.rs:53:48
[INFO] [stderr]    |
[INFO] [stderr] 53 |         let mc : Box<AggroMovementComponent> = box MovementComponent::new(bound);
[INFO] [stderr]    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
[INFO] [stderr]    = help: add `#![feature(box_syntax)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
[INFO] [stderr]   --> src/actor/mod.rs:59:51
[INFO] [stderr]    |
[INFO] [stderr] 59 |         let mc : Box<TcodUserMovementComponent> = box MovementComponent::new(bound);
[INFO] [stderr]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
[INFO] [stderr]    = help: add `#![feature(box_syntax)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/game/mod.rs:15:34
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub rendering_component: Box<RenderingComponent + 'static>
[INFO] [stderr]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn RenderingComponent + 'static`
[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/actor/mod.rs:22:33
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub movement_component: Box<MovementComponent+'static>,
[INFO] [stderr]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MovementComponent+'static`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/actor/mod.rs:26:50
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub fn new(x: i32, y: i32, dc: char, mc: Box<MovementComponent+'static>) -> Actor {
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MovementComponent+'static`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/actor/mod.rs:38:52
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn render(&self, rendering_component: &mut RenderingComponent) {
[INFO] [stderr]    |                                                    ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn RenderingComponent`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/rendering/mod.rs:15:18
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub console: Console
[INFO] [stderr]    |                  ^^^^^^^ help: use `dyn`: `dyn Console`
[INFO] [stderr] 
[INFO] [stderr] error[E0038]: the trait `rendering::RenderingComponent` cannot be made into an object
[INFO] [stderr]   --> src/game/mod.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub rendering_component: Box<RenderingComponent + 'static>
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rendering::RenderingComponent` cannot be made into an object
[INFO] [stderr]    | 
[INFO] [stderr]   ::: src/rendering/mod.rs:6:11
[INFO] [stderr]    |
[INFO] [stderr] 6  | pub trait RenderingComponent {
[INFO] [stderr]    |           ------------------ this trait cannot be made into an object...
[INFO] [stderr] 7  |     fn new(Bound) -> Self;
[INFO] [stderr]    |        --- ...because associated function `new` has no `self` parameter
[INFO] [stderr]    |
[INFO] [stderr] help: consider turning `new` into a method by giving it a `&self` argument or constraining it so it does not apply to trait objects
[INFO] [stderr]    |
[INFO] [stderr] 7  |     fn new(Bound) -> Self where Self: Sized;
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0038]: the trait `movement::MovementComponent` cannot be made into an object
[INFO] [stderr]   --> src/actor/mod.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub movement_component: Box<MovementComponent+'static>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `movement::MovementComponent` cannot be made into an object
[INFO] [stderr]    | 
[INFO] [stderr]   ::: src/movement/mod.rs:25:11
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub trait MovementComponent {
[INFO] [stderr]    |           ----------------- this trait cannot be made into an object...
[INFO] [stderr] 26 |     fn new(Bound) -> Self;
[INFO] [stderr]    |        --- ...because associated function `new` has no `self` parameter
[INFO] [stderr]    |
[INFO] [stderr] help: consider turning `new` into a method by giving it a `&self` argument or constraining it so it does not apply to trait objects
[INFO] [stderr]    |
[INFO] [stderr] 26 |     fn new(Bound) -> Self where Self: Sized;
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0038]: the trait `movement::MovementComponent` cannot be made into an object
[INFO] [stderr]   --> src/actor/mod.rs:26:46
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub fn new(x: i32, y: i32, dc: char, mc: Box<MovementComponent+'static>) -> Actor {
[INFO] [stderr]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `movement::MovementComponent` cannot be made into an object
[INFO] [stderr]    | 
[INFO] [stderr]   ::: src/movement/mod.rs:25:11
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub trait MovementComponent {
[INFO] [stderr]    |           ----------------- this trait cannot be made into an object...
[INFO] [stderr] 26 |     fn new(Bound) -> Self;
[INFO] [stderr]    |        --- ...because associated function `new` has no `self` parameter
[INFO] [stderr]    |
[INFO] [stderr] help: consider turning `new` into a method by giving it a `&self` argument or constraining it so it does not apply to trait objects
[INFO] [stderr]    |
[INFO] [stderr] 26 |     fn new(Bound) -> Self where Self: Sized;
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0038]: the trait `rendering::RenderingComponent` cannot be made into an object
[INFO] [stderr]   --> src/actor/mod.rs:38:47
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn render(&self, rendering_component: &mut RenderingComponent) {
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^ the trait `rendering::RenderingComponent` cannot be made into an object
[INFO] [stderr]    | 
[INFO] [stderr]   ::: src/rendering/mod.rs:6:11
[INFO] [stderr]    |
[INFO] [stderr] 6  | pub trait RenderingComponent {
[INFO] [stderr]    |           ------------------ this trait cannot be made into an object...
[INFO] [stderr] 7  |     fn new(Bound) -> Self;
[INFO] [stderr]    |        --- ...because associated function `new` has no `self` parameter
[INFO] [stderr]    |
[INFO] [stderr] help: consider turning `new` into a method by giving it a `&self` argument or constraining it so it does not apply to trait objects
[INFO] [stderr]    |
[INFO] [stderr] 7  |     fn new(Bound) -> Self where Self: Sized;
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 30 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0038, E0412, E0425, E0432, E0433, E0658.
[INFO] [stderr] For more information about an error, try `rustc --explain E0038`.
[INFO] [stderr] error: could not compile `dwemthys`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error[E0432]: unresolved import `self::tcod::KeyState`
[INFO] [stderr]  --> src/game/mod.rs:3:18
[INFO] [stderr]   |
[INFO] [stderr] 3 | use self::tcod::{KeyState};
[INFO] [stderr]   |                  ^^^^^^^^ no `KeyState` in the root
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved imports `self::tcod::background_flag`, `self::tcod::KeyState`
[INFO] [stderr]  --> src/rendering/mod.rs:2:27
[INFO] [stderr]   |
[INFO] [stderr] 2 | use self::tcod::{Console, background_flag, KeyState};
[INFO] [stderr]   |                           ^^^^^^^^^^^^^^^  ^^^^^^^^ no `KeyState` in the root
[INFO] [stderr]   |                           |
[INFO] [stderr]   |                           no `background_flag` in the root
[INFO] [stderr]   |                           help: a similar name exists in the module: `BackgroundFlag`
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved import `std::rand`
[INFO] [stderr]  --> src/movement/mod.rs:4:10
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::rand::Rng;
[INFO] [stderr]   |          ^^^^ could not find `rand` in `std`
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved imports `self::tcod::Special`, `self::tcod::key_code`
[INFO] [stderr]  --> src/movement/mod.rs:6:18
[INFO] [stderr]   |
[INFO] [stderr] 6 | use self::tcod::{Special, key_code};
[INFO] [stderr]   |                  ^^^^^^^  ^^^^^^^^ no `key_code` in the root
[INFO] [stderr]   |                  |
[INFO] [stderr]   |                  no `Special` in the root
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved imports `util::DoesContain`, `util::DoesNotContain`, `util::LeftOfPoint`, `util::RightOfPoint`, `util::OnPointX`, `util::OnPointY`, `util::AbovePoint`, `util::BelowPoint`, `util::PointsEqual`, `util::PointsNotEqual`
[INFO] [stderr]   --> src/movement/mod.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     DoesContain,
[INFO] [stderr]    |     ^^^^^^^^^^^ no `DoesContain` in `util`
[INFO] [stderr] 12 |     DoesNotContain,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ no `DoesNotContain` in `util`
[INFO] [stderr] 13 |     LeftOfPoint,
[INFO] [stderr]    |     ^^^^^^^^^^^ no `LeftOfPoint` in `util`
[INFO] [stderr] 14 |     RightOfPoint,
[INFO] [stderr]    |     ^^^^^^^^^^^^ no `RightOfPoint` in `util`
[INFO] [stderr] 15 |     OnPointX,
[INFO] [stderr]    |     ^^^^^^^^ no `OnPointX` in `util`
[INFO] [stderr] 16 |     OnPointY,
[INFO] [stderr]    |     ^^^^^^^^ no `OnPointY` in `util`
[INFO] [stderr] 17 |     AbovePoint,
[INFO] [stderr]    |     ^^^^^^^^^^ no `AbovePoint` in `util`
[INFO] [stderr] 18 |     BelowPoint,
[INFO] [stderr]    |     ^^^^^^^^^^ no `BelowPoint` in `util`
[INFO] [stderr] 19 |     PointsEqual,
[INFO] [stderr]    |     ^^^^^^^^^^^ no `PointsEqual` in `util`
[INFO] [stderr] 20 |     PointsNotEqual
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ no `PointsNotEqual` in `util`
[INFO] [stderr] 
[INFO] [stderr] error[E0433]: failed to resolve: could not find `rand` in `std`
[INFO] [stderr]   --> src/movement/mod.rs:49:29
[INFO] [stderr]    |
[INFO] [stderr] 49 |         let offset_x = std::rand::task_rng().gen_range(0, 3i32) - 1;
[INFO] [stderr]    |                             ^^^^ could not find `rand` in `std`
[INFO] [stderr] 
[INFO] [stderr] error[E0433]: failed to resolve: could not find `rand` in `std`
[INFO] [stderr]   --> src/movement/mod.rs:55:29
[INFO] [stderr]    |
[INFO] [stderr] 55 |         let offset_y = std::rand::task_rng().gen_range(0, 3i32) - 1;
[INFO] [stderr]    |                             ^^^^ could not find `rand` in `std`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `RightOfPoint` in this scope
[INFO] [stderr]   --> src/util/mod.rs:38:13
[INFO] [stderr]    |
[INFO] [stderr] 38 |             RightOfPoint
[INFO] [stderr]    |             ^^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::XPointRelation::RightOfPoint;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `LeftOfPoint` in this scope
[INFO] [stderr]   --> src/util/mod.rs:40:13
[INFO] [stderr]    |
[INFO] [stderr] 40 |             LeftOfPoint
[INFO] [stderr]    |             ^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::XPointRelation::LeftOfPoint;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `OnPointX` in this scope
[INFO] [stderr]   --> src/util/mod.rs:42:13
[INFO] [stderr]    |
[INFO] [stderr] 42 |             OnPointX
[INFO] [stderr]    |             ^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::XPointRelation::OnPointX;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `BelowPoint` in this scope
[INFO] [stderr]   --> src/util/mod.rs:48:13
[INFO] [stderr]    |
[INFO] [stderr] 48 |             BelowPoint
[INFO] [stderr]    |             ^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::YPointRelation::BelowPoint;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `AbovePoint` in this scope
[INFO] [stderr]   --> src/util/mod.rs:50:13
[INFO] [stderr]    |
[INFO] [stderr] 50 |             AbovePoint
[INFO] [stderr]    |             ^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::YPointRelation::AbovePoint;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `OnPointY` in this scope
[INFO] [stderr]   --> src/util/mod.rs:52:13
[INFO] [stderr]    |
[INFO] [stderr] 52 |             OnPointY
[INFO] [stderr]    |             ^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::YPointRelation::OnPointY;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `PointsEqual` in this scope
[INFO] [stderr]   --> src/util/mod.rs:58:13
[INFO] [stderr]    |
[INFO] [stderr] 58 |             PointsEqual
[INFO] [stderr]    |             ^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::PointEquality::PointsEqual;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `PointsNotEqual` in this scope
[INFO] [stderr]   --> src/util/mod.rs:60:13
[INFO] [stderr]    |
[INFO] [stderr] 60 |             PointsNotEqual
[INFO] [stderr]    |             ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::PointEquality::PointsNotEqual;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `DoesContain` in this scope
[INFO] [stderr]   --> src/util/mod.rs:83:13
[INFO] [stderr]    |
[INFO] [stderr] 83 |             DoesContain
[INFO] [stderr]    |             ^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::Contains::DoesContain;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `DoesNotContain` in this scope
[INFO] [stderr]   --> src/util/mod.rs:85:13
[INFO] [stderr]    |
[INFO] [stderr] 85 |             DoesNotContain
[INFO] [stderr]    |             ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stderr]    |
[INFO] [stderr] help: possible candidate is found in another module, you can import it into scope
[INFO] [stderr]    |
[INFO] [stderr] 1  | use util::Contains::DoesNotContain;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `int` in this scope
[INFO] [stderr]   --> src/rendering/mod.rs:21:35
[INFO] [stderr]    |
[INFO] [stderr] 21 |             (bounds.max.x + 1) as int,
[INFO] [stderr]    |                                   ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `int` in this scope
[INFO] [stderr]   --> src/rendering/mod.rs:22:35
[INFO] [stderr]    |
[INFO] [stderr] 22 |             (bounds.max.y + 1) as int,
[INFO] [stderr]    |                                   ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `int` in this scope
[INFO] [stderr]   --> src/rendering/mod.rs:37:45
[INFO] [stderr]    |
[INFO] [stderr] 37 |         self.console.put_char(position.x as int, position.y as int, symbol, background_flag::Set);
[INFO] [stderr]    |                                             ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0412]: cannot find type `int` in this scope
[INFO] [stderr]   --> src/rendering/mod.rs:37:64
[INFO] [stderr]    |
[INFO] [stderr] 37 |         self.console.put_char(position.x as int, position.y as int, symbol, background_flag::Set);
[INFO] [stderr]    |                                                                ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
[INFO] [stderr]   --> src/game/mod.rs:41:48
[INFO] [stderr]    |
[INFO] [stderr] 41 |         let rc : Box<TcodRenderingComponent> = box RenderingComponent::new(bounds);
[INFO] [stderr]    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
[INFO] [stderr]    = help: add `#![feature(box_syntax)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
[INFO] [stderr]   --> src/actor/mod.rs:43:49
[INFO] [stderr]    |
[INFO] [stderr] 43 |         let mc : Box<RandomMovementComponent> = box MovementComponent::new(bound);
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
[INFO] [stderr]    = help: add `#![feature(box_syntax)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
[INFO] [stderr]   --> src/actor/mod.rs:48:49
[INFO] [stderr]    |
[INFO] [stderr] 48 |         let mc : Box<RandomMovementComponent> = box MovementComponent::new(bound);
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
[INFO] [stderr]    = help: add `#![feature(box_syntax)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
[INFO] [stderr]   --> src/actor/mod.rs:53:48
[INFO] [stderr]    |
[INFO] [stderr] 53 |         let mc : Box<AggroMovementComponent> = box MovementComponent::new(bound);
[INFO] [stderr]    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
[INFO] [stderr]    = help: add `#![feature(box_syntax)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
[INFO] [stderr]   --> src/actor/mod.rs:59:51
[INFO] [stderr]    |
[INFO] [stderr] 59 |         let mc : Box<TcodUserMovementComponent> = box MovementComponent::new(bound);
[INFO] [stderr]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
[INFO] [stderr]    = help: add `#![feature(box_syntax)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/game/mod.rs:15:34
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub rendering_component: Box<RenderingComponent + 'static>
[INFO] [stderr]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn RenderingComponent + 'static`
[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/actor/mod.rs:22:33
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub movement_component: Box<MovementComponent+'static>,
[INFO] [stderr]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MovementComponent+'static`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/actor/mod.rs:26:50
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub fn new(x: i32, y: i32, dc: char, mc: Box<MovementComponent+'static>) -> Actor {
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn MovementComponent+'static`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/actor/mod.rs:38:52
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn render(&self, rendering_component: &mut RenderingComponent) {
[INFO] [stderr]    |                                                    ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn RenderingComponent`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/rendering/mod.rs:15:18
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub console: Console
[INFO] [stderr]    |                  ^^^^^^^ help: use `dyn`: `dyn Console`
[INFO] [stderr] 
[INFO] [stderr] error[E0038]: the trait `rendering::RenderingComponent` cannot be made into an object
[INFO] [stderr]   --> src/game/mod.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub rendering_component: Box<RenderingComponent + 'static>
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `rendering::RenderingComponent` cannot be made into an object
[INFO] [stderr]    | 
[INFO] [stderr]   ::: src/rendering/mod.rs:6:11
[INFO] [stderr]    |
[INFO] [stderr] 6  | pub trait RenderingComponent {
[INFO] [stderr]    |           ------------------ this trait cannot be made into an object...
[INFO] [stderr] 7  |     fn new(Bound) -> Self;
[INFO] [stderr]    |        --- ...because associated function `new` has no `self` parameter
[INFO] [stderr]    |
[INFO] [stderr] help: consider turning `new` into a method by giving it a `&self` argument or constraining it so it does not apply to trait objects
[INFO] [stderr]    |
[INFO] [stderr] 7  |     fn new(Bound) -> Self where Self: Sized;
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0038]: the trait `movement::MovementComponent` cannot be made into an object
[INFO] [stderr]   --> src/actor/mod.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub movement_component: Box<MovementComponent+'static>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `movement::MovementComponent` cannot be made into an object
[INFO] [stderr]    | 
[INFO] [stderr]   ::: src/movement/mod.rs:25:11
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub trait MovementComponent {
[INFO] [stderr]    |           ----------------- this trait cannot be made into an object...
[INFO] [stderr] 26 |     fn new(Bound) -> Self;
[INFO] [stderr]    |        --- ...because associated function `new` has no `self` parameter
[INFO] [stderr]    |
[INFO] [stderr] help: consider turning `new` into a method by giving it a `&self` argument or constraining it so it does not apply to trait objects
[INFO] [stderr]    |
[INFO] [stderr] 26 |     fn new(Bound) -> Self where Self: Sized;
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0038]: the trait `movement::MovementComponent` cannot be made into an object
[INFO] [stderr]   --> src/actor/mod.rs:26:46
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub fn new(x: i32, y: i32, dc: char, mc: Box<MovementComponent+'static>) -> Actor {
[INFO] [stderr]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `movement::MovementComponent` cannot be made into an object
[INFO] [stderr]    | 
[INFO] [stderr]   ::: src/movement/mod.rs:25:11
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub trait MovementComponent {
[INFO] [stderr]    |           ----------------- this trait cannot be made into an object...
[INFO] [stderr] 26 |     fn new(Bound) -> Self;
[INFO] [stderr]    |        --- ...because associated function `new` has no `self` parameter
[INFO] [stderr]    |
[INFO] [stderr] help: consider turning `new` into a method by giving it a `&self` argument or constraining it so it does not apply to trait objects
[INFO] [stderr]    |
[INFO] [stderr] 26 |     fn new(Bound) -> Self where Self: Sized;
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0038]: the trait `rendering::RenderingComponent` cannot be made into an object
[INFO] [stderr]   --> src/actor/mod.rs:38:47
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn render(&self, rendering_component: &mut RenderingComponent) {
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^ the trait `rendering::RenderingComponent` cannot be made into an object
[INFO] [stderr]    | 
[INFO] [stderr]   ::: src/rendering/mod.rs:6:11
[INFO] [stderr]    |
[INFO] [stderr] 6  | pub trait RenderingComponent {
[INFO] [stderr]    |           ------------------ this trait cannot be made into an object...
[INFO] [stderr] 7  |     fn new(Bound) -> Self;
[INFO] [stderr]    |        --- ...because associated function `new` has no `self` parameter
[INFO] [stderr]    |
[INFO] [stderr] help: consider turning `new` into a method by giving it a `&self` argument or constraining it so it does not apply to trait objects
[INFO] [stderr]    |
[INFO] [stderr] 7  |     fn new(Bound) -> Self where Self: Sized;
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 30 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0038, E0412, E0425, E0432, E0433, E0658.
[INFO] [stderr] For more information about an error, try `rustc --explain E0038`.
[INFO] [stderr] error: could not compile `dwemthys`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "0a898e0d5174d96dee7eb6d25bcb6758f854d8b046a83560370a939cf38801aa"`
[INFO] running `"docker" "rm" "-f" "0a898e0d5174d96dee7eb6d25bcb6758f854d8b046a83560370a939cf38801aa"`
[INFO] [stdout] 0a898e0d5174d96dee7eb6d25bcb6758f854d8b046a83560370a939cf38801aa
