error[E0277]: the size for values of type `T` cannot be known at compilation time
 --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:6:8
  |
6 | struct Struct<T: ?Sized> {
  |        ^^^^^^^-^^^^^^^^^
  |        |      |
  |        |      this type parameter needs to be `std::marker::Sized`
  |        doesn't have a size known at compile-time
  |
note: required because it appears within the type `__StructProjectionOwned<T>`
 --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:6:8
  |
6 | struct Struct<T: ?Sized> {
  |        ^^^^^^
  = note: the return type of a function must have a statically known size
help: consider removing the `?Sized` bound to make the type parameter `Sized`
  |
6 - struct Struct<T: ?Sized> {
6 + struct Struct<T> {
  |

error[E0277]: the size for values of type `T` cannot be known at compilation time
   --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:5:1
    |
5   | #[pin_project(project_replace)] //~ ERROR E0277
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
6   | struct Struct<T: ?Sized> {
    |               - this type parameter needs to be `std::marker::Sized`
    |
note: required because it appears within the type `Struct<T>`
   --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:6:8
    |
6   | struct Struct<T: ?Sized> {
    |        ^^^^^^
note: required by a bound in `UnsafeOverwriteGuard::<T>::new`
   --> src/lib.rs
    |
    |     impl<T> UnsafeOverwriteGuard<T> {
    |          ^ required by this bound in `UnsafeOverwriteGuard::<T>::new`
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider removing the `?Sized` bound to make the type parameter `Sized`
    |
6   - struct Struct<T: ?Sized> {
6   + struct Struct<T> {
    |

error[E0277]: the size for values of type `T` cannot be known at compilation time
    --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:7:5
     |
5    | #[pin_project(project_replace)] //~ ERROR E0277
     | ------------------------------- required by a bound introduced by this call
6    | struct Struct<T: ?Sized> {
     |               - this type parameter needs to be `std::marker::Sized`
7    |     f: T,
     |     ^ doesn't have a size known at compile-time
     |
note: required by a bound in `std::ptr::read`
    --> $RUST/core/src/ptr/mod.rs
     |
     | pub const unsafe fn read<T>(src: *const T) -> T {
     |                          ^ required by this bound in `std::ptr::read`
help: consider removing the `?Sized` bound to make the type parameter `Sized`
     |
6    - struct Struct<T: ?Sized> {
6    + struct Struct<T> {
     |

error[E0277]: the size for values of type `T` cannot be known at compilation time
  --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:11:8
   |
11 | struct TupleStruct<T: ?Sized>(T);
   |        ^^^^^^^^^^^^-^^^^^^^^^
   |        |           |
   |        |           this type parameter needs to be `std::marker::Sized`
   |        doesn't have a size known at compile-time
   |
note: required because it appears within the type `__TupleStructProjectionOwned<T>`
  --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:11:8
   |
11 | struct TupleStruct<T: ?Sized>(T);
   |        ^^^^^^^^^^^
   = note: the return type of a function must have a statically known size
help: consider removing the `?Sized` bound to make the type parameter `Sized`
   |
11 - struct TupleStruct<T: ?Sized>(T);
11 + struct TupleStruct<T>(T);
   |

error[E0277]: the size for values of type `T` cannot be known at compilation time
   --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:10:1
    |
10  | #[pin_project(project_replace)] //~ ERROR E0277
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
11  | struct TupleStruct<T: ?Sized>(T);
    |                    - this type parameter needs to be `std::marker::Sized`
    |
note: required because it appears within the type `TupleStruct<T>`
   --> tests/ui/pin_project/project_replace_unsized_fn_params.rs:11:8
    |
11  | struct TupleStruct<T: ?Sized>(T);
    |        ^^^^^^^^^^^
note: required by a bound in `UnsafeOverwriteGuard::<T>::new`
   --> src/lib.rs
    |
    |     impl<T> UnsafeOverwriteGuard<T> {
    |          ^ required by this bound in `UnsafeOverwriteGuard::<T>::new`
    = note: this error originates in the derive macro `::pin_project::__private::__PinProjectInternalDerive` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider removing the `?Sized` bound to make the type parameter `Sized`
    |
11  - struct TupleStruct<T: ?Sized>(T);
11  + struct TupleStruct<T>(T);
    |
