#![feature(extern_types)] #![feature(sized_hierarchy)] use std::marker::{MetaSized, PointeeSized}; fn needs_pointeesized() {} fn needs_metasized() {} fn needs_sized() {} fn main() { needs_pointeesized::(); needs_metasized::(); needs_sized::(); needs_pointeesized::(); needs_metasized::(); needs_sized::(); //~^ ERROR the size for values of type `str` cannot be known at compilation time extern "C" { type Foo; } needs_pointeesized::(); needs_metasized::(); //~^ ERROR the size for values of type `main::Foo` cannot be known needs_sized::(); //~^ ERROR the size for values of type `main::Foo` cannot be known at compilation time }