[INFO] fetching crate fat_type 0.3.0... [INFO] checking fat_type-0.3.0 against try#998b6603a58e47f42ccce7a67943234e96b6839e for pr-143170 [INFO] extracting crate fat_type 0.3.0 into /workspace/builds/worker-6-tc2/source [INFO] started tweaking crates.io crate fat_type 0.3.0 [INFO] finished tweaking crates.io crate fat_type 0.3.0 [INFO] tweaked toml for crates.io crate fat_type 0.3.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate fat_type 0.3.0 on toolchain 998b6603a58e47f42ccce7a67943234e96b6839e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+998b6603a58e47f42ccce7a67943234e96b6839e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+998b6603a58e47f42ccce7a67943234e96b6839e" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+998b6603a58e47f42ccce7a67943234e96b6839e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+998b6603a58e47f42ccce7a67943234e96b6839e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 98eed9722ad107c370220ef34a5be3ef9828e3fdbfc0ea370ef730e8b921b4a2 [INFO] running `Command { std: "docker" "start" "-a" "98eed9722ad107c370220ef34a5be3ef9828e3fdbfc0ea370ef730e8b921b4a2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "98eed9722ad107c370220ef34a5be3ef9828e3fdbfc0ea370ef730e8b921b4a2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "98eed9722ad107c370220ef34a5be3ef9828e3fdbfc0ea370ef730e8b921b4a2", kill_on_drop: false }` [INFO] [stdout] 98eed9722ad107c370220ef34a5be3ef9828e3fdbfc0ea370ef730e8b921b4a2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+998b6603a58e47f42ccce7a67943234e96b6839e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 81b73e3e77e425b94887239ffbf9ce3b7ac840cfc4795ca2574e1d4a6aefe492 [INFO] running `Command { std: "docker" "start" "-a" "81b73e3e77e425b94887239ffbf9ce3b7ac840cfc4795ca2574e1d4a6aefe492", kill_on_drop: false }` [INFO] [stderr] Checking fat_type v0.3.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:238:17 [INFO] [stdout] | [INFO] [stdout] 238 | impl Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:399:28 [INFO] [stdout] | [INFO] [stdout] 399 | impl AsRef> for Fat { [INFO] [stdout] | ^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:400:5 [INFO] [stdout] | [INFO] [stdout] 400 | fn as_ref(&self) -> &Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:405:28 [INFO] [stdout] | [INFO] [stdout] 405 | impl AsMut> for Fat { [INFO] [stdout] | ^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | fn as_mut(&mut self) -> &mut Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:423:20 [INFO] [stdout] | [INFO] [stdout] 423 | impl Borrow> for Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:424:5 [INFO] [stdout] | [INFO] [stdout] 424 | fn borrow(&self) -> &Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:441:20 [INFO] [stdout] | [INFO] [stdout] 441 | impl BorrowMut> for Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:442:5 [INFO] [stdout] | [INFO] [stdout] 442 | fn borrow_mut(&mut self) -> &mut Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:238:17 [INFO] [stdout] | [INFO] [stdout] 238 | impl Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:399:28 [INFO] [stdout] | [INFO] [stdout] 399 | impl AsRef> for Fat { [INFO] [stdout] | ^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:400:5 [INFO] [stdout] | [INFO] [stdout] 400 | fn as_ref(&self) -> &Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:405:28 [INFO] [stdout] | [INFO] [stdout] 405 | impl AsMut> for Fat { [INFO] [stdout] | ^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | fn as_mut(&mut self) -> &mut Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:423:20 [INFO] [stdout] | [INFO] [stdout] 423 | impl Borrow> for Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:424:5 [INFO] [stdout] | [INFO] [stdout] 424 | fn borrow(&self) -> &Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:441:20 [INFO] [stdout] | [INFO] [stdout] 441 | impl BorrowMut> for Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:442:5 [INFO] [stdout] | [INFO] [stdout] 442 | fn borrow_mut(&mut self) -> &mut Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:257:63 [INFO] [stdout] | [INFO] [stdout] 257 | pub unsafe fn container_of(referent: *const T) -> NonNull { [INFO] [stdout] | ^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:274:38 [INFO] [stdout] | [INFO] [stdout] 274 | pub fn erase_ref(fat: &Self) -> &Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:257:63 [INFO] [stdout] | [INFO] [stdout] 257 | pub unsafe fn container_of(referent: *const T) -> NonNull { [INFO] [stdout] | ^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:285:46 [INFO] [stdout] | [INFO] [stdout] 285 | pub fn erase_mut(fat: &mut Self) -> &mut Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:274:38 [INFO] [stdout] | [INFO] [stdout] 274 | pub fn erase_ref(fat: &Self) -> &Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:285:46 [INFO] [stdout] | [INFO] [stdout] 285 | pub fn erase_mut(fat: &mut Self) -> &mut Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:400:26 [INFO] [stdout] | [INFO] [stdout] 400 | fn as_ref(&self) -> &Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:406:34 [INFO] [stdout] | [INFO] [stdout] 406 | fn as_mut(&mut self) -> &mut Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:424:26 [INFO] [stdout] | [INFO] [stdout] 424 | fn borrow(&self) -> &Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:442:38 [INFO] [stdout] | [INFO] [stdout] 442 | fn borrow_mut(&mut self) -> &mut Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:400:26 [INFO] [stdout] | [INFO] [stdout] 400 | fn as_ref(&self) -> &Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:406:34 [INFO] [stdout] | [INFO] [stdout] 406 | fn as_mut(&mut self) -> &mut Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:424:26 [INFO] [stdout] | [INFO] [stdout] 424 | fn borrow(&self) -> &Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:442:38 [INFO] [stdout] | [INFO] [stdout] 442 | fn borrow_mut(&mut self) -> &mut Fat { [INFO] [stdout] | ^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:259:31 [INFO] [stdout] | [INFO] [stdout] 259 | let offset = unsafe { Self::layout_for(&ptr::metadata(referent)).1 }; [INFO] [stdout] | ^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/tests.rs:49:16 [INFO] [stdout] | [INFO] [stdout] 49 | let thin = Fat::erase_mut(&mut fat); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: the function or associated item `layout_for` exists for struct `Fat`, but its trait bounds were not satisfied [INFO] [stdout] --> src/lib.rs:259:37 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | --------------------------------------------- function or associated item `layout_for` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 259 | let offset = unsafe { Self::layout_for(&ptr::metadata(referent)).1 }; [INFO] [stdout] | ^^^^^^^^^^ function or associated item cannot be called on `Fat` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: trait bound `Erased: MetaSized` was not satisfied [INFO] [stdout] --> src/lib.rs:267:17 [INFO] [stdout] | [INFO] [stdout] 267 | impl Fat { [INFO] [stdout] | ^ --------- [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:263:80 [INFO] [stdout] | [INFO] [stdout] 263 | unsafe { NonNull::new_unchecked((referent as *const u8).sub(offset) as *mut Self) } [INFO] [stdout] | ^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:263:18 [INFO] [stdout] | [INFO] [stdout] 263 | unsafe { NonNull::new_unchecked((referent as *const u8).sub(offset) as *mut Self) } [INFO] [stdout] | ^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:263:18 [INFO] [stdout] | [INFO] [stdout] 263 | unsafe { NonNull::new_unchecked((referent as *const u8).sub(offset) as *mut Self) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:276:43 [INFO] [stdout] | [INFO] [stdout] 276 | unsafe { &*(fat as *const Self as *const Fat) } [INFO] [stdout] | ^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:287:45 [INFO] [stdout] | [INFO] [stdout] 287 | unsafe { &mut *(fat as *mut Self as *mut Fat) } [INFO] [stdout] | ^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `data_mut` found for mutable reference `&mut Fat<(dyn TestTrait + 'static)>` in the current scope [INFO] [stdout] --> src/tests.rs:51:22 [INFO] [stdout] | [INFO] [stdout] 51 | assert_eq!(*thin.data_mut(), 42); [INFO] [stdout] | ^^^^^^^^ method not found in `&mut Fat<(dyn TestTrait + 'static)>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `TestTrait` defines an item `data_mut`, perhaps you need to implement it [INFO] [stdout] --> src/tests.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | trait TestTrait { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0283]: type annotations needed [INFO] [stdout] --> src/lib.rs:385:51 [INFO] [stdout] | [INFO] [stdout] 385 | let layout_ptr = ptr::from_raw_parts::(ptr::null(), *metadata); [INFO] [stdout] | ------------------------ ^^^^^^^^^ cannot infer type of the type parameter `T` declared on the function `null` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = note: cannot satisfy `_: Thin` [INFO] [stdout] note: required by a bound in `core::ptr::from_raw_parts` [INFO] [stdout] --> /rustc/998b6603a58e47f42ccce7a67943234e96b6839e/library/core/src/ptr/metadata.rs:112:1 [INFO] [stdout] help: consider specifying the generic argument [INFO] [stdout] | [INFO] [stdout] 385 | let layout_ptr = ptr::from_raw_parts::(ptr::null::(), *metadata); [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:401:9 [INFO] [stdout] | [INFO] [stdout] 401 | Self::erase_ref(self) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:407:9 [INFO] [stdout] | [INFO] [stdout] 407 | Self::erase_mut(self) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:425:9 [INFO] [stdout] | [INFO] [stdout] 425 | Self::erase_ref(self) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:443:9 [INFO] [stdout] | [INFO] [stdout] 443 | Self::erase_mut(self) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `data_mut` found for mutable reference `&mut Fat<(dyn TestTrait + 'static)>` in the current scope [INFO] [stdout] --> src/tests.rs:52:11 [INFO] [stdout] | [INFO] [stdout] 52 | *thin.data_mut() = 43; [INFO] [stdout] | ^^^^^^^^ method not found in `&mut Fat<(dyn TestTrait + 'static)>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `TestTrait` defines an item `data_mut`, perhaps you need to implement it [INFO] [stdout] --> src/tests.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | trait TestTrait { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `data_mut` found for mutable reference `&mut Fat<(dyn TestTrait + 'static)>` in the current scope [INFO] [stdout] --> src/tests.rs:53:22 [INFO] [stdout] | [INFO] [stdout] 53 | assert_eq!(*thin.data_mut(), 43); [INFO] [stdout] | ^^^^^^^^ method not found in `&mut Fat<(dyn TestTrait + 'static)>` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] note: `TestTrait` defines an item `data_mut`, perhaps you need to implement it [INFO] [stdout] --> src/tests.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | trait TestTrait { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0283, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/tests.rs:69:24 [INFO] [stdout] | [INFO] [stdout] 69 | Fat::layout_of(Fat::erase_ref(&TestStruct::wrapped())).0, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/tests.rs:77:16 [INFO] [stdout] | [INFO] [stdout] 77 | let thin = Fat::erase_ref(&fat); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/tests.rs:78:24 [INFO] [stdout] | [INFO] [stdout] 78 | let ptr = unsafe { Fat::container_of(Deref::deref(thin)) }; [INFO] [stdout] | ^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/tests.rs:78:55 [INFO] [stdout] | [INFO] [stdout] 78 | let ptr = unsafe { Fat::container_of(Deref::deref(thin)) }; [INFO] [stdout] | ------------ ^^^^ the trait `Deref` is not implemented for `Fat<(dyn TestTrait + 'static)>` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = note: the trait bound `Fat<(dyn TestTrait + 'static)>: Deref` is not satisfied [INFO] [stdout] note: required for `Fat<(dyn TestTrait + 'static)>` to implement `Deref` [INFO] [stdout] --> src/lib.rs:473:28 [INFO] [stdout] | [INFO] [stdout] 473 | impl Deref for Fat { [INFO] [stdout] | - ^^^^^ ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] help: consider borrowing here [INFO] [stdout] | [INFO] [stdout] 78 | let ptr = unsafe { Fat::container_of(Deref::deref(&thin)) }; [INFO] [stdout] | + [INFO] [stdout] 78 | let ptr = unsafe { Fat::container_of(Deref::deref(&mut thin)) }; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/tests.rs:78:24 [INFO] [stdout] | [INFO] [stdout] 78 | let ptr = unsafe { Fat::container_of(Deref::deref(thin)) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/tests.rs:79:34 [INFO] [stdout] | [INFO] [stdout] 79 | assert_eq!(thin as *const _, ptr.as_ptr()); [INFO] [stdout] | ^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/tests.rs:79:24 [INFO] [stdout] | [INFO] [stdout] 79 | assert_eq!(thin as *const _, ptr.as_ptr()); [INFO] [stdout] | ^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/tests.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | assert_eq!(thin as *const _, ptr.as_ptr()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/tests.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | assert_eq!(thin as *const _, ptr.as_ptr()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/tests.rs:78:42 [INFO] [stdout] | [INFO] [stdout] 78 | let ptr = unsafe { Fat::container_of(Deref::deref(thin)) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required for `Fat<(dyn TestTrait + 'static)>` to implement `Deref` [INFO] [stdout] --> src/lib.rs:473:28 [INFO] [stdout] | [INFO] [stdout] 473 | impl Deref for Fat { [INFO] [stdout] | - ^^^^^ ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:259:31 [INFO] [stdout] | [INFO] [stdout] 259 | let offset = unsafe { Self::layout_for(&ptr::metadata(referent)).1 }; [INFO] [stdout] | ^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `fat_type` (lib) due to 29 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0599]: the function or associated item `layout_for` exists for struct `Fat`, but its trait bounds were not satisfied [INFO] [stdout] --> src/lib.rs:259:37 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | --------------------------------------------- function or associated item `layout_for` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 259 | let offset = unsafe { Self::layout_for(&ptr::metadata(referent)).1 }; [INFO] [stdout] | ^^^^^^^^^^ function or associated item cannot be called on `Fat` due to unsatisfied trait bounds [INFO] [stdout] | [INFO] [stdout] note: trait bound `Erased: MetaSized` was not satisfied [INFO] [stdout] --> src/lib.rs:267:17 [INFO] [stdout] | [INFO] [stdout] 267 | impl Fat { [INFO] [stdout] | ^ --------- [INFO] [stdout] | | [INFO] [stdout] | unsatisfied trait bound introduced here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:263:80 [INFO] [stdout] | [INFO] [stdout] 263 | unsafe { NonNull::new_unchecked((referent as *const u8).sub(offset) as *mut Self) } [INFO] [stdout] | ^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:263:18 [INFO] [stdout] | [INFO] [stdout] 263 | unsafe { NonNull::new_unchecked((referent as *const u8).sub(offset) as *mut Self) } [INFO] [stdout] | ^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:263:18 [INFO] [stdout] | [INFO] [stdout] 263 | unsafe { NonNull::new_unchecked((referent as *const u8).sub(offset) as *mut Self) } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:276:43 [INFO] [stdout] | [INFO] [stdout] 276 | unsafe { &*(fat as *const Self as *const Fat) } [INFO] [stdout] | ^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:287:45 [INFO] [stdout] | [INFO] [stdout] 287 | unsafe { &mut *(fat as *mut Self as *mut Fat) } [INFO] [stdout] | ^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0283]: type annotations needed [INFO] [stdout] --> src/lib.rs:385:51 [INFO] [stdout] | [INFO] [stdout] 385 | let layout_ptr = ptr::from_raw_parts::(ptr::null(), *metadata); [INFO] [stdout] | ------------------------ ^^^^^^^^^ cannot infer type of the type parameter `T` declared on the function `null` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = note: cannot satisfy `_: Thin` [INFO] [stdout] note: required by a bound in `core::ptr::from_raw_parts` [INFO] [stdout] --> /rustc/998b6603a58e47f42ccce7a67943234e96b6839e/library/core/src/ptr/metadata.rs:112:1 [INFO] [stdout] help: consider specifying the generic argument [INFO] [stdout] | [INFO] [stdout] 385 | let layout_ptr = ptr::from_raw_parts::(ptr::null::(), *metadata); [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:401:9 [INFO] [stdout] | [INFO] [stdout] 401 | Self::erase_ref(self) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:407:9 [INFO] [stdout] | [INFO] [stdout] 407 | Self::erase_mut(self) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:425:9 [INFO] [stdout] | [INFO] [stdout] 425 | Self::erase_ref(self) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the size for values of type `Erased` cannot be known [INFO] [stdout] --> src/lib.rs:443:9 [INFO] [stdout] | [INFO] [stdout] 443 | Self::erase_mut(self) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ doesn't have a known size [INFO] [stdout] | [INFO] [stdout] = help: the trait `MetaSized` is not implemented for `Erased` [INFO] [stdout] note: required by a bound in `Fat` [INFO] [stdout] --> src/lib.rs:182:27 [INFO] [stdout] | [INFO] [stdout] 182 | pub struct Fat { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ required by this bound in `Fat` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0283, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: could not compile `fat_type` (lib test) due to 43 previous errors [INFO] running `Command { std: "docker" "inspect" "81b73e3e77e425b94887239ffbf9ce3b7ac840cfc4795ca2574e1d4a6aefe492", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "81b73e3e77e425b94887239ffbf9ce3b7ac840cfc4795ca2574e1d4a6aefe492", kill_on_drop: false }` [INFO] [stdout] 81b73e3e77e425b94887239ffbf9ce3b7ac840cfc4795ca2574e1d4a6aefe492