mirror of
https://github.com/rust-lang/rust.git
synced 2025-11-16 02:15:42 +00:00
this implements checks necessary to guarantee that we can actually perform a tail call. while extremely restrictive, this is what is documented in the RFC, and all these checks are needed for one reason or another.
41 lines
1.1 KiB
Plaintext
41 lines
1.1 KiB
Plaintext
error: mismatched signatures
|
|
--> $DIR/signature-mismatch.rs:6:5
|
|
|
|
|
LL | become _g0();
|
|
| ^^^^^^^^^^^^
|
|
|
|
|
= note: `become` requires caller and callee to have matching signatures
|
|
= note: caller signature: `fn(())`
|
|
= note: callee signature: `fn()`
|
|
|
|
error: mismatched signatures
|
|
--> $DIR/signature-mismatch.rs:13:5
|
|
|
|
|
LL | become _g1(());
|
|
| ^^^^^^^^^^^^^^
|
|
|
|
|
= note: `become` requires caller and callee to have matching signatures
|
|
= note: caller signature: `fn()`
|
|
= note: callee signature: `fn(())`
|
|
|
|
error: mismatched function ABIs
|
|
--> $DIR/signature-mismatch.rs:20:5
|
|
|
|
|
LL | become _g2();
|
|
| ^^^^^^^^^^^^
|
|
|
|
|
= note: `become` requires caller and callee to have the same ABI
|
|
= note: caller ABI is `"C"`, while callee ABI is `"Rust"`
|
|
|
|
error: mismatched function ABIs
|
|
--> $DIR/signature-mismatch.rs:27:5
|
|
|
|
|
LL | become _g3();
|
|
| ^^^^^^^^^^^^
|
|
|
|
|
= note: `become` requires caller and callee to have the same ABI
|
|
= note: caller ABI is `"Rust"`, while callee ABI is `"C"`
|
|
|
|
error: aborting due to 4 previous errors
|
|
|