]> git.lizzy.rs Git - rust.git/commitdiff
A few tests for infinite loops
authorTim Chevalier <chevalier@alum.wellesley.edu>
Mon, 12 Mar 2012 03:17:27 +0000 (20:17 -0700)
committerTim Chevalier <chevalier@alum.wellesley.edu>
Mon, 12 Mar 2012 03:17:27 +0000 (20:17 -0700)
src/test/compile-fail/loop-does-not-diverge.rs [new file with mode: 0644]
src/test/run-pass/loop-diverges.rs [new file with mode: 0644]

diff --git a/src/test/compile-fail/loop-does-not-diverge.rs b/src/test/compile-fail/loop-does-not-diverge.rs
new file mode 100644 (file)
index 0000000..3d2d70f
--- /dev/null
@@ -0,0 +1,13 @@
+// error-pattern:some control paths may return
+/* Make sure a loop{} with a break in it can't be
+   the tailexpr in the body of a diverging function */
+fn forever() -> ! {
+  loop {
+    break;
+  }
+  ret 42;
+}
+
+fn main() {
+  if (1 == 2) { forever(); }
+}
\ No newline at end of file
diff --git a/src/test/run-pass/loop-diverges.rs b/src/test/run-pass/loop-diverges.rs
new file mode 100644 (file)
index 0000000..909a15a
--- /dev/null
@@ -0,0 +1,10 @@
+/* Make sure a loop{} can be the tailexpr in the body
+of a diverging function */
+
+fn forever() -> ! {
+  loop{}
+}
+
+fn main() {
+  if (1 == 2) { forever(); }
+}
\ No newline at end of file