История изменений
Исправление hateyoufeel, (текущая версия) :
А ещё удивительнее, если i32 заменить на String. И от ворнинга заодно избавиться.
▲ ~/devel/rs cat rec.rs
fn foo() -> String {
if false {
return "".to_string();
}
foo()
}
fn main() {
println!("{}", foo());
}
▲ ~/devel/rs rustc rec.rs -o rec -O
▲ ~/devel/rs ./rec
[1] 14750 segmentation fault (core dumped) ./rec
Этот Rust сломался. Несите другой.
Исходная версия hateyoufeel, :
А ещё удивительнее, если i32 заменить на String.
△ ~/devel/rs cat rec.rs
fn foo() -> String {
foo()
}
fn main() {
println!("{}", foo());
}
▲ ~/devel/rs rustc rec.rs -o rec -O
warning: function cannot return without recursing
--> rec.rs:1:1
|
1 | fn foo() -> String {
| ^^^^^^^^^^^^^^^^^^ cannot return without recursing
2 | foo()
| ----- recursive call site
|
= note: `#[warn(unconditional_recursion)]` on by default
= help: a `loop` may express intention better if this is on purpose
▲ ~/devel/rs ./rec
[1] 5694 segmentation fault (core dumped) ./rec
Этот Rust сломался. Несите другой.