A compile-time const variable is referring to a thread-local static variable.
Erroneous code example:
#![allow(unused)]
#![feature(thread_local)]
fn main() {
#[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:
#![allow(unused)]
#![feature(thread_local)]
fn main() {
const C: usize = 12;
#[thread_local]
static X: usize = C;
const Y: usize = 2 * C;
}
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/error_codes/E0625.html