From 115e14a32c1940a4868ae8633039a296450740ea Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 8 Jul 2010 07:33:25 -0700 Subject: [PATCH] Some more typestate tests. --- src/Makefile | 1 + src/test/compile-fail/use-uninit-2.rs | 13 +++++++++++++ src/test/compile-fail/use-uninit-3.rs | 15 +++++++++++++++ src/test/compile-fail/use-uninit.rs | 4 ---- src/test/run-pass/lazy-init.rs | 13 +++++++++++++ 5 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 src/test/compile-fail/use-uninit-2.rs create mode 100644 src/test/compile-fail/use-uninit-3.rs create mode 100644 src/test/run-pass/lazy-init.rs 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