error[E0277]: the size for values of type `A` cannot be known at compilation time
  --> $DIR/extern-types-unsized.rs:22:20
   |
LL | fn assert_sized<T>() { }
   |                 - required by this bound in `assert_sized`
...
LL |     assert_sized::<A>();
   |                    ^ doesn't have a size known at compile-time
   |
   = help: the trait `Sized` is not implemented for `A`
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:5
   |
LL | fn assert_sized<T>() { }
   |                 - required by this bound in `assert_sized`
...
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`
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:5
   |
LL | fn assert_sized<T>() { }
   |                 - required by this bound in `assert_sized`
...
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>`
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:5
   |
LL | fn assert_sized<T>() { }
   |                 - required by this bound in `assert_sized`
...
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>`
   = note: required because it appears within the type `Bar<Bar<A>>`
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`.
