[INFO] fetching crate moonlander-gp 0.1.1...
[INFO] checking moonlander-gp-0.1.1 against master#c2f2db79ca3024f68d22b45aa22b570775c2c4ad for pr-124157
[INFO] extracting crate moonlander-gp 0.1.1 into /workspace/builds/worker-4-tc1/source
[INFO] validating manifest of crates.io crate moonlander-gp 0.1.1 on toolchain c2f2db79ca3024f68d22b45aa22b570775c2c4ad
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate moonlander-gp 0.1.1
[INFO] finished tweaking crates.io crate moonlander-gp 0.1.1
[INFO] tweaked toml for crates.io crate moonlander-gp 0.1.1 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 17 packages to latest compatible versions
[INFO] [stderr]       Adding downcast v0.6.0 (latest: v0.11.0)
[INFO] [stderr]       Adding rand v0.3.23 (latest: v0.8.5)
[INFO] [stderr]       Adding rand v0.4.6 (latest: v0.8.5)
[INFO] [stderr]       Adding rand_core v0.3.1 (latest: v0.6.4)
[INFO] [stderr]       Adding rand_core v0.4.2 (latest: v0.6.4)
[INFO] [stderr]       Adding rayon v0.4.3 (latest: v1.10.0)
[INFO] [stderr]       Adding rdrand v0.4.0 (latest: v0.8.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded deque v0.3.2
[INFO] [stderr]   Downloaded rayon v0.4.3
[INFO] [stderr]   Downloaded downcast v0.6.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 92ea61597daf3114cc56e317004c8df2c20995cd400dd6714a1df78dcdd9cf65
[INFO] running `Command { std: "docker" "start" "-a" "92ea61597daf3114cc56e317004c8df2c20995cd400dd6714a1df78dcdd9cf65", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "92ea61597daf3114cc56e317004c8df2c20995cd400dd6714a1df78dcdd9cf65", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "92ea61597daf3114cc56e317004c8df2c20995cd400dd6714a1df78dcdd9cf65", kill_on_drop: false }`
[INFO] [stdout] 92ea61597daf3114cc56e317004c8df2c20995cd400dd6714a1df78dcdd9cf65
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 49b50d86b65c8acb21322f816246c203e89a2bfd08a0f7a34bd971ee81465bd3
[INFO] running `Command { std: "docker" "start" "-a" "49b50d86b65c8acb21322f816246c203e89a2bfd08a0f7a34bd971ee81465bd3", kill_on_drop: false }`
[INFO] [stderr]     Checking deque v0.3.2
[INFO] [stderr]     Checking downcast v0.6.0
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking rayon v0.4.3
[INFO] [stderr]     Checking moonlander-gp v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]   --> src/population.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(RustcEncodable)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout]    = note: `#[deny(soft_unstable)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/population.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(RustcEncodable)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]   --> src/genetic/fitness.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,RustcEncodable)]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/genetic/fitness.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,RustcEncodable)]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn children(&self) -> Vec<&AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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] 14 |     fn children(&self) -> Vec<&dyn AstNode>;
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:41
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &dyn AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:77
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<dyn AstNode>>) -> Box<AstNode>;
[INFO] [stdout]    |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:95
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<dyn AstNode>;
[INFO] [stdout]    |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]   --> src/population.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(RustcEncodable)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout]    = note: `#[deny(soft_unstable)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:43:27
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn copy(&self) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn copy(&self) -> Box<dyn AstNode>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/population.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(RustcEncodable)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:34:49
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut dyn Rng) -> Box<AstNode>;
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]   --> src/genetic/fitness.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,RustcEncodable)]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:34:61
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<dyn AstNode>;
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/genetic/fitness.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,RustcEncodable)]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | downcast_methods!(AstNode);
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 | downcast_methods!(dyn AstNode);
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn copy(&self) -> Box<AstNode> { Box::new(self.clone()) }
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn copy(&self) -> Box<dyn AstNode> { Box::new(self.clone()) }
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn depth(node: &AstNode) -> usize {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn depth(node: &dyn AstNode) -> usize {
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub node: &'a AstNode,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub node: &'a dyn AstNode,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:95:45
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn same_node<T: AstNode>(node1: &T, node2: &AstNode) -> 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn same_node<T: AstNode>(node1: &T, node2: &dyn AstNode) -> bool {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:108:66
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &dyn AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:108:102
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<dyn AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:117:73
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: Box<AstNode>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: Box<dyn AstNode>) -> Box<T> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:122:84
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn do_replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn do_replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: &mut Option<Box<dyn AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/genetic/select.rs:7:100
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn tournament_selection<'a, P, F>(tournament_size: usize, pop: &'a Population<P, F>, rng: &mut Rng) -> &'a P
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn tournament_selection<'a, P, F>(tournament_size: usize, pop: &'a Population<P, F>, rng: &mut dyn Rng) -> &'a P
[INFO] [stdout]   |                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn rand(weights: NodeWeights, rng: &mut Rng) -> 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn rand(weights: NodeWeights, rng: &mut dyn Rng) -> Self;
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/population.rs:46:55
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn score<S>(&mut self, scoring_fn: S, _: &mut Rng)
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn score<S>(&mut self, scoring_fn: S, _: &mut dyn Rng)
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut dyn Rng) -> Box<AstNode> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:20:61
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<dyn AstNode> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:96:52
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn gen_child<P: RandNode>(&self, rng: &mut Rng) -> Box<P> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn gen_child<P: RandNode>(&self, rng: &mut dyn Rng) -> Box<P> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub node: &'a AstNode,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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] 63 |     pub node: &'a dyn AstNode,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:68:45
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn find_nodes_and_parents<'a>(root: &'a AstNode) -> Vec<Rc<NodeInTree<'a>>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn find_nodes_and_parents<'a>(root: &'a dyn AstNode) -> Vec<Rc<NodeInTree<'a>>> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:79:48
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn find_nodes_and_parents_into<'a>(parent: &'a AstNode,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn find_nodes_and_parents_into<'a>(parent: &'a dyn AstNode,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/population.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 |         where S: Fn(&P, &mut Rng) -> F + Sync
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |         where S: Fn(&P, &mut dyn Rng) -> F + Sync
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:80:50
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn randomized(max_height: i32, rng: &mut Rng) -> NodeWeights {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn randomized(max_height: i32, rng: &mut dyn Rng) -> NodeWeights {
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:82:40
[INFO] [stdout]     |
[INFO] [stdout] 82  |               fn children(&self) -> Vec<&$crate::AstNode> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 | /     impl_astnode!(Tree, 666,
[INFO] [stdout] 127 | |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[INFO] [stdout] 128 | |                   int Node(left, right));
[INFO] [stdout]     | |________________________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn children(&self) -> Vec<&AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn children(&self) -> Vec<&dyn AstNode>;
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:50
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 | /     impl_astnode!(Tree, 666,
[INFO] [stdout] 127 | |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[INFO] [stdout] 128 | |                   int Node(left, right));
[INFO] [stdout]     | |________________________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:95
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 | /     impl_astnode!(Tree, 666,
[INFO] [stdout] 127 | |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[INFO] [stdout] 128 | |                   int Node(left, right));
[INFO] [stdout]     | |________________________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:121
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                                                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 | /     impl_astnode!(Tree, 666,
[INFO] [stdout] 127 | |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[INFO] [stdout] 128 | |                   int Node(left, right));
[INFO] [stdout]     | |________________________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:41
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &dyn AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:77
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<dyn AstNode>>) -> Box<AstNode>;
[INFO] [stdout]    |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:95
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<dyn AstNode>;
[INFO] [stdout]    |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:104:61
[INFO] [stdout]     |
[INFO] [stdout] 104 |               fn rand(weights: $crate::NodeWeights, rng: &mut ::rand::Rng) -> $enum_name {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 | /     impl_astnode!(Tree, 666,
[INFO] [stdout] 127 | |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[INFO] [stdout] 128 | |                   int Node(left, right));
[INFO] [stdout]     | |________________________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn rand(weights: NodeWeights, rng: &mut Rng) -> 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn rand(weights: NodeWeights, rng: &mut dyn Rng) -> Self;
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/genetic/evolve.rs:24:52
[INFO] [stdout]    |
[INFO] [stdout] 24 |           S: for<'a> Fn(&'a Population<P, F>, &mut Rng) -> &'a P
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |           S: for<'a> Fn(&'a Population<P, F>, &mut dyn Rng) -> &'a P
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:43:27
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn copy(&self) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn copy(&self) -> Box<dyn AstNode>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:34:49
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut dyn Rng) -> Box<AstNode>;
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:34:61
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<dyn AstNode>;
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | downcast_methods!(AstNode);
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 | downcast_methods!(dyn AstNode);
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn copy(&self) -> Box<AstNode> { Box::new(self.clone()) }
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn copy(&self) -> Box<dyn AstNode> { Box::new(self.clone()) }
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn depth(node: &AstNode) -> usize {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn depth(node: &dyn AstNode) -> usize {
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:95:45
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn same_node<T: AstNode>(node1: &T, node2: &AstNode) -> 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn same_node<T: AstNode>(node1: &T, node2: &dyn AstNode) -> bool {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:108:66
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &dyn AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:108:102
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<dyn AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:117:73
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: Box<AstNode>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: Box<dyn AstNode>) -> Box<T> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:122:84
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn do_replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn do_replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: &mut Option<Box<dyn AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/genetic/select.rs:7:100
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn tournament_selection<'a, P, F>(tournament_size: usize, pop: &'a Population<P, F>, rng: &mut Rng) -> &'a P
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn tournament_selection<'a, P, F>(tournament_size: usize, pop: &'a Population<P, F>, rng: &mut dyn Rng) -> &'a P
[INFO] [stdout]   |                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/population.rs:46:55
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn score<S>(&mut self, scoring_fn: S, _: &mut Rng)
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn score<S>(&mut self, scoring_fn: S, _: &mut dyn Rng)
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut dyn Rng) -> Box<AstNode> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:20:61
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<dyn AstNode> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:96:52
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn gen_child<P: RandNode>(&self, rng: &mut Rng) -> Box<P> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn gen_child<P: RandNode>(&self, rng: &mut dyn Rng) -> Box<P> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:68:45
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn find_nodes_and_parents<'a>(root: &'a AstNode) -> Vec<Rc<NodeInTree<'a>>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn find_nodes_and_parents<'a>(root: &'a dyn AstNode) -> Vec<Rc<NodeInTree<'a>>> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:79:48
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn find_nodes_and_parents_into<'a>(parent: &'a AstNode,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn find_nodes_and_parents_into<'a>(parent: &'a dyn AstNode,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:150:36
[INFO] [stdout]     |
[INFO] [stdout] 150 |         fn children(&self) -> Vec<&AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 150 |         fn children(&self) -> Vec<&dyn AstNode> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:158:45
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &dyn AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:158:81
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<dyn AstNode>>) -> Box<AstNode> {
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:158:99
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<dyn AstNode> {
[INFO] [stdout]     |                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:171:42
[INFO] [stdout]     |
[INFO] [stdout] 171 |         fn mutate(&self, _: i32, _: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 171 |         fn mutate(&self, _: i32, _: &mut dyn Rng) -> Box<AstNode> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:171:54
[INFO] [stdout]     |
[INFO] [stdout] 171 |         fn mutate(&self, _: i32, _: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 171 |         fn mutate(&self, _: i32, _: &mut Rng) -> Box<dyn AstNode> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:176:38
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn expect_node(value: u32, ast: &AstNode) {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn expect_node(value: u32, ast: &dyn AstNode) {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/population.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 |         where S: Fn(&P, &mut Rng) -> F + Sync
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |         where S: Fn(&P, &mut dyn Rng) -> F + Sync
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:80:50
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn randomized(max_height: i32, rng: &mut Rng) -> NodeWeights {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn randomized(max_height: i32, rng: &mut dyn Rng) -> NodeWeights {
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:82:40
[INFO] [stdout]     |
[INFO] [stdout] 82  |               fn children(&self) -> Vec<&$crate::AstNode> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/random_pop.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     impl_astnode!(List, 0,
[INFO] [stdout] 121 | |                   int Cons(next),
[INFO] [stdout] 122 | |                   leaf Nil());
[INFO] [stdout]     | |_____________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:50
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/random_pop.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     impl_astnode!(List, 0,
[INFO] [stdout] 121 | |                   int Cons(next),
[INFO] [stdout] 122 | |                   leaf Nil());
[INFO] [stdout]     | |_____________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:95
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/random_pop.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     impl_astnode!(List, 0,
[INFO] [stdout] 121 | |                   int Cons(next),
[INFO] [stdout] 122 | |                   leaf Nil());
[INFO] [stdout]     | |_____________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:121
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                                                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/random_pop.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     impl_astnode!(List, 0,
[INFO] [stdout] 121 | |                   int Cons(next),
[INFO] [stdout] 122 | |                   leaf Nil());
[INFO] [stdout]     | |_____________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:104:61
[INFO] [stdout]     |
[INFO] [stdout] 104 |               fn rand(weights: $crate::NodeWeights, rng: &mut ::rand::Rng) -> $enum_name {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/random_pop.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     impl_astnode!(List, 0,
[INFO] [stdout] 121 | |                   int Cons(next),
[INFO] [stdout] 122 | |                   leaf Nil());
[INFO] [stdout]     | |_____________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/genetic/evolve.rs:24:52
[INFO] [stdout]    |
[INFO] [stdout] 24 |           S: for<'a> Fn(&'a Population<P, F>, &mut Rng) -> &'a P
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |           S: for<'a> Fn(&'a Population<P, F>, &mut dyn Rng) -> &'a P
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:127:48
[INFO] [stdout]     |
[INFO] [stdout] 127 |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 127 |                   leaf Leaf((data d |rng: &mut dyn (::rand::Rng)| (rng.next_u32() % 100) as i32)),
[INFO] [stdout]     |                                                +++++           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:141:42
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut replacement : Option<Box<AstNode>> = Some(Box::new(Tree::Leaf(2)));
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut replacement : Option<Box<dyn AstNode>> = Some(Box::new(Tree::Leaf(2)));
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:212:69
[INFO] [stdout]     |
[INFO] [stdout] 212 |         let mut new_child = Some(Box::new(TestNode::Leaf(3)) as Box<AstNode>);
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 212 |         let mut new_child = Some(Box::new(TestNode::Leaf(3)) as Box<dyn AstNode>);
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `vtable` is never read
[INFO] [stdout]   --> src/ast.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | struct TraitObject {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 90 |     pub data: *mut (),
[INFO] [stdout] 91 |     pub vtable: *mut (),
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/ast.rs:83:64
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let current_root_path = Rc::new(NodeInTree { node: node.clone(), root_path: Some(parent_root_path.clone()) });
[INFO] [stdout]    |                                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `dyn AstNode` does not implement `Clone`, so calling `clone` on `&dyn AstNode` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `moonlander-gp` (lib) due to 5 previous errors; 31 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: field `vtable` is never read
[INFO] [stdout]   --> src/ast.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | struct TraitObject {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 90 |     pub data: *mut (),
[INFO] [stdout] 91 |     pub vtable: *mut (),
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/ast.rs:83:64
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let current_root_path = Rc::new(NodeInTree { node: node.clone(), root_path: Some(parent_root_path.clone()) });
[INFO] [stdout]    |                                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `dyn ast::AstNode` does not implement `Clone`, so calling `clone` on `&dyn ast::AstNode` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 51 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `moonlander-gp` (lib test) due to 5 previous errors; 51 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "49b50d86b65c8acb21322f816246c203e89a2bfd08a0f7a34bd971ee81465bd3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "49b50d86b65c8acb21322f816246c203e89a2bfd08a0f7a34bd971ee81465bd3", kill_on_drop: false }`
[INFO] [stdout] 49b50d86b65c8acb21322f816246c203e89a2bfd08a0f7a34bd971ee81465bd3
[INFO] checking moonlander-gp-0.1.1 against try#9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88 for pr-124157
[INFO] extracting crate moonlander-gp 0.1.1 into /workspace/builds/worker-4-tc2/source
[INFO] validating manifest of crates.io crate moonlander-gp 0.1.1 on toolchain 9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate moonlander-gp 0.1.1
[INFO] finished tweaking crates.io crate moonlander-gp 0.1.1
[INFO] tweaked toml for crates.io crate moonlander-gp 0.1.1 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 17 packages to latest compatible versions
[INFO] [stderr]       Adding downcast v0.6.0 (latest: v0.11.0)
[INFO] [stderr]       Adding rand v0.3.23 (latest: v0.8.5)
[INFO] [stderr]       Adding rand v0.4.6 (latest: v0.8.5)
[INFO] [stderr]       Adding rand_core v0.3.1 (latest: v0.6.4)
[INFO] [stderr]       Adding rand_core v0.4.2 (latest: v0.6.4)
[INFO] [stderr]       Adding rayon v0.4.3 (latest: v1.10.0)
[INFO] [stderr]       Adding rdrand v0.4.0 (latest: v0.8.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9b9244c3f5c7b3c56ddf5cbd99c40f04de7d1f3591544543f9e72529b355c4de
[INFO] running `Command { std: "docker" "start" "-a" "9b9244c3f5c7b3c56ddf5cbd99c40f04de7d1f3591544543f9e72529b355c4de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9b9244c3f5c7b3c56ddf5cbd99c40f04de7d1f3591544543f9e72529b355c4de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9b9244c3f5c7b3c56ddf5cbd99c40f04de7d1f3591544543f9e72529b355c4de", kill_on_drop: false }`
[INFO] [stdout] 9b9244c3f5c7b3c56ddf5cbd99c40f04de7d1f3591544543f9e72529b355c4de
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "-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:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+9c7b5f5b6b8ec32bbbcf9f07fc0e5208da6c5f88" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 573d05d263278b6893cc941fe991b38dfbb8f3e41e572b07e44c00f57d510b83
[INFO] running `Command { std: "docker" "start" "-a" "573d05d263278b6893cc941fe991b38dfbb8f3e41e572b07e44c00f57d510b83", kill_on_drop: false }`
[INFO] [stderr]     Checking deque v0.3.2
[INFO] [stderr]     Checking downcast v0.6.0
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking rayon v0.4.3
[INFO] [stderr]     Checking moonlander-gp v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]   --> src/population.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(RustcEncodable)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout]    = note: `#[deny(soft_unstable)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/population.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(RustcEncodable)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]   --> src/genetic/fitness.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,RustcEncodable)]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/genetic/fitness.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,RustcEncodable)]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn children(&self) -> Vec<&AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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] 14 |     fn children(&self) -> Vec<&dyn AstNode>;
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:41
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &dyn AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:77
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<dyn AstNode>>) -> Box<AstNode>;
[INFO] [stdout]    |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:95
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<dyn AstNode>;
[INFO] [stdout]    |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:43:27
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn copy(&self) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn copy(&self) -> Box<dyn AstNode>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:34:49
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut dyn Rng) -> Box<AstNode>;
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:34:61
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<dyn AstNode>;
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]   --> src/population.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(RustcEncodable)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout]    = note: `#[deny(soft_unstable)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/population.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(RustcEncodable)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: use of unstable library feature 'rustc_encodable_decodable': derive macro for `rustc-serialize`; should not be used in new code
[INFO] [stdout]   --> src/genetic/fitness.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,RustcEncodable)]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `RustcEncodable`: rustc-serialize is deprecated and no longer supported
[INFO] [stdout]   --> src/genetic/fitness.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Clone,RustcEncodable)]
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | downcast_methods!(AstNode);
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 | downcast_methods!(dyn AstNode);
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn copy(&self) -> Box<AstNode> { Box::new(self.clone()) }
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn copy(&self) -> Box<dyn AstNode> { Box::new(self.clone()) }
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn depth(node: &AstNode) -> usize {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn depth(node: &dyn AstNode) -> usize {
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub node: &'a AstNode,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub node: &'a dyn AstNode,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:95:45
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn same_node<T: AstNode>(node1: &T, node2: &AstNode) -> 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn same_node<T: AstNode>(node1: &T, node2: &dyn AstNode) -> bool {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:108:66
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &dyn AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:108:102
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<dyn AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:117:73
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: Box<AstNode>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: Box<dyn AstNode>) -> Box<T> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:122:84
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn do_replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn do_replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: &mut Option<Box<dyn AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/genetic/select.rs:7:100
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn tournament_selection<'a, P, F>(tournament_size: usize, pop: &'a Population<P, F>, rng: &mut Rng) -> &'a P
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn tournament_selection<'a, P, F>(tournament_size: usize, pop: &'a Population<P, F>, rng: &mut dyn Rng) -> &'a P
[INFO] [stdout]   |                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn rand(weights: NodeWeights, rng: &mut Rng) -> 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn rand(weights: NodeWeights, rng: &mut dyn Rng) -> Self;
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/population.rs:46:55
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn score<S>(&mut self, scoring_fn: S, _: &mut Rng)
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn score<S>(&mut self, scoring_fn: S, _: &mut dyn Rng)
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut dyn Rng) -> Box<AstNode> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:20:61
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<dyn AstNode> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:96:52
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn gen_child<P: RandNode>(&self, rng: &mut Rng) -> Box<P> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn gen_child<P: RandNode>(&self, rng: &mut dyn Rng) -> Box<P> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub node: &'a AstNode,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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] 63 |     pub node: &'a dyn AstNode,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:68:45
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn find_nodes_and_parents<'a>(root: &'a AstNode) -> Vec<Rc<NodeInTree<'a>>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn find_nodes_and_parents<'a>(root: &'a dyn AstNode) -> Vec<Rc<NodeInTree<'a>>> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:79:48
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn find_nodes_and_parents_into<'a>(parent: &'a AstNode,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn find_nodes_and_parents_into<'a>(parent: &'a dyn AstNode,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/population.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 |         where S: Fn(&P, &mut Rng) -> F + Sync
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |         where S: Fn(&P, &mut dyn Rng) -> F + Sync
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:80:50
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn randomized(max_height: i32, rng: &mut Rng) -> NodeWeights {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn randomized(max_height: i32, rng: &mut dyn Rng) -> NodeWeights {
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:82:40
[INFO] [stdout]     |
[INFO] [stdout] 82  |               fn children(&self) -> Vec<&$crate::AstNode> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 | /     impl_astnode!(Tree, 666,
[INFO] [stdout] 127 | |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[INFO] [stdout] 128 | |                   int Node(left, right));
[INFO] [stdout]     | |________________________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn children(&self) -> Vec<&AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn children(&self) -> Vec<&dyn AstNode>;
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:50
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 | /     impl_astnode!(Tree, 666,
[INFO] [stdout] 127 | |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[INFO] [stdout] 128 | |                   int Node(left, right));
[INFO] [stdout]     | |________________________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:95
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 | /     impl_astnode!(Tree, 666,
[INFO] [stdout] 127 | |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[INFO] [stdout] 128 | |                   int Node(left, right));
[INFO] [stdout]     | |________________________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:121
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                                                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 | /     impl_astnode!(Tree, 666,
[INFO] [stdout] 127 | |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[INFO] [stdout] 128 | |                   int Node(left, right));
[INFO] [stdout]     | |________________________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:41
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &dyn AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:77
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<dyn AstNode>>) -> Box<AstNode>;
[INFO] [stdout]    |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:17:95
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<dyn AstNode>;
[INFO] [stdout]    |                                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:104:61
[INFO] [stdout]     |
[INFO] [stdout] 104 |               fn rand(weights: $crate::NodeWeights, rng: &mut ::rand::Rng) -> $enum_name {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 | /     impl_astnode!(Tree, 666,
[INFO] [stdout] 127 | |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[INFO] [stdout] 128 | |                   int Node(left, right));
[INFO] [stdout]     | |________________________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn rand(weights: NodeWeights, rng: &mut Rng) -> 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn rand(weights: NodeWeights, rng: &mut dyn Rng) -> Self;
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/genetic/evolve.rs:24:52
[INFO] [stdout]    |
[INFO] [stdout] 24 |           S: for<'a> Fn(&'a Population<P, F>, &mut Rng) -> &'a P
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |           S: for<'a> Fn(&'a Population<P, F>, &mut dyn Rng) -> &'a P
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:43:27
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn copy(&self) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn copy(&self) -> Box<dyn AstNode>;
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:34:49
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut dyn Rng) -> Box<AstNode>;
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:34:61
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<dyn AstNode>;
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | downcast_methods!(AstNode);
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 | downcast_methods!(dyn AstNode);
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn copy(&self) -> Box<AstNode> { Box::new(self.clone()) }
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn copy(&self) -> Box<dyn AstNode> { Box::new(self.clone()) }
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn depth(node: &AstNode) -> usize {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn depth(node: &dyn AstNode) -> usize {
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:95:45
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn same_node<T: AstNode>(node1: &T, node2: &AstNode) -> 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn same_node<T: AstNode>(node1: &T, node2: &dyn AstNode) -> bool {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:108:66
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &dyn AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:108:102
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn clone_or_replace<T: AstNode+Clone>(child: &T, old_child: &AstNode, new_child: &mut Option<Box<dyn AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:117:73
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: Box<AstNode>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: Box<dyn AstNode>) -> Box<T> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:122:84
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn do_replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: &mut Option<Box<AstNode>>) -> Box<T> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn do_replace_to_root<T: AstNode>(nap: &Rc<NodeInTree>, new_child: &mut Option<Box<dyn AstNode>>) -> Box<T> {
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/genetic/select.rs:7:100
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn tournament_selection<'a, P, F>(tournament_size: usize, pop: &'a Population<P, F>, rng: &mut Rng) -> &'a P
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn tournament_selection<'a, P, F>(tournament_size: usize, pop: &'a Population<P, F>, rng: &mut dyn Rng) -> &'a P
[INFO] [stdout]   |                                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/population.rs:46:55
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn score<S>(&mut self, scoring_fn: S, _: &mut Rng)
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn score<S>(&mut self, scoring_fn: S, _: &mut dyn Rng)
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:20:49
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut dyn Rng) -> Box<AstNode> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:20:61
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn mutate(&self, max_height: i32, rng: &mut Rng) -> Box<dyn AstNode> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:96:52
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn gen_child<P: RandNode>(&self, rng: &mut Rng) -> Box<P> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn gen_child<P: RandNode>(&self, rng: &mut dyn Rng) -> Box<P> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:68:45
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn find_nodes_and_parents<'a>(root: &'a AstNode) -> Vec<Rc<NodeInTree<'a>>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn find_nodes_and_parents<'a>(root: &'a dyn AstNode) -> Vec<Rc<NodeInTree<'a>>> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:79:48
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn find_nodes_and_parents_into<'a>(parent: &'a AstNode,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn find_nodes_and_parents_into<'a>(parent: &'a dyn AstNode,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:150:36
[INFO] [stdout]     |
[INFO] [stdout] 150 |         fn children(&self) -> Vec<&AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 150 |         fn children(&self) -> Vec<&dyn AstNode> {
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:158:45
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &dyn AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:158:81
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<dyn AstNode>>) -> Box<AstNode> {
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:158:99
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 158 |         fn replace_child(&self, old_child: &AstNode, new_child: &mut Option<Box<AstNode>>) -> Box<dyn AstNode> {
[INFO] [stdout]     |                                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:171:42
[INFO] [stdout]     |
[INFO] [stdout] 171 |         fn mutate(&self, _: i32, _: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 171 |         fn mutate(&self, _: i32, _: &mut dyn Rng) -> Box<AstNode> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:171:54
[INFO] [stdout]     |
[INFO] [stdout] 171 |         fn mutate(&self, _: i32, _: &mut Rng) -> Box<AstNode> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 171 |         fn mutate(&self, _: i32, _: &mut Rng) -> Box<dyn AstNode> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:176:38
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn expect_node(value: u32, ast: &AstNode) {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn expect_node(value: u32, ast: &dyn AstNode) {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/population.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 |         where S: Fn(&P, &mut Rng) -> F + Sync
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |         where S: Fn(&P, &mut dyn Rng) -> F + Sync
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/random_pop.rs:80:50
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn randomized(max_height: i32, rng: &mut Rng) -> NodeWeights {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn randomized(max_height: i32, rng: &mut dyn Rng) -> NodeWeights {
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:82:40
[INFO] [stdout]     |
[INFO] [stdout] 82  |               fn children(&self) -> Vec<&$crate::AstNode> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/random_pop.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     impl_astnode!(List, 0,
[INFO] [stdout] 121 | |                   int Cons(next),
[INFO] [stdout] 122 | |                   leaf Nil());
[INFO] [stdout]     | |_____________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:50
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/random_pop.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     impl_astnode!(List, 0,
[INFO] [stdout] 121 | |                   int Cons(next),
[INFO] [stdout] 122 | |                   leaf Nil());
[INFO] [stdout]     | |_____________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:95
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/random_pop.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     impl_astnode!(List, 0,
[INFO] [stdout] 121 | |                   int Cons(next),
[INFO] [stdout] 122 | |                   leaf Nil());
[INFO] [stdout]     | |_____________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:92:121
[INFO] [stdout]     |
[INFO] [stdout] 92  |               fn replace_child(&self, _old_child: &$crate::AstNode, _new_child: &mut Option<Box<$crate::AstNode>>) -> Box<$crate::AstNode> {
[INFO] [stdout]     |                                                                                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/random_pop.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     impl_astnode!(List, 0,
[INFO] [stdout] 121 | |                   int Cons(next),
[INFO] [stdout] 122 | |                   leaf Nil());
[INFO] [stdout]     | |_____________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:104:61
[INFO] [stdout]     |
[INFO] [stdout] 104 |               fn rand(weights: $crate::NodeWeights, rng: &mut ::rand::Rng) -> $enum_name {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/random_pop.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | /     impl_astnode!(List, 0,
[INFO] [stdout] 121 | |                   int Cons(next),
[INFO] [stdout] 122 | |                   leaf Nil());
[INFO] [stdout]     | |_____________________________- in this macro invocation
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `impl_astnode` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/genetic/evolve.rs:24:52
[INFO] [stdout]    |
[INFO] [stdout] 24 |           S: for<'a> Fn(&'a Population<P, F>, &mut Rng) -> &'a P
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |           S: for<'a> Fn(&'a Population<P, F>, &mut dyn Rng) -> &'a P
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:127:48
[INFO] [stdout]     |
[INFO] [stdout] 127 |                   leaf Leaf((data d |rng: &mut ::rand::Rng| (rng.next_u32() % 100) as i32)),
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 127 |                   leaf Leaf((data d |rng: &mut dyn (::rand::Rng)| (rng.next_u32() % 100) as i32)),
[INFO] [stdout]     |                                                +++++           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impl_astnode.rs:141:42
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut replacement : Option<Box<AstNode>> = Some(Box::new(Tree::Leaf(2)));
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut replacement : Option<Box<dyn AstNode>> = Some(Box::new(Tree::Leaf(2)));
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:212:69
[INFO] [stdout]     |
[INFO] [stdout] 212 |         let mut new_child = Some(Box::new(TestNode::Leaf(3)) as Box<AstNode>);
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 212 |         let mut new_child = Some(Box::new(TestNode::Leaf(3)) as Box<dyn AstNode>);
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `vtable` is never read
[INFO] [stdout]   --> src/ast.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | struct TraitObject {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 90 |     pub data: *mut (),
[INFO] [stdout] 91 |     pub vtable: *mut (),
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/ast.rs:83:64
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let current_root_path = Rc::new(NodeInTree { node: node.clone(), root_path: Some(parent_root_path.clone()) });
[INFO] [stdout]    |                                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `dyn AstNode` does not implement `Clone`, so calling `clone` on `&dyn AstNode` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `moonlander-gp` (lib) due to 5 previous errors; 31 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: field `vtable` is never read
[INFO] [stdout]   --> src/ast.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | struct TraitObject {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] 90 |     pub data: *mut (),
[INFO] [stdout] 91 |     pub vtable: *mut (),
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/ast.rs:83:64
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let current_root_path = Rc::new(NodeInTree { node: node.clone(), root_path: Some(parent_root_path.clone()) });
[INFO] [stdout]    |                                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `dyn ast::AstNode` does not implement `Clone`, so calling `clone` on `&dyn ast::AstNode` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 51 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `moonlander-gp` (lib test) due to 5 previous errors; 51 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "573d05d263278b6893cc941fe991b38dfbb8f3e41e572b07e44c00f57d510b83", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "573d05d263278b6893cc941fe991b38dfbb8f3e41e572b07e44c00f57d510b83", kill_on_drop: false }`
[INFO] [stdout] 573d05d263278b6893cc941fe991b38dfbb8f3e41e572b07e44c00f57d510b83
