error[E0599]: the function or associated item `default` exists for associated type `::Bar`, but its trait bounds were not satisfied --> $DIR/assoc_type_bounds_sized_used.rs:11:30 | LL | let _ = ::Bar::default(); | ^^^^^^^ function or associated item cannot be called on `::Bar` due to unsatisfied trait bounds | = note: the following trait bounds were not satisfied: `T: Sized` which is required by `::Bar: Default` help: consider restricting the type parameter to satisfy the trait bound | LL | fn bop() where T: Sized { | ++++++++++++++ error[E0277]: the size for values of type `T` cannot be known at compilation time --> $DIR/assoc_type_bounds_sized_used.rs:11:14 | LL | fn bop() { | - this type parameter needs to be `Sized` LL | let _ = ::Bar::default(); | ^ doesn't have a size known at compile-time | note: required by a bound in `Bop::Bar` --> $DIR/assoc_type_bounds_sized_used.rs:7:15 | LL | type Bar: Default | --- required by a bound in this associated type LL | where LL | Self: Sized; | ^^^^^ required by this bound in `Bop::Bar` help: consider removing the `?Sized` bound to make the type parameter `Sized` | LL - fn bop() { LL + fn bop() { | help: consider relaxing the implicit `Sized` restriction | LL | type Bar: Default + ?Sized | ++++++++ error: aborting due to 2 previous errors Some errors have detailed explanations: E0277, E0599. For more information about an error, try `rustc --explain E0277`.