error[E0277]: the size for values of type `T` cannot be known at compilation time
  --> $DIR/union-sized-field.rs:4:12
   |
LL | union Foo<T: ?Sized> {
   |           - this type parameter needs to be `Sized`
LL |     value: T,
   |            ^ doesn't have a size known at compile-time
   |
   = note: no field of a union may have a dynamically sized type
   = help: change the field's type to have a statically known size
help: borrowed types always have a statically known size
   |
LL |     value: &T,
   |            ^
help: the `Box` type always has a statically known size and allocates its contents in the heap
   |
LL |     value: Box<T>,
   |            ^^^^ ^

error[E0277]: the size for values of type `T` cannot be known at compilation time
  --> $DIR/union-sized-field.rs:9:12
   |
LL | struct Foo2<T: ?Sized> {
   |             - this type parameter needs to be `Sized`
LL |     value: T,
   |            ^ doesn't have a size known at compile-time
   |
   = note: only the last field of a struct may have a dynamically sized type
   = help: change the field's type to have a statically known size
help: borrowed types always have a statically known size
   |
LL |     value: &T,
   |            ^
help: the `Box` type always has a statically known size and allocates its contents in the heap
   |
LL |     value: Box<T>,
   |            ^^^^ ^

error[E0277]: the size for values of type `T` cannot be known at compilation time
  --> $DIR/union-sized-field.rs:15:11
   |
LL | enum Foo3<T: ?Sized> {
   |           - this type parameter needs to be `Sized`
LL |     Value(T),
   |           ^ doesn't have a size known at compile-time
   |
   = note: no field of an enum variant may have a dynamically sized type
   = help: change the field's type to have a statically known size
help: borrowed types always have a statically known size
   |
LL |     Value(&T),
   |           ^
help: the `Box` type always has a statically known size and allocates its contents in the heap
   |
LL |     Value(Box<T>),
   |           ^^^^ ^

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0277`.
