//@ 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() {} |