rust/tests/ui/structs/field-implied-unsizing-wfcheck.rs
2024-08-05 17:56:50 -07:00

33 lines
1.3 KiB
Rust

struct FooStruct {
nested: &'static Bar<dyn std::fmt::Debug>,
//~^ ERROR the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
}
struct FooTuple(&'static Bar<dyn std::fmt::Debug>);
//~^ ERROR the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
enum FooEnum1 {
Struct { nested: &'static Bar<dyn std::fmt::Debug> },
//~^ ERROR the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
}
enum FooEnum2 {
Tuple(&'static Bar<dyn std::fmt::Debug>),
//~^ ERROR the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
}
struct Bar<T>(T);
fn main() {
// Ensure there's an error at the construction site, for error tainting purposes.
FooStruct { nested: &Bar(4) };
//~^ ERROR the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
FooTuple(&Bar(4));
//~^ ERROR the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
FooEnum1::Struct { nested: &Bar(4) };
//~^ ERROR the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
FooEnum2::Tuple(&Bar(4));
//~^ ERROR the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
}