]> git.lizzy.rs Git - rust.git/blob - tests/ui/const-generics/generic_const_exprs/issue-74634.rs
Auto merge of #106711 - albertlarsan68:use-ci-llvm-when-lld, r=jyn514
[rust.git] / tests / ui / const-generics / generic_const_exprs / issue-74634.rs
1 // check-pass
2 #![feature(generic_const_exprs)]
3 #![allow(incomplete_features)]
4
5 trait If<const COND: bool> {}
6 impl If<true> for () {}
7
8 trait IsZero<const N: u8> {
9     type Answer;
10 }
11
12 struct True;
13 struct False;
14
15 impl<const N: u8> IsZero<N> for ()
16 where (): If<{N == 0}> {
17     type Answer = True;
18 }
19
20 trait Foobar<const N: u8> {}
21
22 impl<const N: u8> Foobar<N> for ()
23 where (): IsZero<N, Answer = True> {}
24
25 impl<const N: u8> Foobar<N> for ()
26 where (): IsZero<N, Answer = False> {}
27
28 fn main() {}