|
|
|
|
|
by steveklabnik
2123 days ago
|
|
Yes, any time you move computation to compile time, it makes the compile time take longer. As always it is a tradeoff. One thing that people may not realize, especially now that we have loop. You may expect this to hang the compiler: const fn forever() -> ! {
loop {
}
}
static FOO: u32 = forever();
But it won't: error[E0080]: could not evaluate static initializer
--> src/lib.rs:2:5
|
2 | / loop {
3 | |
4 | | }
| | ^
| | |
| |_____exceeded interpreter step limit (see `#[const_eval_limit]`)
| inside `forever` at src/lib.rs:2:5
This does place an upper limit on any given const fn. |
|
That could be a real hard-to-source build stall.