| // Test that `dyn ?Sized` (i.e., a trait object with only a maybe buond) is not allowed, when just | |
| // `?Sized` results from trait alias expansion. | |
| #![feature(trait_alias)] | |
| trait S = ?Sized; | |
| // Nest a couple of levels deep: | |
| trait _0 = S; | |
| trait _1 = _0; | |
| // Straight list expansion: | |
| type _T0 = dyn _1; | |
| //~^ ERROR at least one trait is required for an object type [E0224] | |
| // Twice: | |
| trait _2 = _1 + _1; | |
| type _T1 = dyn _2; | |
| //~^ ERROR at least one trait is required for an object type [E0224] | |
| fn main() {} |