Может ли Rust обнаружить возможное переполнение стека во время компиляции?Я обнаружил, что он может оптимизировать хвостовую рекурсию, но универсальная рекурсия вызывает ошибку времени выполнения:
fn rec(mut i: i32) {
i = i - 1;
if i > 0 {
rec(i);
}
println!("{}", i);
}
fn main() {
rec(100000000);
}