summaryrefslogtreecommitdiffstats
path: root/tests/ui/explicit-tail-calls/return-mismatches.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/explicit-tail-calls/return-mismatches.rs')
-rw-r--r--tests/ui/explicit-tail-calls/return-mismatches.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/ui/explicit-tail-calls/return-mismatches.rs b/tests/ui/explicit-tail-calls/return-mismatches.rs
new file mode 100644
index 000000000..935a1a1d2
--- /dev/null
+++ b/tests/ui/explicit-tail-calls/return-mismatches.rs
@@ -0,0 +1,28 @@
+#![allow(incomplete_features)]
+#![feature(explicit_tail_calls)]
+
+fn _f0<'a>() -> &'static [u8] {
+ become _g0(); //~ error: mismatched types
+}
+
+fn _g0() -> &'static [u8; 1] {
+ &[0]
+}
+
+fn _f1() {
+ become _g1(); //~ error: mismatched types
+}
+
+fn _g1() -> ! {
+ become _g1();
+}
+
+fn _f2() -> u32 {
+ become _g2(); //~ error: mismatched types
+}
+
+fn _g2() -> u16 {
+ 0
+}
+
+fn main() {}