about summary refs log tree commit diff
path: root/src/test/compile-fail/tstate-loop-constraints.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/compile-fail/tstate-loop-constraints.rs')
-rw-r--r--src/test/compile-fail/tstate-loop-constraints.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/test/compile-fail/tstate-loop-constraints.rs b/src/test/compile-fail/tstate-loop-constraints.rs
new file mode 100644
index 00000000000..34ff0753d86
--- /dev/null
+++ b/src/test/compile-fail/tstate-loop-constraints.rs
@@ -0,0 +1,19 @@
+pure fn is_even(i: int) -> bool { (i%2) == 0 }
+fn even(i: int) : is_even(i) -> int { i }
+
+fn main() {
+
+    let mut x: int = 42;
+    loop {
+        loop {
+            loop {
+                check is_even(x);
+                even(x); // OK
+                loop {
+                    even(x); //! ERROR unsatisfied precondition
+                    x = 11; 
+                }
+            }
+        }
+    }
+}