]> git.proxmox.com Git - rustc.git/blob - tests/ui/consts/const-eval/issue-50814-2.rs
New upstream version 1.68.2+dfsg1
[rustc.git] / tests / ui / consts / const-eval / issue-50814-2.rs
1 // build-fail
2
3 trait C {
4 const BOO: usize;
5 }
6
7 trait Foo<T> {
8 const BAR: usize;
9 }
10
11 struct A<T>(T);
12
13 impl<T: C> Foo<T> for A<T> {
14 const BAR: usize = [5, 6, 7][T::BOO]; //~ ERROR evaluation of `<A<()> as Foo<()>>::BAR` failed
15 }
16
17 fn foo<T: C>() -> &'static usize {
18 &<A<T> as Foo<T>>::BAR //~ constant
19 }
20
21 impl C for () {
22 const BOO: usize = 42;
23 }
24
25 impl C for u32 {
26 const BOO: usize = 1;
27 }
28
29 fn main() {
30 println!("{:x}", foo::<()>() as *const usize as usize);
31 println!("{:x}", foo::<u32>() as *const usize as usize);
32 println!("{:x}", foo::<()>());
33 println!("{:x}", foo::<u32>());
34 }