| A compile-time const variable is referring to a thread-local static variable. | |
| Erroneous code example: | |
| ```compile_fail,E0625 | |
| #![feature(thread_local)] | |
| #[thread_local] | |
| static X: usize = 12; | |
| const Y: usize = 2 * X; | |
| ``` | |
| Static and const variables can refer to other const variables but a const | |
| variable cannot refer to a thread-local static variable. In this example, | |
| `Y` cannot refer to `X`. To fix this, the value can be extracted as a const | |
| and then used: | |
| ``` | |
| #![feature(thread_local)] | |
| const C: usize = 12; | |
| #[thread_local] | |
| static X: usize = C; | |
| const Y: usize = 2 * C; | |
| ``` |