aboutsummaryrefslogtreecommitdiff
path: root/src/comp/pretty
diff options
context:
space:
mode:
authorTim Chevalier <[email protected]>2011-05-04 11:28:13 -0700
committerGraydon Hoare <[email protected]>2011-05-05 11:26:07 -0700
commite3a68e235cd077c35654f79013ad54da46d72fee (patch)
tree7838fc4a8937e2637cf7e3531d9c8e17feaff34b /src/comp/pretty
parentUpdate docs to reflect assert vs. check (diff)
downloadrust-e3a68e235cd077c35654f79013ad54da46d72fee.tar.xz
rust-e3a68e235cd077c35654f79013ad54da46d72fee.zip
Bring back "pred" syntax for writing predicates for check
This commit reinstates the requirement that the predicate in a "check" must be a manifest call to a special kind of function declared with the new "pred" keyword instead of "fn". Preds must have a boolean return type and can only call other preds; they can't have any effects (as enforced by the typechecker). The arguments to a predicate in a check expression must be slot variables or literals.
Diffstat (limited to 'src/comp/pretty')
-rw-r--r--src/comp/pretty/pprust.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/comp/pretty/pprust.rs b/src/comp/pretty/pprust.rs
index 62e6594b..c87a8679 100644
--- a/src/comp/pretty/pprust.rs
+++ b/src/comp/pretty/pprust.rs
@@ -790,7 +790,14 @@ fn print_pat(ps s, &@ast.pat pat) {
fn print_fn(ps s, ast.fn_decl decl, str name,
vec[ast.ty_param] typarams) {
- wrd1(s, "fn");
+ alt (decl.purity) {
+ case (ast.impure_fn) {
+ wrd1(s, "fn");
+ }
+ case (_) {
+ wrd1(s, "pred");
+ }
+ }
wrd(s.s, name);
print_type_params(s, typarams);
popen(s);