From 0c19c8e18f5e145c379fe4b50e5ea8d44fe4969f Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Fri, 3 Dec 2010 18:03:28 -0800 Subject: Parse layer and effect annotations. --- src/comp/middle/fold.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/comp/middle/fold.rs') diff --git a/src/comp/middle/fold.rs b/src/comp/middle/fold.rs index 8ec0bd2f..60c5f44b 100644 --- a/src/comp/middle/fold.rs +++ b/src/comp/middle/fold.rs @@ -185,7 +185,8 @@ type ast_fold[ENV] = (fn(&ENV e, &span sp, &ast.block_) -> block) fold_block, - (fn(&ENV e, vec[arg] inputs, + (fn(&ENV e, ast.effect effect, + vec[arg] inputs, @ty output, &block body) -> ast._fn) fold_fn, (fn(&ENV e, &ast._mod m) -> ast._mod) fold_mod, @@ -570,7 +571,7 @@ fn fold_fn[ENV](&ENV env, ast_fold[ENV] fld, &ast._fn f) -> ast._fn { auto output = fold_ty[ENV](env, fld, f.output); auto body = fold_block[ENV](env, fld, f.body); - ret fld.fold_fn(env, inputs, output, body); + ret fld.fold_fn(env, f.effect, inputs, output, body); } fn fold_item[ENV](&ENV env, ast_fold[ENV] fld, @item i) -> @item { @@ -891,10 +892,11 @@ fn identity_fold_block[ENV](&ENV e, &span sp, &ast.block_ blk) -> block { } fn identity_fold_fn[ENV](&ENV e, + ast.effect effect, vec[arg] inputs, @ast.ty output, &block body) -> ast._fn { - ret rec(inputs=inputs, output=output, body=body); + ret rec(effect=effect, inputs=inputs, output=output, body=body); } fn identity_fold_mod[ENV](&ENV e, &ast._mod m) -> ast._mod { @@ -1007,7 +1009,7 @@ fn new_identity_fold[ENV]() -> ast_fold[ENV] { fold_item_tag = bind identity_fold_item_tag[ENV](_,_,_,_,_,_), fold_block = bind identity_fold_block[ENV](_,_,_), - fold_fn = bind identity_fold_fn[ENV](_,_,_,_), + fold_fn = bind identity_fold_fn[ENV](_,_,_,_,_), fold_mod = bind identity_fold_mod[ENV](_,_), fold_crate = bind identity_fold_crate[ENV](_,_,_), -- cgit v1.2.3