[INFO] fetching crate eclectic 0.11.0... [INFO] checking eclectic-0.11.0 against master#f609b7e0586f81fefb3523e3e17adf779ac416be for pr-129466-2 [INFO] extracting crate eclectic 0.11.0 into /workspace/builds/worker-3-tc1/source [INFO] validating manifest of crates.io crate eclectic 0.11.0 on toolchain f609b7e0586f81fefb3523e3e17adf779ac416be [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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-3-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "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" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1c1f97d3087b6c2178d9ab51d814552f82f1666231cbbe67914cad459a27cc97 [INFO] running `Command { std: "docker" "start" "-a" "1c1f97d3087b6c2178d9ab51d814552f82f1666231cbbe67914cad459a27cc97", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1c1f97d3087b6c2178d9ab51d814552f82f1666231cbbe67914cad459a27cc97", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1c1f97d3087b6c2178d9ab51d814552f82f1666231cbbe67914cad459a27cc97", kill_on_drop: false }` [INFO] [stdout] 1c1f97d3087b6c2178d9ab51d814552f82f1666231cbbe67914cad459a27cc97 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+f609b7e0586f81fefb3523e3e17adf779ac416be" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3237947425b4dccec67fcfc4b10677f30aabee4d03f34a8b14d885b7579a4b4c [INFO] running `Command { std: "docker" "start" "-a" "3237947425b4dccec67fcfc4b10677f30aabee4d03f34a8b14d885b7579a4b4c", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] [stderr] Checking eclectic v0.11.0 (/opt/rustwide/workdir) [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) 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 [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut dyn Iterator) 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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 165 | fn drain<'a>(&'a mut self) -> Box + '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:202:34 [INFO] [stdout] | [INFO] [stdout] 202 | fn iter<'a>(&'a self) -> Box + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 202 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 207 | fn iter_mut<'a>(&'a mut self) -> Box + 'a> [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 223 | fn drain_range<'a>(&'a mut self, range: R) -> Box + '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) -> Box + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 360 | fn drain_range<'a>(&'a mut self, range: RangeFrom) -> Box + '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) -> Box + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 369 | fn drain_range<'a>(&'a mut self, range: RangeTo) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 377 | fn drain_range<'a>(&'a mut self, _range: RangeFull) -> Box + 'a> [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [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) 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | fn extend_object(&mut self, _items: &mut dyn Iterator) 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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 39 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 43 | fn iter_mut<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 50 | -> Box + '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:105:45 [INFO] [stdout] | [INFO] [stdout] 105 | fn extend_object(&mut self, items: &mut Iterator) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 105 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 113 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 134 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 409 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 | fn iter_mut<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 416 | -> Box + '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:148:45 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut dyn Iterator) 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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 165 | fn drain<'a>(&'a mut self) -> Box + '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:466:22 [INFO] [stdout] | [INFO] [stdout] 466 | Occupied(Box + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 466 | Occupied(Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 202 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 207 | fn iter_mut<'a>(&'a mut self) -> Box + 'a> [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 223 | fn drain_range<'a>(&'a mut self, range: R) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 468 | Vacant(Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 203 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 211 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 229 | fn iter<'a>(&'a self) -> Box + '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) -> Box + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 360 | fn drain_range<'a>(&'a mut self, range: RangeFrom) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 233 | fn iter_mut<'a>(&'a mut self) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 291 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 299 | fn drain<'a>(&'a mut self) -> Box + '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) -> Box + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 369 | fn drain_range<'a>(&'a mut self, range: RangeTo) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 321 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 325 | fn iter_mut<'a>(&'a mut self) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 381 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 377 | fn drain_range<'a>(&'a mut self, _range: RangeFull) -> Box + 'a> [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 389 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 414 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 418 | fn iter_mut<'a>(&'a mut self) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 483 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 491 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 513 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 517 | fn iter_mut<'a>(&'a mut self) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 577 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 585 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 603 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 607 | fn iter_mut<'a>(&'a mut self) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 671 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 679 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 701 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 705 | fn iter_mut<'a>(&'a mut self) -> Box + '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) -> Box + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 711 | fn drain_range<'a>(&'a mut self, range: Range) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 794 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 798 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 820 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 824 | fn iter_mut<'a>(&'a mut self) -> Box + '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) -> Box + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 830 | fn drain_range<'a>(&'a mut self, range: Range) -> Box + 'a> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [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) 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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 | fn extend_object(&mut self, _items: &mut dyn Iterator) 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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 39 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 43 | fn iter_mut<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 50 | -> Box + '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:105:45 [INFO] [stdout] | [INFO] [stdout] 105 | fn extend_object(&mut self, items: &mut Iterator) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 105 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 113 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 134 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 409 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 | fn iter_mut<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 416 | -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 466 | Occupied(Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 468 | Vacant(Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 203 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 211 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 229 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 233 | fn iter_mut<'a>(&'a mut self) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 291 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 299 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 321 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 325 | fn iter_mut<'a>(&'a mut self) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 381 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 389 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 414 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 418 | fn iter_mut<'a>(&'a mut self) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 483 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 491 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 513 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 517 | fn iter_mut<'a>(&'a mut self) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 577 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 585 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 603 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 607 | fn iter_mut<'a>(&'a mut self) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 671 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 679 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 701 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 705 | fn iter_mut<'a>(&'a mut self) -> Box + '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) -> Box + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 711 | fn drain_range<'a>(&'a mut self, range: Range) -> Box + '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) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 794 | fn extend_object(&mut self, items: &mut dyn Iterator) { [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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 798 | fn drain<'a>(&'a mut self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 820 | fn iter<'a>(&'a self) -> Box + '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 + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 824 | fn iter_mut<'a>(&'a mut self) -> Box + '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) -> Box + '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 [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 830 | fn drain_range<'a>(&'a mut self, range: Range) -> Box + '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 [INFO] [stdout] help: if this is an object-safe 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 [INFO] [stdout] help: if this is an object-safe 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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 723 | let _: &dyn Collection; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 725 | let _: &dyn List; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 727 | let _: &dyn Map; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 728 | let _: &dyn map::OccupiedEntry; [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 729 | let _: &dyn map::VacantEntry; [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 731 | let _: &dyn Set; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 733 | let _: &dyn Queue; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 734 | let _: &dyn Deque; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 736 | let _: &dyn FifoQueue; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 737 | let _: &dyn FifoDeque; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 739 | let _: &dyn PrioQueue; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 740 | let _: &dyn PrioDeque; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Collection` cannot be made into an object [INFO] [stdout] --> src/lib.rs:723:12 [INFO] [stdout] | [INFO] [stdout] 723 | let _: &Collection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `Collection` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 111 | pub trait Collection { [INFO] [stdout] | ---------- this trait cannot be made into an object... [INFO] [stdout] ... [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `Collection` for this new enum and using it instead: [INFO] [stdout] [T] [INFO] [stdout] std::collections::BTreeMap [INFO] [stdout] std::collections::BTreeSet [INFO] [stdout] std::collections::BinaryHeap [INFO] [stdout] std::collections::HashMap [INFO] [stdout] std::collections::HashSet [INFO] [stdout] std::collections::LinkedList [INFO] [stdout] std::vec::Vec [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `Collection` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `List` cannot be made into an object [INFO] [stdout] --> src/lib.rs:725:12 [INFO] [stdout] | [INFO] [stdout] 725 | let _: &List; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ `List` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 + '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 cannot be made into an object... [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 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 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 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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `List` for this new enum and using it instead: [INFO] [stdout] [T] [INFO] [stdout] std::vec::Vec [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `List` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `map::Map` cannot be made into an object [INFO] [stdout] --> src/lib.rs:727:12 [INFO] [stdout] | [INFO] [stdout] 727 | let _: &Map; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `map::Map` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 [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::Key>: Base { [INFO] [stdout] | --- this trait cannot be made into an object... [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 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: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 [INFO] [stdout] help: if this is an object-safe 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 [INFO] [stdout] help: if this is an object-safe 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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 723 | let _: &dyn Collection; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 725 | let _: &dyn List; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `set::Set` cannot be made into an object [INFO] [stdout] --> src/lib.rs:731:12 [INFO] [stdout] | [INFO] [stdout] 731 | let _: &Set; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ `set::Set` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 where Self: AddRemove; [INFO] [stdout] | ^^^^^^^ ...because method `replace` references the `Self` type in its `where` clause [INFO] [stdout] ... [INFO] [stdout] 596 | pub trait Set::Item>: Base { [INFO] [stdout] | --- this trait cannot be made into an object... [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 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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `set::Set` for this new enum and using it instead: [INFO] [stdout] std::collections::BTreeSet [INFO] [stdout] std::collections::HashSet [INFO] [stdout] = note: `set::Set` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 727 | let _: &dyn Map; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 728 | let _: &dyn map::OccupiedEntry; [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 729 | let _: &dyn map::VacantEntry; [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 731 | let _: &dyn Set; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 733 | let _: &dyn Queue; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Queue` cannot be made into an object [INFO] [stdout] --> src/lib.rs:733:12 [INFO] [stdout] | [INFO] [stdout] 733 | let _: &Queue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ `Queue` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 cannot be made into an object... [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 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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `Queue` for this new enum and using it instead: [INFO] [stdout] std::collections::BinaryHeap [INFO] [stdout] std::collections::LinkedList [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `Queue` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 734 | let _: &dyn Deque; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 736 | let _: &dyn FifoQueue; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 737 | let _: &dyn FifoDeque; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 739 | let _: &dyn PrioQueue; [INFO] [stdout] | +++ [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; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 740 | let _: &dyn PrioDeque; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Deque` cannot be made into an object [INFO] [stdout] --> src/lib.rs:734:12 [INFO] [stdout] | [INFO] [stdout] 734 | let _: &Deque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ `Deque` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 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 cannot be made into an object... [INFO] [stdout] ... [INFO] [stdout] 681 | fn pop_back(&mut self) -> Option 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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `Deque` for this new enum and using it instead: [INFO] [stdout] std::collections::LinkedList [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `Deque` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `FifoQueue` cannot be made into an object [INFO] [stdout] --> src/lib.rs:736:12 [INFO] [stdout] | [INFO] [stdout] 736 | let _: &FifoQueue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ `FifoQueue` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 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 cannot be made into an object... [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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `FifoQueue` for this new enum and using it instead: [INFO] [stdout] std::collections::LinkedList [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `FifoQueue` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `FifoDeque` cannot be made into an object [INFO] [stdout] --> src/lib.rs:737:12 [INFO] [stdout] | [INFO] [stdout] 737 | let _: &FifoDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ `FifoDeque` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 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 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 cannot be made into an object... [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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `FifoDeque` for this new enum and using it instead: [INFO] [stdout] std::collections::LinkedList [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `FifoDeque` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `PrioQueue` cannot be made into an object [INFO] [stdout] --> src/lib.rs:739:12 [INFO] [stdout] | [INFO] [stdout] 739 | let _: &PrioQueue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ `PrioQueue` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 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 cannot be made into an object... [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 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] = help: only type `std::collections::BinaryHeap` is seen to implement the trait in this crate, consider using it directly instead [INFO] [stdout] = note: `PrioQueue` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `PrioDeque` cannot be made into an object [INFO] [stdout] --> src/lib.rs:740:12 [INFO] [stdout] | [INFO] [stdout] 740 | let _: &PrioDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ `PrioDeque` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 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 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 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 cannot be made into an object... [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 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] error[E0038]: the trait `Collection` cannot be made into an object [INFO] [stdout] --> src/lib.rs:723:12 [INFO] [stdout] | [INFO] [stdout] 723 | let _: &Collection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `Collection` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 111 | pub trait Collection { [INFO] [stdout] | ---------- this trait cannot be made into an object... [INFO] [stdout] ... [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `Collection` for this new enum and using it instead: [INFO] [stdout] [T] [INFO] [stdout] std::collections::BTreeMap [INFO] [stdout] std::collections::BTreeSet [INFO] [stdout] std::collections::BinaryHeap [INFO] [stdout] std::collections::HashMap [INFO] [stdout] std::collections::HashSet [INFO] [stdout] std::collections::LinkedList [INFO] [stdout] std::vec::Vec [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `Collection` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `List` cannot be made into an object [INFO] [stdout] --> src/lib.rs:725:12 [INFO] [stdout] | [INFO] [stdout] 725 | let _: &List; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ `List` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 + '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 cannot be made into an object... [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 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 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 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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `List` for this new enum and using it instead: [INFO] [stdout] [T] [INFO] [stdout] std::vec::Vec [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `List` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `map::Map` cannot be made into an object [INFO] [stdout] --> src/lib.rs:727:12 [INFO] [stdout] | [INFO] [stdout] 727 | let _: &Map; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `map::Map` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 [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::Key>: Base { [INFO] [stdout] | --- this trait cannot be made into an object... [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 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] error[E0038]: the trait `set::Set` cannot be made into an object [INFO] [stdout] --> src/lib.rs:731:12 [INFO] [stdout] | [INFO] [stdout] 731 | let _: &Set; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ `set::Set` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 where Self: AddRemove; [INFO] [stdout] | ^^^^^^^ ...because method `replace` references the `Self` type in its `where` clause [INFO] [stdout] ... [INFO] [stdout] 596 | pub trait Set::Item>: Base { [INFO] [stdout] | --- this trait cannot be made into an object... [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 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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `set::Set` for this new enum and using it instead: [INFO] [stdout] std::collections::BTreeSet [INFO] [stdout] std::collections::HashSet [INFO] [stdout] = note: `set::Set` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Queue` cannot be made into an object [INFO] [stdout] --> src/lib.rs:733:12 [INFO] [stdout] | [INFO] [stdout] 733 | let _: &Queue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ `Queue` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 cannot be made into an object... [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 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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `Queue` for this new enum and using it instead: [INFO] [stdout] std::collections::BinaryHeap [INFO] [stdout] std::collections::LinkedList [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `Queue` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `Deque` cannot be made into an object [INFO] [stdout] --> src/lib.rs:734:12 [INFO] [stdout] | [INFO] [stdout] 734 | let _: &Deque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ `Deque` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 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 cannot be made into an object... [INFO] [stdout] ... [INFO] [stdout] 681 | fn pop_back(&mut self) -> Option 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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `Deque` for this new enum and using it instead: [INFO] [stdout] std::collections::LinkedList [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `Deque` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `FifoQueue` cannot be made into an object [INFO] [stdout] --> src/lib.rs:736:12 [INFO] [stdout] | [INFO] [stdout] 736 | let _: &FifoQueue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ `FifoQueue` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 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 cannot be made into an object... [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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `FifoQueue` for this new enum and using it instead: [INFO] [stdout] std::collections::LinkedList [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `FifoQueue` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `FifoDeque` cannot be made into an object [INFO] [stdout] --> src/lib.rs:737:12 [INFO] [stdout] | [INFO] [stdout] 737 | let _: &FifoDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ `FifoDeque` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 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 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 cannot be made into an object... [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] = help: the following types implement the trait, consider defining an enum where each variant holds one of these types, implementing `FifoDeque` for this new enum and using it instead: [INFO] [stdout] std::collections::LinkedList [INFO] [stdout] std::collections::VecDeque [INFO] [stdout] = note: `FifoDeque` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `PrioQueue` cannot be made into an object [INFO] [stdout] --> src/lib.rs:739:12 [INFO] [stdout] | [INFO] [stdout] 739 | let _: &PrioQueue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ `PrioQueue` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 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 cannot be made into an object... [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 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] = help: only type `std::collections::BinaryHeap` is seen to implement the trait in this crate, consider using it directly instead [INFO] [stdout] = note: `PrioQueue` can be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0038]: the trait `PrioDeque` cannot be made into an object [INFO] [stdout] --> src/lib.rs:740:12 [INFO] [stdout] | [INFO] [stdout] 740 | let _: &PrioDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ `PrioDeque` cannot be made into an object [INFO] [stdout] | [INFO] [stdout] note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit [INFO] [stdout] --> src/lib.rs:148:8 [INFO] [stdout] | [INFO] [stdout] 148 | fn extend_object(&mut self, items: &mut Iterator) 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 + '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 + '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 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 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 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 cannot be made into an object... [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 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] error: aborting due to 10 previous errors; 65 warnings emitted [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 11 previous errors; 65 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 10 previous errors; 65 warnings emitted [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 test) due to 11 previous errors; 65 warnings emitted [INFO] running `Command { std: "docker" "inspect" "3237947425b4dccec67fcfc4b10677f30aabee4d03f34a8b14d885b7579a4b4c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3237947425b4dccec67fcfc4b10677f30aabee4d03f34a8b14d885b7579a4b4c", kill_on_drop: false }` [INFO] [stdout] 3237947425b4dccec67fcfc4b10677f30aabee4d03f34a8b14d885b7579a4b4c