//@ run-pass | |
struct Uwu<const N: u32 = 1, const M: u32 = N>; | |
trait Trait {} | |
impl<const N: u32> Trait for Uwu<N> {} | |
fn rawr<const N: u32>() -> impl Trait { | |
Uwu::<N> | |
} | |
trait Traitor<const N: u8 = 1, const M: u8 = N> { } | |
impl<const N: u8> Traitor<N> for u32 {} | |
impl Traitor<1, 1> for u64 {} | |
fn uwu<const N: u8>() -> impl Traitor<N> { | |
1_u32 | |
} | |
fn owo() -> impl Traitor { | |
1_u64 | |
} | |
fn main() { | |
rawr::<3>(); | |
rawr::<7>(); | |
uwu::<{ u8::MAX }>(); | |
owo(); | |
} |