| //@ build-pass (FIXME(62277): could be check-pass?) | |
| // Test that `dyn ... + ?Sized + ...` resulting from the expansion of trait aliases is okay. | |
| #![feature(trait_alias)] | |
| trait Foo {} | |
| trait S = ?Sized; | |
| // Nest a couple of levels deep: | |
| trait _0 = S; | |
| trait _1 = _0; | |
| // Straight list expansion: | |
| type _T0 = dyn _1 + Foo; | |
| // In second position: | |
| type _T1 = dyn Foo + _1; | |
| // ... and with an auto trait: | |
| type _T2 = dyn Foo + Send + _1; | |
| // Twice: | |
| trait _2 = _1 + _1; | |
| type _T3 = dyn _2 + Foo; | |
| fn main() {} |