]> git.lizzy.rs Git - rust.git/blob - tests/ui/const-generics/issues/issue-72845.rs
Auto merge of #106711 - albertlarsan68:use-ci-llvm-when-lld, r=jyn514
[rust.git] / tests / ui / const-generics / issues / issue-72845.rs
1 #![feature(generic_const_exprs)]
2 #![feature(specialization)]
3 #![allow(incomplete_features)]
4
5 //--------------------------------------------------
6
7 trait Depth {
8     const C: usize;
9 }
10
11 trait Type {
12     type AT: Depth;
13 }
14
15 //--------------------------------------------------
16
17 enum Predicate<const B: bool> {}
18
19 trait Satisfied {}
20
21 impl Satisfied for Predicate<true> {}
22
23 //--------------------------------------------------
24
25 trait Spec1 {}
26
27 impl<T: Type> Spec1 for T where Predicate<{T::AT::C > 0}>: Satisfied {}
28
29 trait Spec2 {}
30
31 //impl<T: Type > Spec2 for T where Predicate<{T::AT::C > 1}>: Satisfied {}
32 impl<T: Type > Spec2 for T where Predicate<true>: Satisfied {}
33
34 //--------------------------------------------------
35
36 trait Foo {
37     fn Bar();
38 }
39
40 impl<T: Spec1> Foo for T {
41     default fn Bar() {}
42 }
43
44 impl<T: Spec2> Foo for T {
45 //~^ ERROR conflicting implementations of trait
46     fn Bar() {}
47 }
48
49 fn main() {}