1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// check-pass trait Usizer { fn m(self) -> usize; } fn f<const N: usize>(u: impl Usizer) -> usize { N + u.m() } struct Usizable; impl Usizer for Usizable { fn m(self) -> usize { 16 } } fn main() { assert_eq!(f::<4usize>(Usizable), 20usize); }