7fb35ecf84
This involved, in part, changing the ast::def type so that a def_fn has a "purity" field. This lets the typechecker determine whether functions defined in other crates are pure. It also required updating some error messages in tests. As a test for cross-crate constrained functions, I added a safe_slice function to std::str (slice(), with one of the asserts replaced with a function precondition) and some test cases (various versions of fn-constraint.rs) that call it. Also, I changed "fn" to "pred" for some of the boolean functions in std::uint.
9 lines
199 B
Rust
9 lines
199 B
Rust
// error-pattern: Unsatisfied precondition constraint (for example, le(a, b)
|
|
use std;
|
|
import std::str::*;
|
|
|
|
fn main() {
|
|
let uint a = 4u;
|
|
let uint b = 1u;
|
|
log_err (safe_slice("kitties", a, b));
|
|
} |