[INFO] cloning repository https://github.com/OinkIguana/roguelike [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/OinkIguana/roguelike" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOinkIguana%2Froguelike", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOinkIguana%2Froguelike'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a278b61070b6037f8789a94e54ff4a25afabf7c5 [INFO] checking OinkIguana/roguelike/a278b61070b6037f8789a94e54ff4a25afabf7c5 against try#4d98531622e1718ae0bc3c7a1ab9cd8938428452+rustflags=-Dtail_expr_drop_order for pr-129604 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOinkIguana%2Froguelike" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/OinkIguana/roguelike on toolchain 4d98531622e1718ae0bc3c7a1ab9cd8938428452 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/OinkIguana/roguelike [INFO] finished tweaking git repo https://github.com/OinkIguana/roguelike [INFO] tweaked toml for git repo https://github.com/OinkIguana/roguelike written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/OinkIguana/roguelike already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 10a50c54382ce4dd69eeea882e77e7dcee132cce164c2ea2ba5c6fdb40f38716 [INFO] running `Command { std: "docker" "start" "-a" "10a50c54382ce4dd69eeea882e77e7dcee132cce164c2ea2ba5c6fdb40f38716", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "10a50c54382ce4dd69eeea882e77e7dcee132cce164c2ea2ba5c6fdb40f38716", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "10a50c54382ce4dd69eeea882e77e7dcee132cce164c2ea2ba5c6fdb40f38716", kill_on_drop: false }` [INFO] [stdout] 10a50c54382ce4dd69eeea882e77e7dcee132cce164c2ea2ba5c6fdb40f38716 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail_expr_drop_order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f92830d0ecf6f1f136e8d8aaeb11a592d343ae7350aadc84bea8a0797328b8f7 [INFO] running `Command { std: "docker" "start" "-a" "f92830d0ecf6f1f136e8d8aaeb11a592d343ae7350aadc84bea8a0797328b8f7", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] [stderr] Compiling pkg-config v0.3.9 [INFO] [stderr] Compiling gcc v0.3.51 [INFO] [stderr] Checking libc v0.2.29 [INFO] [stderr] Checking log v0.3.8 [INFO] [stderr] Checking rand v0.3.16 [INFO] [stderr] Compiling ncurses v5.86.0 [INFO] [stderr] Checking pancurses v0.9.0 [INFO] [stderr] Checking roguelike v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/engine/behavior/mod.rs:269:20 [INFO] [stdout] | [INFO] [stdout] 269 | fn exec(&self, usize, &mut Map) -> bool; [INFO] [stdout] | ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see issue #41686 [INFO] [stdout] = note: `#[warn(anonymous_parameters)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/engine/behavior/mod.rs:269:27 [INFO] [stdout] | [INFO] [stdout] 269 | fn exec(&self, usize, &mut Map) -> bool; [INFO] [stdout] | ^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &mut Map` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see issue #41686 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/engine/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub use self::behavior::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ the name `Then` in the type namespace is first re-exported here [INFO] [stdout] 18 | pub use self::query::*; [INFO] [stdout] | -------------- but the name `Then` in the type namespace is also re-exported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ambiguous_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/engine/behavior/mod.rs:269:20 [INFO] [stdout] | [INFO] [stdout] 269 | fn exec(&self, usize, &mut Map) -> bool; [INFO] [stdout] | ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: usize` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see issue #41686 [INFO] [stdout] = note: `#[warn(anonymous_parameters)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/engine/behavior/mod.rs:269:27 [INFO] [stdout] | [INFO] [stdout] 269 | fn exec(&self, usize, &mut Map) -> bool; [INFO] [stdout] | ^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &mut Map` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see issue #41686 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/engine/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub use self::behavior::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ the name `Then` in the type namespace is first re-exported here [INFO] [stdout] 18 | pub use self::query::*; [INFO] [stdout] | -------------- but the name `Then` in the type namespace is also re-exported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ambiguous_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/state/player_data.rs:13:36 [INFO] [stdout] | [INFO] [stdout] 13 | pub inventory: RefCell>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 | pub inventory: RefCell>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/map/tile.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | contents: Option>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 | contents: Option>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/messaging/mod.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | Drop(usize, Box), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 | Drop(usize, Box), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:7:44 [INFO] [stdout] | [INFO] [stdout] 7 | fn react(&self, action: Action) -> Box { Box::new(Perform(Action::Idle)) } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | fn react(&self, action: Action) -> Box { Box::new(Perform(Action::Idle)) } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:15:41 [INFO] [stdout] | [INFO] [stdout] 15 | fn can_be_stepped_on(&self, other: &Actor) -> bool { false } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | fn can_be_stepped_on(&self, other: &dyn Actor) -> bool { false } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:17:39 [INFO] [stdout] | [INFO] [stdout] 17 | fn step_on(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | fn step_on(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/state/player_data.rs:13:36 [INFO] [stdout] | [INFO] [stdout] 13 | pub inventory: RefCell>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 | pub inventory: RefCell>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:19:45 [INFO] [stdout] | [INFO] [stdout] 19 | fn be_stepped_on(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | fn be_stepped_on(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:22:46 [INFO] [stdout] | [INFO] [stdout] 22 | fn can_be_interacted_with(&self, other: &Actor) -> bool { false } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | fn can_be_interacted_with(&self, other: &dyn Actor) -> bool { false } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:24:40 [INFO] [stdout] | [INFO] [stdout] 24 | fn interact(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 | fn interact(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:26:50 [INFO] [stdout] | [INFO] [stdout] 26 | fn be_interacted_with(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 | fn be_interacted_with(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/map/tile.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | contents: Option>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 | contents: Option>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:29:35 [INFO] [stdout] | [INFO] [stdout] 29 | fn can_be_used(&self, other: &Actor) -> bool { false } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 29 | fn can_be_used(&self, other: &dyn Actor) -> bool { false } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/messaging/mod.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | Drop(usize, Box), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 | Drop(usize, Box), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:31:40 [INFO] [stdout] | [INFO] [stdout] 31 | fn use_item(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 31 | fn use_item(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:33:39 [INFO] [stdout] | [INFO] [stdout] 33 | fn be_used(&mut self, other: &mut Actor) -> Option> { None } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 33 | fn be_used(&mut self, other: &mut dyn Actor) -> Option> { None } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:33:60 [INFO] [stdout] | [INFO] [stdout] 33 | fn be_used(&mut self, other: &mut Actor) -> Option> { None } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 33 | fn be_used(&mut self, other: &mut Actor) -> Option> { None } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | fn can_be_attacked(&self, other: &Actor) -> bool { false } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 | fn can_be_attacked(&self, other: &dyn Actor) -> bool { false } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:38:38 [INFO] [stdout] | [INFO] [stdout] 38 | fn attack(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 38 | fn attack(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:40:43 [INFO] [stdout] | [INFO] [stdout] 40 | fn be_attacked(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 40 | fn be_attacked(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:56:37 [INFO] [stdout] | [INFO] [stdout] 56 | fn pick_up(&mut self, item: Box) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 56 | fn pick_up(&mut self, item: Box) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:59:56 [INFO] [stdout] | [INFO] [stdout] 59 | fn get_item(&mut self, index: usize) -> Option> { None } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 59 | fn get_item(&mut self, index: usize) -> Option> { None } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:7:44 [INFO] [stdout] | [INFO] [stdout] 7 | fn react(&self, action: Action) -> Box { Box::new(Perform(Action::Idle)) } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 | fn react(&self, action: Action) -> Box { Box::new(Perform(Action::Idle)) } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:93:32 [INFO] [stdout] | [INFO] [stdout] 93 | fn clone_box(&self) -> Box; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 93 | fn clone_box(&self) -> Box; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/state/mod.rs:71:49 [INFO] [stdout] | [INFO] [stdout] 71 | fn process_all(mut self, behaviors: Vec>) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 71 | fn process_all(mut self, behaviors: Vec>) -> Self { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:15:41 [INFO] [stdout] | [INFO] [stdout] 15 | fn can_be_stepped_on(&self, other: &Actor) -> bool { false } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | fn can_be_stepped_on(&self, other: &dyn Actor) -> bool { false } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:96:32 [INFO] [stdout] | [INFO] [stdout] 96 | fn clone_box(&self) -> Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 96 | fn clone_box(&self) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:17:39 [INFO] [stdout] | [INFO] [stdout] 17 | fn step_on(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | fn step_on(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/chest.rs:23:42 [INFO] [stdout] | [INFO] [stdout] 23 | fn can_be_interacted_with(&self, _: &Actor) -> bool { self.contents.is_some() } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 | fn can_be_interacted_with(&self, _: &dyn Actor) -> bool { self.contents.is_some() } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:19:45 [INFO] [stdout] | [INFO] [stdout] 19 | fn be_stepped_on(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | fn be_stepped_on(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/chest.rs:24:50 [INFO] [stdout] | [INFO] [stdout] 24 | fn be_interacted_with(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 | fn be_interacted_with(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:22:46 [INFO] [stdout] | [INFO] [stdout] 22 | fn can_be_interacted_with(&self, other: &Actor) -> bool { false } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | fn can_be_interacted_with(&self, other: &dyn Actor) -> bool { false } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:24:40 [INFO] [stdout] | [INFO] [stdout] 24 | fn interact(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 | fn interact(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:26:50 [INFO] [stdout] | [INFO] [stdout] 26 | fn be_interacted_with(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 | fn be_interacted_with(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:29:35 [INFO] [stdout] | [INFO] [stdout] 29 | fn can_be_used(&self, other: &Actor) -> bool { false } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 29 | fn can_be_used(&self, other: &dyn Actor) -> bool { false } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:31:40 [INFO] [stdout] | [INFO] [stdout] 31 | fn use_item(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 31 | fn use_item(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:33:39 [INFO] [stdout] | [INFO] [stdout] 33 | fn be_used(&mut self, other: &mut Actor) -> Option> { None } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 33 | fn be_used(&mut self, other: &mut dyn Actor) -> Option> { None } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:33:60 [INFO] [stdout] | [INFO] [stdout] 33 | fn be_used(&mut self, other: &mut Actor) -> Option> { None } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 33 | fn be_used(&mut self, other: &mut Actor) -> Option> { None } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | fn can_be_attacked(&self, other: &Actor) -> bool { false } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 | fn can_be_attacked(&self, other: &dyn Actor) -> bool { false } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:38:38 [INFO] [stdout] | [INFO] [stdout] 38 | fn attack(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 38 | fn attack(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:40:43 [INFO] [stdout] | [INFO] [stdout] 40 | fn be_attacked(&mut self, other: &mut Actor) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 40 | fn be_attacked(&mut self, other: &mut dyn Actor) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:56:37 [INFO] [stdout] | [INFO] [stdout] 56 | fn pick_up(&mut self, item: Box) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 56 | fn pick_up(&mut self, item: Box) {} [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:59:56 [INFO] [stdout] | [INFO] [stdout] 59 | fn get_item(&mut self, index: usize) -> Option> { None } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 59 | fn get_item(&mut self, index: usize) -> Option> { None } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:93:32 [INFO] [stdout] | [INFO] [stdout] 93 | fn clone_box(&self) -> Box; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 93 | fn clone_box(&self) -> Box; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/state/mod.rs:71:49 [INFO] [stdout] | [INFO] [stdout] 71 | fn process_all(mut self, behaviors: Vec>) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 71 | fn process_all(mut self, behaviors: Vec>) -> Self { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:96:32 [INFO] [stdout] | [INFO] [stdout] 96 | fn clone_box(&self) -> Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 96 | fn clone_box(&self) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:101:20 [INFO] [stdout] | [INFO] [stdout] 101 | impl Clone for Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 101 | impl Clone for Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/chest.rs:23:42 [INFO] [stdout] | [INFO] [stdout] 23 | fn can_be_interacted_with(&self, _: &Actor) -> bool { self.contents.is_some() } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 | fn can_be_interacted_with(&self, _: &dyn Actor) -> bool { self.contents.is_some() } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/chest.rs:24:50 [INFO] [stdout] | [INFO] [stdout] 24 | fn be_interacted_with(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 | fn be_interacted_with(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:101:20 [INFO] [stdout] | [INFO] [stdout] 101 | impl Clone for Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 101 | impl Clone for Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/map/mod.rs:48:54 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn process(&self, action: Action) -> Vec> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 | pub fn process(&self, action: Action) -> Vec> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/map/tile.rs:45:43 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn fill(&mut self, mut actor: Box) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | pub fn fill(&mut self, mut actor: Box) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/map/tile.rs:65:50 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn process(&self, action: Action) -> Box { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 65 | pub fn process(&self, action: Action) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/map/tile.rs:70:43 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn contents(&self) -> &Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 70 | pub fn contents(&self) -> &Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/map/mod.rs:48:54 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn process(&self, action: Action) -> Vec> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 | pub fn process(&self, action: Action) -> Vec> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/map/tile.rs:45:43 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn fill(&mut self, mut actor: Box) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | pub fn fill(&mut self, mut actor: Box) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/map/tile.rs:65:50 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn process(&self, action: Action) -> Box { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 65 | pub fn process(&self, action: Action) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/map/tile.rs:70:43 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn contents(&self) -> &Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 70 | pub fn contents(&self) -> &Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:102:28 [INFO] [stdout] | [INFO] [stdout] 102 | fn clone(&self) -> Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 102 | fn clone(&self) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/engine/actor/mod.rs:102:28 [INFO] [stdout] | [INFO] [stdout] 102 | fn clone(&self) -> Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 102 | fn clone(&self) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/player.rs:23:44 [INFO] [stdout] | [INFO] [stdout] 23 | fn react(&self, action: Action) -> Box { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 | fn react(&self, action: Action) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/player.rs:36:35 [INFO] [stdout] | [INFO] [stdout] 36 | fn can_be_attacked(&self, _: &Actor) -> bool { true } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 | fn can_be_attacked(&self, _: &dyn Actor) -> bool { true } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/player.rs:37:43 [INFO] [stdout] | [INFO] [stdout] 37 | fn be_attacked(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 37 | fn be_attacked(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/player.rs:62:37 [INFO] [stdout] | [INFO] [stdout] 62 | fn pick_up(&mut self, item: Box) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 62 | fn pick_up(&mut self, item: Box) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/player.rs:65:56 [INFO] [stdout] | [INFO] [stdout] 65 | fn get_item(&mut self, index: usize) -> Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 65 | fn get_item(&mut self, index: usize) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/bat.rs:34:39 [INFO] [stdout] | [INFO] [stdout] 34 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 34 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/bat.rs:42:39 [INFO] [stdout] | [INFO] [stdout] 42 | fn can_be_attacked(&self, other: &Actor) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 42 | fn can_be_attacked(&self, other: &dyn Actor) -> bool { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/bat.rs:45:43 [INFO] [stdout] | [INFO] [stdout] 45 | fn be_attacked(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | fn be_attacked(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/goblin.rs:35:39 [INFO] [stdout] | [INFO] [stdout] 35 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 35 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/goblin.rs:55:39 [INFO] [stdout] | [INFO] [stdout] 55 | fn can_be_attacked(&self, other: &Actor) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 55 | fn can_be_attacked(&self, other: &dyn Actor) -> bool { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/goblin.rs:58:43 [INFO] [stdout] | [INFO] [stdout] 58 | fn be_attacked(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 58 | fn be_attacked(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/gold.rs:18:37 [INFO] [stdout] | [INFO] [stdout] 18 | fn can_be_stepped_on(&self, _: &Actor) -> bool { true } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | fn can_be_stepped_on(&self, _: &dyn Actor) -> bool { true } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/gold.rs:19:45 [INFO] [stdout] | [INFO] [stdout] 19 | fn be_stepped_on(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | fn be_stepped_on(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/stairs.rs:21:37 [INFO] [stdout] | [INFO] [stdout] 21 | fn can_be_stepped_on(&self, _: &Actor) -> bool { true } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | fn can_be_stepped_on(&self, _: &dyn Actor) -> bool { true } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/stairs.rs:22:41 [INFO] [stdout] | [INFO] [stdout] 22 | fn be_stepped_on(&mut self, _: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | fn be_stepped_on(&mut self, _: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/fountain.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | fn can_be_interacted_with(&self, _: &Actor) -> bool { !self.used } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | fn can_be_interacted_with(&self, _: &dyn Actor) -> bool { !self.used } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/fountain.rs:19:50 [INFO] [stdout] | [INFO] [stdout] 19 | fn be_interacted_with(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | fn be_interacted_with(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/potion.rs:12:41 [INFO] [stdout] | [INFO] [stdout] 12 | fn can_be_stepped_on(&self, other: &Actor) -> bool { other.long_name() == Player::id() } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 | fn can_be_stepped_on(&self, other: &dyn Actor) -> bool { other.long_name() == Player::id() } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/potion.rs:13:45 [INFO] [stdout] | [INFO] [stdout] 13 | fn be_stepped_on(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 | fn be_stepped_on(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/potion.rs:17:31 [INFO] [stdout] | [INFO] [stdout] 17 | fn can_be_used(&self, _: &Actor) -> bool { true } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | fn can_be_used(&self, _: &dyn Actor) -> bool { true } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/potion.rs:18:39 [INFO] [stdout] | [INFO] [stdout] 18 | fn be_used(&mut self, other: &mut Actor) -> Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | fn be_used(&mut self, other: &mut dyn Actor) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/potion.rs:18:60 [INFO] [stdout] | [INFO] [stdout] 18 | fn be_used(&mut self, other: &mut Actor) -> Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | fn be_used(&mut self, other: &mut Actor) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/key.rs:14:41 [INFO] [stdout] | [INFO] [stdout] 14 | fn can_be_stepped_on(&self, other: &Actor) -> bool { other.long_name() == Player::id() } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 | fn can_be_stepped_on(&self, other: &dyn Actor) -> bool { other.long_name() == Player::id() } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/key.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | fn be_stepped_on(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | fn be_stepped_on(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/thief.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/thief.rs:86:39 [INFO] [stdout] | [INFO] [stdout] 86 | fn can_be_attacked(&self, other: &Actor) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 86 | fn can_be_attacked(&self, other: &dyn Actor) -> bool { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/thief.rs:89:38 [INFO] [stdout] | [INFO] [stdout] 89 | fn attack(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 89 | fn attack(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/thief.rs:93:43 [INFO] [stdout] | [INFO] [stdout] 93 | fn be_attacked(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 93 | fn be_attacked(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/player.rs:23:44 [INFO] [stdout] | [INFO] [stdout] 23 | fn react(&self, action: Action) -> Box { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 | fn react(&self, action: Action) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/player.rs:36:35 [INFO] [stdout] | [INFO] [stdout] 36 | fn can_be_attacked(&self, _: &Actor) -> bool { true } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 | fn can_be_attacked(&self, _: &dyn Actor) -> bool { true } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/player.rs:37:43 [INFO] [stdout] | [INFO] [stdout] 37 | fn be_attacked(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 37 | fn be_attacked(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/player.rs:62:37 [INFO] [stdout] | [INFO] [stdout] 62 | fn pick_up(&mut self, item: Box) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 62 | fn pick_up(&mut self, item: Box) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/player.rs:65:56 [INFO] [stdout] | [INFO] [stdout] 65 | fn get_item(&mut self, index: usize) -> Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 65 | fn get_item(&mut self, index: usize) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/bat.rs:34:39 [INFO] [stdout] | [INFO] [stdout] 34 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 34 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/bat.rs:42:39 [INFO] [stdout] | [INFO] [stdout] 42 | fn can_be_attacked(&self, other: &Actor) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 42 | fn can_be_attacked(&self, other: &dyn Actor) -> bool { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/bat.rs:45:43 [INFO] [stdout] | [INFO] [stdout] 45 | fn be_attacked(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 45 | fn be_attacked(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/goblin.rs:35:39 [INFO] [stdout] | [INFO] [stdout] 35 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 35 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/goblin.rs:55:39 [INFO] [stdout] | [INFO] [stdout] 55 | fn can_be_attacked(&self, other: &Actor) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 55 | fn can_be_attacked(&self, other: &dyn Actor) -> bool { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/goblin.rs:58:43 [INFO] [stdout] | [INFO] [stdout] 58 | fn be_attacked(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 58 | fn be_attacked(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/gold.rs:18:37 [INFO] [stdout] | [INFO] [stdout] 18 | fn can_be_stepped_on(&self, _: &Actor) -> bool { true } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | fn can_be_stepped_on(&self, _: &dyn Actor) -> bool { true } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/gold.rs:19:45 [INFO] [stdout] | [INFO] [stdout] 19 | fn be_stepped_on(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | fn be_stepped_on(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/stairs.rs:21:37 [INFO] [stdout] | [INFO] [stdout] 21 | fn can_be_stepped_on(&self, _: &Actor) -> bool { true } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | fn can_be_stepped_on(&self, _: &dyn Actor) -> bool { true } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/stairs.rs:22:41 [INFO] [stdout] | [INFO] [stdout] 22 | fn be_stepped_on(&mut self, _: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 | fn be_stepped_on(&mut self, _: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/fountain.rs:18:42 [INFO] [stdout] | [INFO] [stdout] 18 | fn can_be_interacted_with(&self, _: &Actor) -> bool { !self.used } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | fn can_be_interacted_with(&self, _: &dyn Actor) -> bool { !self.used } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/fountain.rs:19:50 [INFO] [stdout] | [INFO] [stdout] 19 | fn be_interacted_with(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 | fn be_interacted_with(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/potion.rs:12:41 [INFO] [stdout] | [INFO] [stdout] 12 | fn can_be_stepped_on(&self, other: &Actor) -> bool { other.long_name() == Player::id() } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 | fn can_be_stepped_on(&self, other: &dyn Actor) -> bool { other.long_name() == Player::id() } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/potion.rs:13:45 [INFO] [stdout] | [INFO] [stdout] 13 | fn be_stepped_on(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 | fn be_stepped_on(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/potion.rs:17:31 [INFO] [stdout] | [INFO] [stdout] 17 | fn can_be_used(&self, _: &Actor) -> bool { true } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 17 | fn can_be_used(&self, _: &dyn Actor) -> bool { true } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/potion.rs:18:39 [INFO] [stdout] | [INFO] [stdout] 18 | fn be_used(&mut self, other: &mut Actor) -> Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | fn be_used(&mut self, other: &mut dyn Actor) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/potion.rs:18:60 [INFO] [stdout] | [INFO] [stdout] 18 | fn be_used(&mut self, other: &mut Actor) -> Option> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 | fn be_used(&mut self, other: &mut Actor) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/key.rs:14:41 [INFO] [stdout] | [INFO] [stdout] 14 | fn can_be_stepped_on(&self, other: &Actor) -> bool { other.long_name() == Player::id() } [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 | fn can_be_stepped_on(&self, other: &dyn Actor) -> bool { other.long_name() == Player::id() } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/key.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | fn be_stepped_on(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 | fn be_stepped_on(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/thief.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 | fn react(&self, _: Action) -> Box { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/thief.rs:86:39 [INFO] [stdout] | [INFO] [stdout] 86 | fn can_be_attacked(&self, other: &Actor) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 86 | fn can_be_attacked(&self, other: &dyn Actor) -> bool { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/thief.rs:89:38 [INFO] [stdout] | [INFO] [stdout] 89 | fn attack(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 89 | fn attack(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/actors/thief.rs:93:43 [INFO] [stdout] | [INFO] [stdout] 93 | fn be_attacked(&mut self, other: &mut Actor) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 93 | fn be_attacked(&mut self, other: &mut dyn Actor) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `has_been_attacked` is never read [INFO] [stdout] --> src/actors/thief.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct Thief { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | has_been_attacked: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Thief` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/engine/behavior/mod.rs:188:21 [INFO] [stdout] | [INFO] [stdout] 188 | replace(&mut map.tiles[i], a); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 188 | let _ = replace(&mut map.tiles[i], a); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/engine/behavior/mod.rs:189:21 [INFO] [stdout] | [INFO] [stdout] 189 | replace(&mut map.tiles[neighbour], b); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 189 | let _ = replace(&mut map.tiles[neighbour], b); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/engine/query/mod.rs:86:40 [INFO] [stdout] | [INFO] [stdout] 86 | self.0.exec(map).and_then(|ra| self.1.exec(map).map(|rb| (ra, rb))) [INFO] [stdout] | -- ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/engine/query/mod.rs:86:61 [INFO] [stdout] | [INFO] [stdout] 86 | self.0.exec(map).and_then(|ra| self.1.exec(map).map(|rb| (ra, rb))) [INFO] [stdout] | -- ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/populator/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 15 | fn populate(&self, map: Map, pd: Rc) -> Map { [INFO] [stdout] | -------- ------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 18 | / map .fill_tile(player_tile, Player::new(self.messenger.clone(), pd)) [INFO] [stdout] 19 | | .fill_random_tile(Stairs::new(self.messenger.clone())) [INFO] [stdout] 20 | | .fill_random_tile(Gold::new(5)) [INFO] [stdout] 21 | | .fill_random_tile(Gold::new(5)) [INFO] [stdout] ... | [INFO] [stdout] 30 | | .fill_random_tile(Chest::new(Gold::new(10))) [INFO] [stdout] 31 | | .fill_random_tile(Key) [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/populator/mod.rs:32:31 [INFO] [stdout] | [INFO] [stdout] 15 | fn populate(&self, map: Map, pd: Rc) -> Map { [INFO] [stdout] | -------- ------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 32 | .fill_random_tile(Thief::new(self.messenger.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/generator/mod.rs:216:17 [INFO] [stdout] | [INFO] [stdout] 215 | fn add_halls(rooms: Grid, halls: Grid) -> Grid { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 216 | Grid{ grid: rooms [INFO] [stdout] | _________________^ [INFO] [stdout] 217 | | .grid [INFO] [stdout] 218 | | .iter() [INFO] [stdout] 219 | | .to_owned() [INFO] [stdout] 220 | | .zip(halls.grid.iter().map(|b| *b)) [INFO] [stdout] 221 | | .map(|(tile, hall)| if hall && tile.kind() == TileType::Empty { tile.clone().set_kind(TileType::Hall) } else { tile.clone() }) [INFO] [stdout] 222 | | .collect(), width: rooms.width, height: rooms.height } [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/generator/mod.rs:235:30 [INFO] [stdout] | [INFO] [stdout] 226 | fn trim_halls(Grid{ grid: tiles, width, height}: Grid) -> Grid { [INFO] [stdout] | --------------------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 227 | let no_fats = (0..width * height) [INFO] [stdout] | ------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 235 | (0..width * height).fold(Grid{ grid: no_fats, width, height }, |tiles, index| remove_dead_end(tiles, index)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/generator/mod.rs:291:17 [INFO] [stdout] | [INFO] [stdout] 289 | fn add_walls(Grid{ grid: tiles, width, height }: Grid) -> Grid { [INFO] [stdout] | ---------------------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 290 | // TODO: place walls inside the rooms to prevent halls along edges? [INFO] [stdout] 291 | Grid{ grid: (0..width * height) [INFO] [stdout] | _________________^ [INFO] [stdout] 292 | | .map(|i| Direction::variants().into_iter() [INFO] [stdout] 293 | | .map(|d| Map::neighbouring_tile_index(i, width, height, d)) [INFO] [stdout] 294 | | .flat_map(|o| o.map(|n| tiles[n].kind() == TileType::Floor).and_then(|b| if b { Some(true) } else { None })) [INFO] [stdout] ... | [INFO] [stdout] 301 | | }) [INFO] [stdout] 302 | | .collect(), width, height } [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/actors/chest.rs:18:26 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new(contents: T) -> Self { [INFO] [stdout] | ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 18 | Chest{ contents: Some(contents) } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/actors/thief.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 39 | let messenger = self.messenger.clone(); [INFO] [stdout] | --------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 42 | / Switch(Direction::cardinals().into_iter().map(|dir| IfAttackable(dir, Perform(Action::Attack(dir)))).collect()) [INFO] [stdout] 43 | | .or_else( [INFO] [stdout] 44 | | IfQuery(gold_locations, |ref gold| gold.len() > 0, [INFO] [stdout] 45 | | move |gold| { [INFO] [stdout] ... | [INFO] [stdout] 81 | | ) [INFO] [stdout] 82 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/actors/thief.rs:74:33 [INFO] [stdout] | [INFO] [stdout] 39 | let messenger = self.messenger.clone(); [INFO] [stdout] | --------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 72 | let m = messenger.clone(); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 73 | IfQuery(toward_stairs, |&(_, dist)| dist == 1, [INFO] [stdout] 74 | / move |_| { [INFO] [stdout] 75 | | m.send(Message::Die(here)); [INFO] [stdout] 76 | | Perform(Action::Idle) [INFO] [stdout] 77 | | }, [INFO] [stdout] | |_________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `has_been_attacked` is never read [INFO] [stdout] --> src/actors/thief.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct Thief { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | has_been_attacked: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Thief` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 10 previous errors; 64 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/engine/behavior/mod.rs:188:21 [INFO] [stdout] | [INFO] [stdout] 188 | replace(&mut map.tiles[i], a); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 188 | let _ = replace(&mut map.tiles[i], a); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/engine/behavior/mod.rs:189:21 [INFO] [stdout] | [INFO] [stdout] 189 | replace(&mut map.tiles[neighbour], b); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 189 | let _ = replace(&mut map.tiles[neighbour], b); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/engine/query/mod.rs:86:40 [INFO] [stdout] | [INFO] [stdout] 86 | self.0.exec(map).and_then(|ra| self.1.exec(map).map(|rb| (ra, rb))) [INFO] [stdout] | -- ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/engine/query/mod.rs:86:61 [INFO] [stdout] | [INFO] [stdout] 86 | self.0.exec(map).and_then(|ra| self.1.exec(map).map(|rb| (ra, rb))) [INFO] [stdout] | -- ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/populator/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 15 | fn populate(&self, map: Map, pd: Rc) -> Map { [INFO] [stdout] | -------- ------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 18 | / map .fill_tile(player_tile, Player::new(self.messenger.clone(), pd)) [INFO] [stdout] 19 | | .fill_random_tile(Stairs::new(self.messenger.clone())) [INFO] [stdout] 20 | | .fill_random_tile(Gold::new(5)) [INFO] [stdout] 21 | | .fill_random_tile(Gold::new(5)) [INFO] [stdout] ... | [INFO] [stdout] 30 | | .fill_random_tile(Chest::new(Gold::new(10))) [INFO] [stdout] 31 | | .fill_random_tile(Key) [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/populator/mod.rs:32:31 [INFO] [stdout] | [INFO] [stdout] 15 | fn populate(&self, map: Map, pd: Rc) -> Map { [INFO] [stdout] | -------- ------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 32 | .fill_random_tile(Thief::new(self.messenger.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `roguelike` (bin "roguelike") due to 11 previous errors; 64 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/generator/mod.rs:216:17 [INFO] [stdout] | [INFO] [stdout] 215 | fn add_halls(rooms: Grid, halls: Grid) -> Grid { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 216 | Grid{ grid: rooms [INFO] [stdout] | _________________^ [INFO] [stdout] 217 | | .grid [INFO] [stdout] 218 | | .iter() [INFO] [stdout] 219 | | .to_owned() [INFO] [stdout] 220 | | .zip(halls.grid.iter().map(|b| *b)) [INFO] [stdout] 221 | | .map(|(tile, hall)| if hall && tile.kind() == TileType::Empty { tile.clone().set_kind(TileType::Hall) } else { tile.clone() }) [INFO] [stdout] 222 | | .collect(), width: rooms.width, height: rooms.height } [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/generator/mod.rs:235:30 [INFO] [stdout] | [INFO] [stdout] 226 | fn trim_halls(Grid{ grid: tiles, width, height}: Grid) -> Grid { [INFO] [stdout] | --------------------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 227 | let no_fats = (0..width * height) [INFO] [stdout] | ------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 235 | (0..width * height).fold(Grid{ grid: no_fats, width, height }, |tiles, index| remove_dead_end(tiles, index)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/generator/mod.rs:291:17 [INFO] [stdout] | [INFO] [stdout] 289 | fn add_walls(Grid{ grid: tiles, width, height }: Grid) -> Grid { [INFO] [stdout] | ---------------------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 290 | // TODO: place walls inside the rooms to prevent halls along edges? [INFO] [stdout] 291 | Grid{ grid: (0..width * height) [INFO] [stdout] | _________________^ [INFO] [stdout] 292 | | .map(|i| Direction::variants().into_iter() [INFO] [stdout] 293 | | .map(|d| Map::neighbouring_tile_index(i, width, height, d)) [INFO] [stdout] 294 | | .flat_map(|o| o.map(|n| tiles[n].kind() == TileType::Floor).and_then(|b| if b { Some(true) } else { None })) [INFO] [stdout] ... | [INFO] [stdout] 301 | | }) [INFO] [stdout] 302 | | .collect(), width, height } [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/actors/chest.rs:18:26 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn new(contents: T) -> Self { [INFO] [stdout] | ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 18 | Chest{ contents: Some(contents) } [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/actors/thief.rs:42:13 [INFO] [stdout] | [INFO] [stdout] 39 | let messenger = self.messenger.clone(); [INFO] [stdout] | --------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 42 | / Switch(Direction::cardinals().into_iter().map(|dir| IfAttackable(dir, Perform(Action::Attack(dir)))).collect()) [INFO] [stdout] 43 | | .or_else( [INFO] [stdout] 44 | | IfQuery(gold_locations, |ref gold| gold.len() > 0, [INFO] [stdout] 45 | | move |gold| { [INFO] [stdout] ... | [INFO] [stdout] 81 | | ) [INFO] [stdout] 82 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/actors/thief.rs:74:33 [INFO] [stdout] | [INFO] [stdout] 39 | let messenger = self.messenger.clone(); [INFO] [stdout] | --------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 72 | let m = messenger.clone(); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 73 | IfQuery(toward_stairs, |&(_, dist)| dist == 1, [INFO] [stdout] 74 | / move |_| { [INFO] [stdout] 75 | | m.send(Message::Die(here)); [INFO] [stdout] 76 | | Perform(Action::Idle) [INFO] [stdout] 77 | | }, [INFO] [stdout] | |_________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 10 previous errors; 64 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `roguelike` (bin "roguelike" test) due to 11 previous errors; 64 warnings emitted [INFO] running `Command { std: "docker" "inspect" "f92830d0ecf6f1f136e8d8aaeb11a592d343ae7350aadc84bea8a0797328b8f7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f92830d0ecf6f1f136e8d8aaeb11a592d343ae7350aadc84bea8a0797328b8f7", kill_on_drop: false }` [INFO] [stdout] f92830d0ecf6f1f136e8d8aaeb11a592d343ae7350aadc84bea8a0797328b8f7