add long error explanation for E0625

This commit is contained in:
Brandon H. Gomes
2021-08-02 23:03:16 -04:00
parent 6be8a06bcf
commit a77d6ff359
4 changed files with 31 additions and 2 deletions

View File

@@ -0,0 +1,28 @@
Static and const variables can refer to other const variables. But a const
variable cannot refer 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;
```
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;
```