about summary refs log tree commit diff
path: root/src/test/compile-fail/tstate-ctor-unsat.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/compile-fail/tstate-ctor-unsat.rs')
-rw-r--r--src/test/compile-fail/tstate-ctor-unsat.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/compile-fail/tstate-ctor-unsat.rs b/src/test/compile-fail/tstate-ctor-unsat.rs
new file mode 100644
index 00000000000..d249865cd49
--- /dev/null
+++ b/src/test/compile-fail/tstate-ctor-unsat.rs
@@ -0,0 +1,25 @@
+pure fn is_even(i: int) -> bool { (i%2) == 0 }
+fn even(i: int) : is_even(i) -> int { i }
+
+class cat {
+  priv {
+    let mut meows : uint;
+  }
+
+  let how_hungry : int;
+
+  fn eat() {
+    self.how_hungry -= 5;
+  }
+
+  new(in_x : uint, in_y : int) {
+    let foo = 3;
+    self.meows = in_x + (in_y as uint);
+    self.how_hungry = even(foo); //! ERROR unsatisfied precondition
+  }
+}
+
+fn main() {
+  let nyan : cat = cat(52u, 99);
+  nyan.eat();
+}