about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2010-07-08 07:33:25 -0700
committerGraydon Hoare <graydon@mozilla.com>2010-07-08 07:33:25 -0700
commit115e14a32c1940a4868ae8633039a296450740ea (patch)
tree086b00f13564d4c4927d79acf390a8ac3f505fb3 /src
parentd39753685b1696864624df7692ebe489e5901108 (diff)
downloadrust-115e14a32c1940a4868ae8633039a296450740ea.tar.gz
rust-115e14a32c1940a4868ae8633039a296450740ea.zip
Some more typestate tests.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile1
-rw-r--r--src/test/compile-fail/use-uninit-2.rs13
-rw-r--r--src/test/compile-fail/use-uninit-3.rs15
-rw-r--r--src/test/compile-fail/use-uninit.rs4
-rw-r--r--src/test/run-pass/lazy-init.rs13
5 files changed, 42 insertions, 4 deletions
diff --git a/src/Makefile b/src/Makefile
index 9c61d6a3c6a..176349ca565 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -451,6 +451,7 @@ TEST_XFAILS_LLVM := $(addprefix test/run-pass/, \
                       u8-incr.rs \
                       unit.rs \
                       user.rs \
+                      use-uninit.rs \
                       utf8.rs \
                       vec-append.rs \
                       vec-concat.rs \
diff --git a/src/test/compile-fail/use-uninit-2.rs b/src/test/compile-fail/use-uninit-2.rs
new file mode 100644
index 00000000000..79cebe2811f
--- /dev/null
+++ b/src/test/compile-fail/use-uninit-2.rs
@@ -0,0 +1,13 @@
+// error-pattern:Unsatisfied precondition
+
+fn foo(int x) {
+  log x;
+}
+
+fn main() {
+  let int x;
+  if (1 > 2) {
+    x = 10;
+  }
+  foo(x);
+}
\ No newline at end of file
diff --git a/src/test/compile-fail/use-uninit-3.rs b/src/test/compile-fail/use-uninit-3.rs
new file mode 100644
index 00000000000..e65454518a3
--- /dev/null
+++ b/src/test/compile-fail/use-uninit-3.rs
@@ -0,0 +1,15 @@
+// error-pattern:Unsatisfied precondition
+
+fn foo(int x) {
+  log x;
+}
+
+fn main() {
+  let int x;
+  if (1 > 2) {
+    log "whoops";
+  } else {
+    x = 10;
+  }
+  foo(x);
+}
\ No newline at end of file
diff --git a/src/test/compile-fail/use-uninit.rs b/src/test/compile-fail/use-uninit.rs
index 5790bfbda6c..03dafdcc003 100644
--- a/src/test/compile-fail/use-uninit.rs
+++ b/src/test/compile-fail/use-uninit.rs
@@ -6,9 +6,5 @@ fn foo(int x) {
 
 fn main() {
   let int x;
-  if (1 > 2) {
-    x = 10;
-  } else {
-  }
   foo(x);
 }
\ No newline at end of file
diff --git a/src/test/run-pass/lazy-init.rs b/src/test/run-pass/lazy-init.rs
new file mode 100644
index 00000000000..986dbf20539
--- /dev/null
+++ b/src/test/run-pass/lazy-init.rs
@@ -0,0 +1,13 @@
+fn foo(int x) {
+  log x;
+}
+
+fn main() {
+  let int x;
+  if (1 > 2) {
+    x = 12;
+  } else {
+    x = 10;
+  }
+  foo(x);
+}
\ No newline at end of file