diff --git a/src/test/compile-fail/zip-missing-check.rs b/src/test/compile-fail/zip-missing-check.rs new file mode 100644 index 000000000000..554a670fab4d --- /dev/null +++ b/src/test/compile-fail/zip-missing-check.rs @@ -0,0 +1,17 @@ +// error-pattern:Unsatisfied precondition constraint (for example, same_length +use std; +import std::uint; +import std::u8; +import std::vec::*; + +fn main() { + let a = 'a' as u8, j = 'j' as u8, k = 1u, l = 10u; + // Silly, but necessary + check u8::le(a, j); + check uint::le(k, l); + let chars = enum_chars(a, j); + let ints = enum_uints(k, l); + + let ps = zip(chars, ints); + fail "the impossible happened"; +} \ No newline at end of file diff --git a/src/test/run-fail/zip-different-lengths.rs b/src/test/run-fail/zip-different-lengths.rs new file mode 100644 index 000000000000..95991e312437 --- /dev/null +++ b/src/test/run-fail/zip-different-lengths.rs @@ -0,0 +1,20 @@ +// In this case, the code should compile but +// the check should fail at runtime +// error-pattern:Predicate same_length +use std; +import std::uint; +import std::u8; +import std::vec::*; + +fn main() { + let a = 'a' as u8, j = 'j' as u8, k = 1u, l = 9u; + // Silly, but necessary + check u8::le(a, j); + check uint::le(k, l); + let chars = enum_chars(a, j); + let ints = enum_uints(k, l); + + check same_length(chars, ints); + let ps = zip(chars, ints); + fail "the impossible happened"; +} \ No newline at end of file diff --git a/src/test/run-pass/zip-same-length.rs b/src/test/run-pass/zip-same-length.rs new file mode 100644 index 000000000000..64063fb716e3 --- /dev/null +++ b/src/test/run-pass/zip-same-length.rs @@ -0,0 +1,23 @@ +// In this case, the code should compile and should +// succeed at runtime +use std; +import std::uint; + +import std::vec::*; + +fn main() { + let a = 'a' as u8, j = 'j' as u8, k = 1u, l = 10u; + // Silly, but necessary + check le_u8(a, j); + check uint::le(k, l); + let chars = enum_chars(a, j); + let ints = enum_uints(k, l); + +/* + check same_length(chars, ints); + let ps = zip(chars, ints); + + assert (head(ps) == ('a', 1u)); + assert (last(ps) == ('j' as u8, 10u)); +*/ +} \ No newline at end of file