[INFO] fetching crate eclectic 0.11.0...
[INFO] testing eclectic-0.11.0 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate eclectic 0.11.0 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate eclectic 0.11.0
[INFO] finished tweaking crates.io crate eclectic 0.11.0
[INFO] tweaked toml for crates.io crate eclectic 0.11.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate eclectic 0.11.0 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 40d5c2f8cae8f612f236f9e72751603be78a3a5e90da2499d225579fdbc7cd47
[INFO] running `Command { std: "docker" "start" "-a" "40d5c2f8cae8f612f236f9e72751603be78a3a5e90da2499d225579fdbc7cd47", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "40d5c2f8cae8f612f236f9e72751603be78a3a5e90da2499d225579fdbc7cd47", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "40d5c2f8cae8f612f236f9e72751603be78a3a5e90da2499d225579fdbc7cd47", kill_on_drop: false }`
[INFO] [stdout] 40d5c2f8cae8f612f236f9e72751603be78a3a5e90da2499d225579fdbc7cd47
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b711d6327e0bcdabfe9c7134a372c3301b0b83e913969fd8d5985834d225a647
[INFO] running `Command { std: "docker" "start" "-a" "b711d6327e0bcdabfe9c7134a372c3301b0b83e913969fd8d5985834d225a647", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling eclectic v0.11.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/impls.rs:21:46
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn extend_object(&mut self, _items: &mut Iterator<Item = T>) where Self: AddRemove {
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn extend_object(&mut self, _items: &mut dyn Iterator<Item = T>) where Self: AddRemove {
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:148:45
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut dyn Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/impls.rs:25:39
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = T> + 'a> where Self: AddRemove {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn drain<'a>(&'a mut self) -> Box<dyn Iterator<Item = T> + 'a> where Self: AddRemove {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:165:39
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<dyn Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/impls.rs:39:34
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn iter<'a>(&'a self) -> Box<Iterator<Item = &'a T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = &'a T> + 'a> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:202:34
[INFO] [stdout]     |
[INFO] [stdout] 202 |     fn iter<'a>(&'a self) -> Box<Iterator<Item = &'a Self::Item> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 202 |     fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = &'a Self::Item> + 'a>;
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/impls.rs:43:42
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn iter_mut<'a>(&'a mut self) -> Box<dyn Iterator<Item = &'a mut T> + 'a> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:207:42
[INFO] [stdout]     |
[INFO] [stdout] 207 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut Self::Item> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 207 |     fn iter_mut<'a>(&'a mut self) -> Box<dyn Iterator<Item = &'a mut Self::Item> + 'a>
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/impls.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 |         -> Box<Iterator<Item = T> + 'a> where Self: AddRemove
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 |         -> Box<dyn Iterator<Item = T> + 'a> where Self: AddRemove
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:223:55
[INFO] [stdout]     |
[INFO] [stdout] 223 |     fn drain_range<'a>(&'a mut self, range: R) -> Box<Iterator<Item = Self::Item> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 223 |     fn drain_range<'a>(&'a mut self, range: R) -> Box<dyn Iterator<Item = Self::Item> + 'a>
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:105:45
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn extend_object(&mut self, items: &mut Iterator<Item = (K, V)>) {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn extend_object(&mut self, items: &mut dyn Iterator<Item = (K, V)>) {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:113:39
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = (K, V)> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn drain<'a>(&'a mut self) -> Box<dyn Iterator<Item = (K, V)> + 'a> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:134:34
[INFO] [stdout]     |
[INFO] [stdout] 134 |     fn iter<'a>(&'a self) -> Box<Iterator<Item = (&'a K, &'a V)> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 134 |     fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = (&'a K, &'a V)> + 'a> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:409:38
[INFO] [stdout]     |
[INFO] [stdout] 409 |         fn iter<'a>(&'a self) -> Box<Iterator<Item = (&'a Self::Key, &'a Self::Value)> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 409 |         fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = (&'a Self::Key, &'a Self::Value)> + 'a>;
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:138:42
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = (&'a K, &'a mut V)> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn iter_mut<'a>(&'a mut self) -> Box<dyn Iterator<Item = (&'a K, &'a mut V)> + 'a> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:416:20
[INFO] [stdout]     |
[INFO] [stdout] 416 |             -> Box<Iterator<Item = (&'a Self::Key, &'a mut Self::Value)> + 'a> where Self: Mutate;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 416 |             -> Box<dyn Iterator<Item = (&'a Self::Key, &'a mut Self::Value)> + 'a> where Self: Mutate;
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:466:22
[INFO] [stdout]     |
[INFO] [stdout] 466 |         Occupied(Box<OccupiedEntry<Key = K, Value = V, MutValue = &'a mut V> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 466 |         Occupied(Box<dyn OccupiedEntry<Key = K, Value = V, MutValue = &'a mut V> + 'a>),
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:468:20
[INFO] [stdout]     |
[INFO] [stdout] 468 |         Vacant(Box<VacantEntry<Key = K, Value = V, MutValue = &'a mut V> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 468 |         Vacant(Box<dyn VacantEntry<Key = K, Value = V, MutValue = &'a mut V> + 'a>),
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:203:45
[INFO] [stdout]     |
[INFO] [stdout] 203 |     fn extend_object(&mut self, items: &mut Iterator<Item = 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 203 |     fn extend_object(&mut self, items: &mut dyn Iterator<Item = T>) {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:211:39
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 211 |     fn drain<'a>(&'a mut self) -> Box<dyn Iterator<Item = T> + 'a> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:229:34
[INFO] [stdout]     |
[INFO] [stdout] 229 |     fn iter<'a>(&'a self) -> Box<Iterator<Item = &'a T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 229 |     fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = &'a T> + 'a> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:233:42
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut T> + 'a> where Self: Mutate {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn iter_mut<'a>(&'a mut self) -> Box<dyn Iterator<Item = &'a mut T> + 'a> where Self: Mutate {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:291:45
[INFO] [stdout]     |
[INFO] [stdout] 291 |     fn extend_object(&mut self, items: &mut Iterator<Item = 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 291 |     fn extend_object(&mut self, items: &mut dyn Iterator<Item = T>) {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:299:39
[INFO] [stdout]     |
[INFO] [stdout] 299 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 299 |     fn drain<'a>(&'a mut self) -> Box<dyn Iterator<Item = T> + 'a> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:321:34
[INFO] [stdout]     |
[INFO] [stdout] 321 |     fn iter<'a>(&'a self) -> Box<Iterator<Item = &'a T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 321 |     fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = &'a T> + 'a> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:325:42
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut T> + 'a> where Self: Mutate {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn iter_mut<'a>(&'a mut self) -> Box<dyn Iterator<Item = &'a mut T> + 'a> where Self: Mutate {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:381:45
[INFO] [stdout]     |
[INFO] [stdout] 381 |     fn extend_object(&mut self, items: &mut Iterator<Item = (K, V)>) {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 381 |     fn extend_object(&mut self, items: &mut dyn Iterator<Item = (K, V)>) {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:389:39
[INFO] [stdout]     |
[INFO] [stdout] 389 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = (K, V)> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 389 |     fn drain<'a>(&'a mut self) -> Box<dyn Iterator<Item = (K, V)> + 'a> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:414:34
[INFO] [stdout]     |
[INFO] [stdout] 414 |     fn iter<'a>(&'a self) -> Box<Iterator<Item = (&'a K, &'a V)> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 414 |     fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = (&'a K, &'a V)> + 'a> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:418:42
[INFO] [stdout]     |
[INFO] [stdout] 418 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = (&'a K, &'a mut V)> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 418 |     fn iter_mut<'a>(&'a mut self) -> Box<dyn Iterator<Item = (&'a K, &'a mut V)> + 'a> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:483:45
[INFO] [stdout]     |
[INFO] [stdout] 483 |     fn extend_object(&mut self, items: &mut Iterator<Item = 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 483 |     fn extend_object(&mut self, items: &mut dyn Iterator<Item = T>) {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:491:39
[INFO] [stdout]     |
[INFO] [stdout] 491 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 491 |     fn drain<'a>(&'a mut self) -> Box<dyn Iterator<Item = T> + 'a> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:513:34
[INFO] [stdout]     |
[INFO] [stdout] 513 |     fn iter<'a>(&'a self) -> Box<Iterator<Item = &'a T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 513 |     fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = &'a T> + 'a> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:517:42
[INFO] [stdout]     |
[INFO] [stdout] 517 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut T> + 'a> where Self: Mutate {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 517 |     fn iter_mut<'a>(&'a mut self) -> Box<dyn Iterator<Item = &'a mut T> + 'a> where Self: Mutate {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:577:45
[INFO] [stdout]     |
[INFO] [stdout] 577 |     fn extend_object(&mut self, items: &mut Iterator<Item = 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 577 |     fn extend_object(&mut self, items: &mut dyn Iterator<Item = T>) {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:585:39
[INFO] [stdout]     |
[INFO] [stdout] 585 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 585 |     fn drain<'a>(&'a mut self) -> Box<dyn Iterator<Item = T> + 'a> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:603:34
[INFO] [stdout]     |
[INFO] [stdout] 603 |     fn iter<'a>(&'a self) -> Box<Iterator<Item = &'a T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 603 |     fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = &'a T> + 'a> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:607:42
[INFO] [stdout]     |
[INFO] [stdout] 607 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 607 |     fn iter_mut<'a>(&'a mut self) -> Box<dyn Iterator<Item = &'a mut T> + 'a> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:671:45
[INFO] [stdout]     |
[INFO] [stdout] 671 |     fn extend_object(&mut self, items: &mut Iterator<Item = 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 671 |     fn extend_object(&mut self, items: &mut dyn Iterator<Item = T>) {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:679:39
[INFO] [stdout]     |
[INFO] [stdout] 679 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 679 |     fn drain<'a>(&'a mut self) -> Box<dyn Iterator<Item = T> + 'a> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:701:34
[INFO] [stdout]     |
[INFO] [stdout] 701 |     fn iter<'a>(&'a self) -> Box<Iterator<Item = &'a T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 701 |     fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = &'a T> + 'a> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:705:42
[INFO] [stdout]     |
[INFO] [stdout] 705 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 705 |     fn iter_mut<'a>(&'a mut self) -> Box<dyn Iterator<Item = &'a mut T> + 'a> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:711:66
[INFO] [stdout]     |
[INFO] [stdout] 711 |     fn drain_range<'a>(&'a mut self, range: Range<usize>) -> Box<Iterator<Item = T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 711 |     fn drain_range<'a>(&'a mut self, range: Range<usize>) -> Box<dyn Iterator<Item = T> + 'a> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:794:45
[INFO] [stdout]     |
[INFO] [stdout] 794 |     fn extend_object(&mut self, items: &mut Iterator<Item = 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 794 |     fn extend_object(&mut self, items: &mut dyn Iterator<Item = T>) {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:798:39
[INFO] [stdout]     |
[INFO] [stdout] 798 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 798 |     fn drain<'a>(&'a mut self) -> Box<dyn Iterator<Item = T> + 'a> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:820:34
[INFO] [stdout]     |
[INFO] [stdout] 820 |     fn iter<'a>(&'a self) -> Box<Iterator<Item = &'a T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 820 |     fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = &'a T> + 'a> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:824:42
[INFO] [stdout]     |
[INFO] [stdout] 824 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 824 |     fn iter_mut<'a>(&'a mut self) -> Box<dyn Iterator<Item = &'a mut T> + 'a> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/impls.rs:830:66
[INFO] [stdout]     |
[INFO] [stdout] 830 |     fn drain_range<'a>(&'a mut self, range: Range<usize>) -> Box<Iterator<Item = T> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 830 |     fn drain_range<'a>(&'a mut self, range: Range<usize>) -> Box<dyn Iterator<Item = T> + 'a> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:360:70
[INFO] [stdout]     |
[INFO] [stdout] 360 |     fn drain_range<'a>(&'a mut self, range: RangeFrom<usize>) -> Box<Iterator<Item = L::Item> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 360 |     fn drain_range<'a>(&'a mut self, range: RangeFrom<usize>) -> Box<dyn Iterator<Item = L::Item> + 'a>
[INFO] [stdout]     |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:369:68
[INFO] [stdout]     |
[INFO] [stdout] 369 |     fn drain_range<'a>(&'a mut self, range: RangeTo<usize>) -> Box<Iterator<Item = L::Item> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 369 |     fn drain_range<'a>(&'a mut self, range: RangeTo<usize>) -> Box<dyn Iterator<Item = L::Item> + 'a>
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:377:64
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn drain_range<'a>(&'a mut self, _range: RangeFull) -> Box<Iterator<Item = L::Item> + '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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn drain_range<'a>(&'a mut self, _range: RangeFull) -> Box<dyn Iterator<Item = L::Item> + 'a>
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:720:13
[INFO] [stdout]     |
[INFO] [stdout] 720 |     let _: &Mutate;
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 720 |     let _: &dyn Mutate;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:721:13
[INFO] [stdout]     |
[INFO] [stdout] 721 |     let _: &AddRemove;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 721 |     let _: &dyn AddRemove;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:723:13
[INFO] [stdout]     |
[INFO] [stdout] 723 |     let _: &Collection<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 723 |     let _: &dyn Collection<Item = String>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Collection` is not dyn compatible
[INFO] [stdout]    --> src/lib.rs:723:13
[INFO] [stdout]     |
[INFO] [stdout] 723 |     let _: &Collection<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^ `Collection` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/lib.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub trait Collection {
[INFO] [stdout]     |           ---------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `extend_object` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn clear(&mut self) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^ ...because method `clear` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^ ...because method `drain` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn reserve(&mut self, additional: usize) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^ ...because method `reserve` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn shrink_to_fit(&mut self) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `shrink_to_fit` references the `Self` type in its `where` clause
[INFO] [stdout]     = help: consider moving `extend_object` to another trait
[INFO] [stdout]     = help: consider moving `drain` to another trait
[INFO] [stdout]     = help: consider moving `clear` to another trait
[INFO] [stdout]     = help: consider moving `reserve` to another trait
[INFO] [stdout]     = help: consider moving `shrink_to_fit` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:725:13
[INFO] [stdout]     |
[INFO] [stdout] 725 |     let _: &List<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 725 |     let _: &dyn List<Item = String>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `List` is not dyn compatible
[INFO] [stdout]    --> src/lib.rs:725:13
[INFO] [stdout]     |
[INFO] [stdout] 725 |     let _: &List<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ `List` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/lib.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `extend_object` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn clear(&mut self) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^ ...because method `clear` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^ ...because method `drain` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn reserve(&mut self, additional: usize) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^ ...because method `reserve` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn shrink_to_fit(&mut self) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `shrink_to_fit` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut Self::Item> + 'a>
[INFO] [stdout]     |        ^^^^^^^^ ...because method `iter_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 223 |     fn drain_range<'a>(&'a mut self, range: R) -> Box<Iterator<Item = Self::Item> + 'a>
[INFO] [stdout]     |        ^^^^^^^^^^^ ...because method `drain_range` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 231 | pub trait List:
[INFO] [stdout]     |           ---- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn get_mut(&mut self, index: usize) -> Option<&mut Self::Item> where Self: Mutate;
[INFO] [stdout]     |        ^^^^^^^ ...because method `get_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 254 |     fn swap(&mut self, i: usize, j: usize) where Self: Mutate;
[INFO] [stdout]     |        ^^^^ ...because method `swap` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 257 |     fn reverse(&mut self) where Self: Mutate {
[INFO] [stdout]     |        ^^^^^^^ ...because method `reverse` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 275 |     fn first_mut(&mut self) -> Option<&mut Self::Item> where Self: Mutate {
[INFO] [stdout]     |        ^^^^^^^^^ ...because method `first_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 289 |     fn last_mut(&mut self) -> Option<&mut Self::Item> where Self: Mutate {
[INFO] [stdout]     |        ^^^^^^^^ ...because method `last_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn push(&mut self, item: Self::Item) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^ ...because method `push` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 307 |     fn insert(&mut self, index: usize, item: Self::Item) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^ ...because method `insert` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 312 |     fn pop(&mut self) -> Option<Self::Item> where Self: AddRemove {
[INFO] [stdout]     |        ^^^ ...because method `pop` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 322 |     fn remove(&mut self, index: usize) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^ ...because method `remove` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 328 |     fn swap_remove(&mut self, index: usize) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^ ...because method `swap_remove` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 334 |     fn truncate(&mut self, len: usize) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^^^^ ...because method `truncate` references the `Self` type in its `where` clause
[INFO] [stdout]     = help: consider moving `iter_mut` to another trait
[INFO] [stdout]     = help: consider moving `extend_object` to another trait
[INFO] [stdout]     = help: consider moving `drain` to another trait
[INFO] [stdout]     = help: consider moving `clear` to another trait
[INFO] [stdout]     = help: consider moving `reserve` to another trait
[INFO] [stdout]     = help: consider moving `shrink_to_fit` to another trait
[INFO] [stdout]     = help: consider moving `drain_range` to another trait
[INFO] [stdout]     = help: consider moving `get_mut` to another trait
[INFO] [stdout]     = help: consider moving `swap` to another trait
[INFO] [stdout]     = help: consider moving `reverse` to another trait
[INFO] [stdout]     = help: consider moving `first_mut` to another trait
[INFO] [stdout]     = help: consider moving `last_mut` to another trait
[INFO] [stdout]     = help: consider moving `push` to another trait
[INFO] [stdout]     = help: consider moving `insert` to another trait
[INFO] [stdout]     = help: consider moving `pop` to another trait
[INFO] [stdout]     = help: consider moving `remove` to another trait
[INFO] [stdout]     = help: consider moving `swap_remove` to another trait
[INFO] [stdout]     = help: consider moving `truncate` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:727:13
[INFO] [stdout]     |
[INFO] [stdout] 727 |     let _: &Map<str, Item = (String, i32), Key = String, Value = 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 727 |     let _: &dyn Map<str, Item = (String, i32), Key = String, Value = i32>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `map::Map` is not dyn compatible
[INFO] [stdout]    --> src/lib.rs:727:13
[INFO] [stdout]     |
[INFO] [stdout] 727 |     let _: &Map<str, Item = (String, i32), Key = String, Value = i32>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `map::Map` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/lib.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `extend_object` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn clear(&mut self) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^ ...because method `clear` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^ ...because method `drain` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn reserve(&mut self, additional: usize) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^ ...because method `reserve` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn shrink_to_fit(&mut self) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `shrink_to_fit` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 415 |         fn iter_mut<'a>(&'a mut self)
[INFO] [stdout]     |            ^^^^^^^^ ...because method `iter_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 424 |         fn insert(&mut self, key: Self::Key, value: Self::Value) -> Option<Self::Value>
[INFO] [stdout]     |            ^^^^^^ ...because method `insert` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 428 |         fn entry<'a>(&'a mut self, key: Self::Key) -> Entry<'a, Self::Key, Self::Value>
[INFO] [stdout]     |            ^^^^^ ...because method `entry` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 439 |     pub trait Map<Q: ?Sized = <Self as Base>::Key>: Base {
[INFO] [stdout]     |               --- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 455 |         fn get_mut(&mut self, key: &Q) -> Option<&mut Self::Value> where Self: Mutate;
[INFO] [stdout]     |            ^^^^^^^ ...because method `get_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 460 |         fn remove(&mut self, key: &Q) -> Option<Self::Value> where Self: AddRemove;
[INFO] [stdout]     |            ^^^^^^ ...because method `remove` references the `Self` type in its `where` clause
[INFO] [stdout]     = help: consider moving `iter_mut` to another trait
[INFO] [stdout]     = help: consider moving `extend_object` to another trait
[INFO] [stdout]     = help: consider moving `drain` to another trait
[INFO] [stdout]     = help: consider moving `clear` to another trait
[INFO] [stdout]     = help: consider moving `reserve` to another trait
[INFO] [stdout]     = help: consider moving `shrink_to_fit` to another trait
[INFO] [stdout]     = help: consider moving `get_mut` to another trait
[INFO] [stdout]     = help: consider moving `insert` to another trait
[INFO] [stdout]     = help: consider moving `remove` to another trait
[INFO] [stdout]     = help: consider moving `entry` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:728:13
[INFO] [stdout]     |
[INFO] [stdout] 728 |     let _: &map::OccupiedEntry<Key = String, Value = i32, MutValue = &mut 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 728 |     let _: &dyn map::OccupiedEntry<Key = String, Value = i32, MutValue = &mut i32>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:729:13
[INFO] [stdout]     |
[INFO] [stdout] 729 |     let _: &map::VacantEntry<Key = String, Value = i32, MutValue = &mut 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 729 |     let _: &dyn map::VacantEntry<Key = String, Value = i32, MutValue = &mut i32>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:731:13
[INFO] [stdout]     |
[INFO] [stdout] 731 |     let _: &Set<str, Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 731 |     let _: &dyn Set<str, Item = String>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `set::Set` is not dyn compatible
[INFO] [stdout]    --> src/lib.rs:731:13
[INFO] [stdout]     |
[INFO] [stdout] 731 |     let _: &Set<str, Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^ `set::Set` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/lib.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `extend_object` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn clear(&mut self) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^ ...because method `clear` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^ ...because method `drain` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn reserve(&mut self, additional: usize) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^ ...because method `reserve` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn shrink_to_fit(&mut self) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `shrink_to_fit` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut Self::Item> + 'a>
[INFO] [stdout]     |        ^^^^^^^^ ...because method `iter_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 577 |         fn insert(&mut self, item: Self::Item) -> bool where Self: AddRemove;
[INFO] [stdout]     |            ^^^^^^ ...because method `insert` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 586 |         fn replace(&mut self, item: Self::Item) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |            ^^^^^^^ ...because method `replace` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 596 |     pub trait Set<Q: ?Sized = <Self as Collection>::Item>: Base {
[INFO] [stdout]     |               --- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 610 |         fn remove(&mut self, item: &Q) -> bool where Self: AddRemove {
[INFO] [stdout]     |            ^^^^^^ ...because method `remove` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 617 |         fn take(&mut self, item: &Q) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |            ^^^^ ...because method `take` references the `Self` type in its `where` clause
[INFO] [stdout]     = help: consider moving `iter_mut` to another trait
[INFO] [stdout]     = help: consider moving `extend_object` to another trait
[INFO] [stdout]     = help: consider moving `drain` to another trait
[INFO] [stdout]     = help: consider moving `clear` to another trait
[INFO] [stdout]     = help: consider moving `reserve` to another trait
[INFO] [stdout]     = help: consider moving `shrink_to_fit` to another trait
[INFO] [stdout]     = help: consider moving `insert` to another trait
[INFO] [stdout]     = help: consider moving `remove` to another trait
[INFO] [stdout]     = help: consider moving `replace` to another trait
[INFO] [stdout]     = help: consider moving `take` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:733:13
[INFO] [stdout]     |
[INFO] [stdout] 733 |     let _: &Queue<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 733 |     let _: &dyn Queue<Item = String>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Queue` is not dyn compatible
[INFO] [stdout]    --> src/lib.rs:733:13
[INFO] [stdout]     |
[INFO] [stdout] 733 |     let _: &Queue<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ `Queue` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/lib.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `extend_object` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn clear(&mut self) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^ ...because method `clear` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^ ...because method `drain` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn reserve(&mut self, additional: usize) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^ ...because method `reserve` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn shrink_to_fit(&mut self) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `shrink_to_fit` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut Self::Item> + 'a>
[INFO] [stdout]     |        ^^^^^^^^ ...because method `iter_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 622 | pub trait Queue: Collection + Iter {
[INFO] [stdout]     |           ----- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 627 |     fn push(&mut self, item: Self::Item) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^ ...because method `push` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 637 |     fn pop_front(&mut self) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^ ...because method `pop_front` references the `Self` type in its `where` clause
[INFO] [stdout]     = help: consider moving `iter_mut` to another trait
[INFO] [stdout]     = help: consider moving `extend_object` to another trait
[INFO] [stdout]     = help: consider moving `drain` to another trait
[INFO] [stdout]     = help: consider moving `clear` to another trait
[INFO] [stdout]     = help: consider moving `reserve` to another trait
[INFO] [stdout]     = help: consider moving `shrink_to_fit` to another trait
[INFO] [stdout]     = help: consider moving `push` to another trait
[INFO] [stdout]     = help: consider moving `pop_front` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:734:13
[INFO] [stdout]     |
[INFO] [stdout] 734 |     let _: &Deque<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 734 |     let _: &dyn Deque<Item = String>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `Deque` is not dyn compatible
[INFO] [stdout]    --> src/lib.rs:734:13
[INFO] [stdout]     |
[INFO] [stdout] 734 |     let _: &Deque<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ `Deque` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/lib.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `extend_object` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn clear(&mut self) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^ ...because method `clear` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^ ...because method `drain` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn reserve(&mut self, additional: usize) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^ ...because method `reserve` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn shrink_to_fit(&mut self) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `shrink_to_fit` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut Self::Item> + 'a>
[INFO] [stdout]     |        ^^^^^^^^ ...because method `iter_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 627 |     fn push(&mut self, item: Self::Item) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^ ...because method `push` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 637 |     fn pop_front(&mut self) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^ ...because method `pop_front` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 672 | pub trait Deque: Queue {
[INFO] [stdout]     |           ----- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 681 |     fn pop_back(&mut self) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^ ...because method `pop_back` references the `Self` type in its `where` clause
[INFO] [stdout]     = help: consider moving `iter_mut` to another trait
[INFO] [stdout]     = help: consider moving `extend_object` to another trait
[INFO] [stdout]     = help: consider moving `drain` to another trait
[INFO] [stdout]     = help: consider moving `clear` to another trait
[INFO] [stdout]     = help: consider moving `reserve` to another trait
[INFO] [stdout]     = help: consider moving `shrink_to_fit` to another trait
[INFO] [stdout]     = help: consider moving `push` to another trait
[INFO] [stdout]     = help: consider moving `pop_front` to another trait
[INFO] [stdout]     = help: consider moving `pop_back` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:736:13
[INFO] [stdout]     |
[INFO] [stdout] 736 |     let _: &FifoQueue<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 736 |     let _: &dyn FifoQueue<Item = String>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `FifoQueue` is not dyn compatible
[INFO] [stdout]    --> src/lib.rs:736:13
[INFO] [stdout]     |
[INFO] [stdout] 736 |     let _: &FifoQueue<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ `FifoQueue` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/lib.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `extend_object` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn clear(&mut self) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^ ...because method `clear` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^ ...because method `drain` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn reserve(&mut self, additional: usize) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^ ...because method `reserve` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn shrink_to_fit(&mut self) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `shrink_to_fit` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut Self::Item> + 'a>
[INFO] [stdout]     |        ^^^^^^^^ ...because method `iter_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 627 |     fn push(&mut self, item: Self::Item) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^ ...because method `push` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 637 |     fn pop_front(&mut self) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^ ...because method `pop_front` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 641 | pub trait FifoQueue: Queue {
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 645 |     fn front_mut(&mut self) -> Option<&mut Self::Item> where Self: Mutate;
[INFO] [stdout]     |        ^^^^^^^^^ ...because method `front_mut` references the `Self` type in its `where` clause
[INFO] [stdout]     = help: consider moving `iter_mut` to another trait
[INFO] [stdout]     = help: consider moving `extend_object` to another trait
[INFO] [stdout]     = help: consider moving `drain` to another trait
[INFO] [stdout]     = help: consider moving `clear` to another trait
[INFO] [stdout]     = help: consider moving `reserve` to another trait
[INFO] [stdout]     = help: consider moving `shrink_to_fit` to another trait
[INFO] [stdout]     = help: consider moving `push` to another trait
[INFO] [stdout]     = help: consider moving `pop_front` to another trait
[INFO] [stdout]     = help: consider moving `front_mut` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:737:13
[INFO] [stdout]     |
[INFO] [stdout] 737 |     let _: &FifoDeque<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 737 |     let _: &dyn FifoDeque<Item = String>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `FifoDeque` is not dyn compatible
[INFO] [stdout]    --> src/lib.rs:737:13
[INFO] [stdout]     |
[INFO] [stdout] 737 |     let _: &FifoDeque<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ `FifoDeque` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/lib.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `extend_object` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn clear(&mut self) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^ ...because method `clear` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^ ...because method `drain` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn reserve(&mut self, additional: usize) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^ ...because method `reserve` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn shrink_to_fit(&mut self) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `shrink_to_fit` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut Self::Item> + 'a>
[INFO] [stdout]     |        ^^^^^^^^ ...because method `iter_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 627 |     fn push(&mut self, item: Self::Item) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^ ...because method `push` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 637 |     fn pop_front(&mut self) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^ ...because method `pop_front` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 645 |     fn front_mut(&mut self) -> Option<&mut Self::Item> where Self: Mutate;
[INFO] [stdout]     |        ^^^^^^^^^ ...because method `front_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 681 |     fn pop_back(&mut self) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^ ...because method `pop_back` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 685 | pub trait FifoDeque: FifoQueue + Deque {
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] 686 |     /// Pushes the given item onto the front of the deque.
[INFO] [stdout] 687 |     fn push_front(&mut self, item: Self::Item) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^ ...because method `push_front` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 692 |     fn back_mut(&mut self) -> Option<&mut Self::Item> where Self: Mutate;
[INFO] [stdout]     |        ^^^^^^^^ ...because method `back_mut` references the `Self` type in its `where` clause
[INFO] [stdout]     = help: consider moving `iter_mut` to another trait
[INFO] [stdout]     = help: consider moving `extend_object` to another trait
[INFO] [stdout]     = help: consider moving `drain` to another trait
[INFO] [stdout]     = help: consider moving `clear` to another trait
[INFO] [stdout]     = help: consider moving `reserve` to another trait
[INFO] [stdout]     = help: consider moving `shrink_to_fit` to another trait
[INFO] [stdout]     = help: consider moving `push` to another trait
[INFO] [stdout]     = help: consider moving `pop_front` to another trait
[INFO] [stdout]     = help: consider moving `front_mut` to another trait
[INFO] [stdout]     = help: consider moving `pop_back` to another trait
[INFO] [stdout]     = help: consider moving `push_front` to another trait
[INFO] [stdout]     = help: consider moving `back_mut` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:739:13
[INFO] [stdout]     |
[INFO] [stdout] 739 |     let _: &PrioQueue<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 739 |     let _: &dyn PrioQueue<Item = String>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `PrioQueue` is not dyn compatible
[INFO] [stdout]    --> src/lib.rs:739:13
[INFO] [stdout]     |
[INFO] [stdout] 739 |     let _: &PrioQueue<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ `PrioQueue` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/lib.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `extend_object` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn clear(&mut self) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^ ...because method `clear` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^ ...because method `drain` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn reserve(&mut self, additional: usize) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^ ...because method `reserve` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn shrink_to_fit(&mut self) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `shrink_to_fit` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut Self::Item> + 'a>
[INFO] [stdout]     |        ^^^^^^^^ ...because method `iter_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 627 |     fn push(&mut self, item: Self::Item) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^ ...because method `push` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 637 |     fn pop_front(&mut self) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^ ...because method `pop_front` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 649 | pub trait PrioQueue: Queue {
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 654 |     fn push_pop_front(&mut self, item: Self::Item) -> Self::Item where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ ...because method `push_pop_front` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 664 |     fn replace_front(&mut self, item: Self::Item) -> Option<Self::Item> where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `replace_front` references the `Self` type in its `where` clause
[INFO] [stdout]     = help: consider moving `iter_mut` to another trait
[INFO] [stdout]     = help: consider moving `extend_object` to another trait
[INFO] [stdout]     = help: consider moving `drain` to another trait
[INFO] [stdout]     = help: consider moving `clear` to another trait
[INFO] [stdout]     = help: consider moving `reserve` to another trait
[INFO] [stdout]     = help: consider moving `shrink_to_fit` to another trait
[INFO] [stdout]     = help: consider moving `push` to another trait
[INFO] [stdout]     = help: consider moving `pop_front` to another trait
[INFO] [stdout]     = help: consider moving `push_pop_front` to another trait
[INFO] [stdout]     = help: consider moving `replace_front` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:740:13
[INFO] [stdout]     |
[INFO] [stdout] 740 |     let _: &PrioDeque<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 740 |     let _: &dyn PrioDeque<Item = String>;
[INFO] [stdout]     |             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `PrioDeque` is not dyn compatible
[INFO] [stdout]    --> src/lib.rs:740:13
[INFO] [stdout]     |
[INFO] [stdout] 740 |     let _: &PrioDeque<Item = String>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ `PrioDeque` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/lib.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn extend_object(&mut self, items: &mut Iterator<Item = Self::Item>) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `extend_object` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn clear(&mut self) where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^ ...because method `clear` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn drain<'a>(&'a mut self) -> Box<Iterator<Item = Self::Item> + 'a> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^ ...because method `drain` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn reserve(&mut self, additional: usize) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^ ...because method `reserve` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn shrink_to_fit(&mut self) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `shrink_to_fit` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn iter_mut<'a>(&'a mut self) -> Box<Iterator<Item = &'a mut Self::Item> + 'a>
[INFO] [stdout]     |        ^^^^^^^^ ...because method `iter_mut` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 627 |     fn push(&mut self, item: Self::Item) where Self: AddRemove;
[INFO] [stdout]     |        ^^^^ ...because method `push` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 637 |     fn pop_front(&mut self) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^^ ...because method `pop_front` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 654 |     fn push_pop_front(&mut self, item: Self::Item) -> Self::Item where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ ...because method `push_pop_front` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 664 |     fn replace_front(&mut self, item: Self::Item) -> Option<Self::Item> where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `replace_front` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 681 |     fn pop_back(&mut self) -> Option<Self::Item> where Self: AddRemove;
[INFO] [stdout]     |        ^^^^^^^^ ...because method `pop_back` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 696 | pub trait PrioDeque: PrioQueue + Deque {
[INFO] [stdout]     |           --------- this trait is not dyn compatible...
[INFO] [stdout] ...
[INFO] [stdout] 701 |     fn push_pop_back(&mut self, item: Self::Item) -> Self::Item where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ ...because method `push_pop_back` references the `Self` type in its `where` clause
[INFO] [stdout] ...
[INFO] [stdout] 711 |     fn replace_back(&mut self, item: Self::Item) -> Option<Self::Item> where Self: AddRemove {
[INFO] [stdout]     |        ^^^^^^^^^^^^ ...because method `replace_back` references the `Self` type in its `where` clause
[INFO] [stdout]     = help: consider moving `iter_mut` to another trait
[INFO] [stdout]     = help: consider moving `extend_object` to another trait
[INFO] [stdout]     = help: consider moving `drain` to another trait
[INFO] [stdout]     = help: consider moving `clear` to another trait
[INFO] [stdout]     = help: consider moving `reserve` to another trait
[INFO] [stdout]     = help: consider moving `shrink_to_fit` to another trait
[INFO] [stdout]     = help: consider moving `push` to another trait
[INFO] [stdout]     = help: consider moving `pop_front` to another trait
[INFO] [stdout]     = help: consider moving `push_pop_front` to another trait
[INFO] [stdout]     = help: consider moving `replace_front` to another trait
[INFO] [stdout]     = help: consider moving `pop_back` to another trait
[INFO] [stdout]     = help: consider moving `push_pop_back` to another trait
[INFO] [stdout]     = help: consider moving `replace_back` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0038`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `eclectic` (lib) due to 10 previous errors; 65 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "b711d6327e0bcdabfe9c7134a372c3301b0b83e913969fd8d5985834d225a647", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b711d6327e0bcdabfe9c7134a372c3301b0b83e913969fd8d5985834d225a647", kill_on_drop: false }`
[INFO] [stdout] b711d6327e0bcdabfe9c7134a372c3301b0b83e913969fd8d5985834d225a647
