summaryrefslogtreecommitdiffstats
path: root/tests/ui/traits/alias/maybe-bound.rs
blob: 284baa481497c9aece261db687df3d9c1c712036 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// 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() {}