error[E0277]: the size for values of type `A` cannot be known at compilation time
  --> $DIR/extern-types-unsized.rs:22:20
   |
LL |     assert_sized::<A>();
   |                    ^ doesn't have a size known at compile-time
   |
   = help: the trait `Sized` is not implemented for `A`
note: required by a bound in `assert_sized`
  --> $DIR/extern-types-unsized.rs:19:17
   |
LL | fn assert_sized<T>() {}
   |                 ^ required by this bound in `assert_sized`
help: consider relaxing the implicit `Sized` restriction
   |
LL | fn assert_sized<T: ?Sized>() {}
   |                  ++++++++

error[E0277]: the size for values of type `A` cannot be known at compilation time
  --> $DIR/extern-types-unsized.rs:25:20
   |
LL |     assert_sized::<Foo>();
   |                    ^^^ doesn't have a size known at compile-time
   |
   = help: within `Foo`, the trait `Sized` is not implemented for `A`
note: required because it appears within the type `Foo`
  --> $DIR/extern-types-unsized.rs:9:8
   |
LL | struct Foo {
   |        ^^^
note: required by a bound in `assert_sized`
  --> $DIR/extern-types-unsized.rs:19:17
   |
LL | fn assert_sized<T>() {}
   |                 ^ required by this bound in `assert_sized`
help: consider relaxing the implicit `Sized` restriction
   |
LL | fn assert_sized<T: ?Sized>() {}
   |                  ++++++++

error[E0277]: the size for values of type `A` cannot be known at compilation time
  --> $DIR/extern-types-unsized.rs:28:20
   |
LL |     assert_sized::<Bar<A>>();
   |                    ^^^^^^ doesn't have a size known at compile-time
   |
   = help: within `Bar<A>`, the trait `Sized` is not implemented for `A`
note: required because it appears within the type `Bar<A>`
  --> $DIR/extern-types-unsized.rs:14:8
   |
LL | struct Bar<T: ?Sized> {
   |        ^^^
note: required by a bound in `assert_sized`
  --> $DIR/extern-types-unsized.rs:19:17
   |
LL | fn assert_sized<T>() {}
   |                 ^ required by this bound in `assert_sized`
help: consider relaxing the implicit `Sized` restriction
   |
LL | fn assert_sized<T: ?Sized>() {}
   |                  ++++++++

error[E0277]: the size for values of type `A` cannot be known at compilation time
  --> $DIR/extern-types-unsized.rs:31:20
   |
LL |     assert_sized::<Bar<Bar<A>>>();
   |                    ^^^^^^^^^^^ doesn't have a size known at compile-time
   |
   = help: within `Bar<Bar<A>>`, the trait `Sized` is not implemented for `A`
note: required because it appears within the type `Bar<A>`
  --> $DIR/extern-types-unsized.rs:14:8
   |
LL | struct Bar<T: ?Sized> {
   |        ^^^
note: required by a bound in `assert_sized`
  --> $DIR/extern-types-unsized.rs:19:17
   |
LL | fn assert_sized<T>() {}
   |                 ^ required by this bound in `assert_sized`
help: consider relaxing the implicit `Sized` restriction
   |
LL | fn assert_sized<T: ?Sized>() {}
   |                  ++++++++

error: aborting due to 4 previous errors

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