diff options
| author | Tim Chevalier <[email protected]> | 2011-05-04 11:32:06 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-05-05 11:26:07 -0700 |
| commit | acf9bd7909a4f6a68d974cabff96c4b72791c201 (patch) | |
| tree | 6b1e5761e7dcdb8625941cf7d02387a554f534ed /src/test/compile-fail | |
| parent | Bring back "pred" syntax for writing predicates for check (diff) | |
| download | rust-acf9bd7909a4f6a68d974cabff96c4b72791c201.tar.xz rust-acf9bd7909a4f6a68d974cabff96c4b72791c201.zip | |
Test cases for pred / check stuff
Diffstat (limited to 'src/test/compile-fail')
| -rw-r--r-- | src/test/compile-fail/impure-pred.rs | 17 | ||||
| -rw-r--r-- | src/test/compile-fail/not-a-pred-2.rs | 1 | ||||
| -rw-r--r-- | src/test/compile-fail/not-a-pred-3.rs | 1 | ||||
| -rw-r--r-- | src/test/compile-fail/not-a-pred-check.rs | 12 | ||||
| -rw-r--r-- | src/test/compile-fail/not-pred-args.rs | 1 | ||||
| -rw-r--r-- | src/test/compile-fail/pred-not-bool.rs | 13 |
6 files changed, 45 insertions, 0 deletions
diff --git a/src/test/compile-fail/impure-pred.rs b/src/test/compile-fail/impure-pred.rs new file mode 100644 index 00000000..b5ebc10e --- /dev/null +++ b/src/test/compile-fail/impure-pred.rs @@ -0,0 +1,17 @@ +// -*- rust -*- +// xfail-boot +// xfail-stage0 +// error-pattern: impure function + +fn g() -> () {} + +pred f(int q) -> bool { + g(); + ret true; +} + +fn main() { + auto x = 0; + + check f(x); +} diff --git a/src/test/compile-fail/not-a-pred-2.rs b/src/test/compile-fail/not-a-pred-2.rs index c8ac4a08..07ea13b3 100644 --- a/src/test/compile-fail/not-a-pred-2.rs +++ b/src/test/compile-fail/not-a-pred-2.rs @@ -1,5 +1,6 @@ // -*- rust -*- // xfail-boot +// xfail-stage0 // error-pattern: non-predicate diff --git a/src/test/compile-fail/not-a-pred-3.rs b/src/test/compile-fail/not-a-pred-3.rs index ea1b6cc0..f4dafd20 100644 --- a/src/test/compile-fail/not-a-pred-3.rs +++ b/src/test/compile-fail/not-a-pred-3.rs @@ -1,5 +1,6 @@ // -*- rust -*- // xfail-boot +// xfail-stage0 // error-pattern: expected the constraint name diff --git a/src/test/compile-fail/not-a-pred-check.rs b/src/test/compile-fail/not-a-pred-check.rs new file mode 100644 index 00000000..55698ad2 --- /dev/null +++ b/src/test/compile-fail/not-a-pred-check.rs @@ -0,0 +1,12 @@ +// -*- rust -*- +// xfail-boot +// xfail-stage0 +// error-pattern: non-predicate + +fn f(int q) -> bool { ret true; } + +fn main() { + auto x = 0; + + check f(x); +} diff --git a/src/test/compile-fail/not-pred-args.rs b/src/test/compile-fail/not-pred-args.rs index c92b4ff9..7fe6220a 100644 --- a/src/test/compile-fail/not-pred-args.rs +++ b/src/test/compile-fail/not-pred-args.rs @@ -1,5 +1,6 @@ // -*- rust -*- // xfail-boot +// xfail-stage0 // error-pattern: Constraint args must be diff --git a/src/test/compile-fail/pred-not-bool.rs b/src/test/compile-fail/pred-not-bool.rs new file mode 100644 index 00000000..c0d19ef2 --- /dev/null +++ b/src/test/compile-fail/pred-not-bool.rs @@ -0,0 +1,13 @@ +// -*- rust -*- + +// error-pattern: mismatched types + +// this checks that a pred with a non-bool return +// type is rejected, even if the pred is never used + +pred bad(int a) -> int { + ret 37; +} + +fn main() { +} |