]>
Commit | Line | Data |
---|---|---|
3c0e092e XL |
1 | trait Trait<const N: u8 = 12> { |
2 | fn uwu(&self) -> u8 { | |
3 | N | |
4 | } | |
5 | } | |
6 | ||
7 | impl Trait<2> for u32 {} | |
8 | ||
9 | fn foo(arg: &dyn Trait) -> u8 { | |
10 | arg.uwu() | |
11 | } | |
12 | ||
13 | trait Traitor<const N: u8 = 1, const M: u8 = N> { | |
14 | fn owo(&self) -> u8 { | |
15 | M | |
16 | } | |
17 | } | |
18 | ||
19 | impl Traitor<2, 3> for bool { } | |
20 | ||
21 | fn bar<const N: u8>(arg: &dyn Traitor<N>) -> u8 { | |
22 | arg.owo() | |
23 | } | |
24 | ||
25 | fn main() { | |
26 | foo(&10_u32); | |
27 | //~^ error: the trait bound `u32: Trait` is not satisfied | |
28 | bar(&true); | |
923072b8 | 29 | //~^ error: the trait bound `bool: Traitor<{_: u8}>` is not satisfied |
3c0e092e | 30 | } |