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.
11 lines
209 B
Rust
11 lines
209 B
Rust
// -*- rust -*-
|
|
|
|
// error-pattern: Constraint args must be
|
|
|
|
pred f(int q) -> bool { ret true; }
|
|
|
|
fn main() {
|
|
// should fail to typecheck, as pred args must be slot variables or literals
|
|
check f(42 * 17);
|
|
}
|