// Make sure extern types are !Sized.

#![feature(extern_types)]

extern {
    type A;
}

struct Foo {
    x: u8,
    tail: A,
}

struct Bar<T: ?Sized> {
    x: u8,
    tail: T,
}

fn assert_sized<T>() { }

fn main() {
    assert_sized::<A>();
    //~^ ERROR the size for values of type

    assert_sized::<Foo>();
    //~^ ERROR the size for values of type

    assert_sized::<Bar<A>>();
    //~^ ERROR the size for values of type

    assert_sized::<Bar<Bar<A>>>();
    //~^ ERROR the size for values of type
}
