mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 08:13:41 +00:00
Rollup merge of #87715 - bhgomes:long-explanation-E0625, r=GuillaumeGomez
Add long error explanation for E0625 For #61137.
This commit is contained in:
commit
772db06e10
@ -359,6 +359,7 @@ E0621: include_str!("./error_codes/E0621.md"),
|
||||
E0622: include_str!("./error_codes/E0622.md"),
|
||||
E0623: include_str!("./error_codes/E0623.md"),
|
||||
E0624: include_str!("./error_codes/E0624.md"),
|
||||
E0625: include_str!("./error_codes/E0625.md"),
|
||||
E0626: include_str!("./error_codes/E0626.md"),
|
||||
E0627: include_str!("./error_codes/E0627.md"),
|
||||
E0628: include_str!("./error_codes/E0628.md"),
|
||||
@ -622,7 +623,6 @@ E0783: include_str!("./error_codes/E0783.md"),
|
||||
// E0611, // merged into E0616
|
||||
// E0612, // merged into E0609
|
||||
// E0613, // Removed (merged with E0609)
|
||||
E0625, // thread-local statics cannot be accessed at compile-time
|
||||
// E0629, // missing 'feature' (rustc_const_unstable)
|
||||
// E0630, // rustc_const_unstable attribute must be paired with stable/unstable
|
||||
// attribute
|
||||
|
28
compiler/rustc_error_codes/src/error_codes/E0625.md
Normal file
28
compiler/rustc_error_codes/src/error_codes/E0625.md
Normal file
@ -0,0 +1,28 @@
|
||||
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;
|
||||
```
|
@ -30,3 +30,4 @@ LL | A
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0625`.
|
||||
|
@ -40,5 +40,5 @@ LL | std::mem::swap(x, &mut STATIC_VAR_2)
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0013, E0133, E0658.
|
||||
Some errors have detailed explanations: E0013, E0133, E0625, E0658.
|
||||
For more information about an error, try `rustc --explain E0013`.
|
||||
|
Loading…
Reference in New Issue
Block a user