]> git.lizzy.rs Git - rust.git/blob - src/test/ui/consts/miri_unleashed/assoc_const_2.rs
Rollup merge of #84083 - ltratt:threadid_doc_tweak, r=dtolnay
[rust.git] / src / test / ui / consts / miri_unleashed / assoc_const_2.rs
1 // build-fail
2
3 #![allow(const_err)]
4
5 // a test demonstrating that const qualification cannot prevent monomorphization time errors
6
7 trait Foo {
8     const X: u32;
9 }
10
11 trait Bar<U: Foo> {
12     const F: u32 = 100 / U::X;
13 }
14
15 impl Foo for () {
16     const X: u32 = 42;
17 }
18
19 impl Foo for String {
20     const X: u32 = 0;
21 }
22
23 impl Bar<()> for () {}
24 impl Bar<String> for String {}
25
26 fn main() {
27     let x = <() as Bar<()>>::F;
28     // this test only causes errors due to the line below, so post-monomorphization
29     let y = <String as Bar<String>>::F; //~ ERROR erroneous constant
30 }