diff options
| author | Marijn Haverbeke <[email protected]> | 2011-03-28 20:46:31 +0200 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-03-31 14:41:40 +0000 |
| commit | f8393cc572db5a18b9412324a7501fadb48f9944 (patch) | |
| tree | 9ed9d5ce650bc6685b26b7ecec0be14589fd3515 /src/comp/middle | |
| parent | Preserve comments when pretty-printing. (diff) | |
| download | rust-f8393cc572db5a18b9412324a7501fadb48f9944.tar.xz rust-f8393cc572db5a18b9412324a7501fadb48f9944.zip | |
Add effect field to ast.ty_fn.
Still not used, except by the pretty-printer.
Diffstat (limited to 'src/comp/middle')
| -rw-r--r-- | src/comp/middle/fold.rs | 23 | ||||
| -rw-r--r-- | src/comp/middle/typeck.rs | 2 |
2 files changed, 13 insertions, 12 deletions
diff --git a/src/comp/middle/fold.rs b/src/comp/middle/fold.rs index d805c3cb..66176d79 100644 --- a/src/comp/middle/fold.rs +++ b/src/comp/middle/fold.rs @@ -60,6 +60,7 @@ type ast_fold[ENV] = vec[ast.ty_method] meths) -> @ty) fold_ty_obj, (fn(&ENV e, &span sp, + ast.effect eff, ast.proto proto, vec[rec(ast.mode mode, @ty ty)] inputs, @ty output) -> @ty) fold_ty_fn, @@ -388,13 +389,13 @@ fn fold_ty[ENV](&ENV env, ast_fold[ENV] fld, @ty t) -> @ty { case (ast.ty_obj(?meths)) { let vec[ast.ty_method] meths_ = vec(); for (ast.ty_method m in meths) { - auto tfn = fold_ty_fn(env_, fld, t.span, m.proto, + auto tfn = fold_ty_fn(env_, fld, t.span, m.effect, m.proto, m.inputs, m.output); alt (tfn.node) { - case (ast.ty_fn(?p, ?ins, ?out)) { + case (ast.ty_fn(?eff, ?p, ?ins, ?out)) { _vec.push[ast.ty_method] - (meths_, rec(proto=p, inputs=ins, output=out - with m)); + (meths_, rec(effect=eff, proto=p, inputs=ins, + output=out with m)); } } } @@ -406,8 +407,8 @@ fn fold_ty[ENV](&ENV env, ast_fold[ENV] fld, @ty t) -> @ty { ret fld.fold_ty_path(env_, t.span, pth_, ref_opt); } - case (ast.ty_fn(?proto, ?inputs, ?output)) { - ret fold_ty_fn(env_, fld, t.span, proto, inputs, output); + case (ast.ty_fn(?eff, ?proto, ?inputs, ?output)) { + ret fold_ty_fn(env_, fld, t.span, eff, proto, inputs, output); } case (ast.ty_chan(?ty)) { @@ -423,7 +424,7 @@ fn fold_ty[ENV](&ENV env, ast_fold[ENV] fld, @ty t) -> @ty { } fn fold_ty_fn[ENV](&ENV env, ast_fold[ENV] fld, &span sp, - ast.proto proto, + ast.effect eff, ast.proto proto, vec[rec(ast.mode mode, @ty ty)] inputs, @ty output) -> @ty { auto output_ = fold_ty(env, fld, output); @@ -433,7 +434,7 @@ fn fold_ty_fn[ENV](&ENV env, ast_fold[ENV] fld, &span sp, auto input_ = rec(ty=ty_ with input); inputs_ += vec(input_); } - ret fld.fold_ty_fn(env, sp, proto, inputs_, output_); + ret fld.fold_ty_fn(env, sp, eff, proto, inputs_, output_); } fn fold_decl[ENV](&ENV env, ast_fold[ENV] fld, @decl d) -> @decl { @@ -1131,10 +1132,10 @@ fn identity_fold_ty_obj[ENV](&ENV env, &span sp, } fn identity_fold_ty_fn[ENV](&ENV env, &span sp, - ast.proto proto, + ast.effect eff, ast.proto proto, vec[rec(ast.mode mode, @ty ty)] inputs, @ty output) -> @ty { - ret @respan(sp, ast.ty_fn(proto, inputs, output)); + ret @respan(sp, ast.ty_fn(eff, proto, inputs, output)); } fn identity_fold_ty_path[ENV](&ENV env, &span sp, ast.path p, @@ -1569,7 +1570,7 @@ fn new_identity_fold[ENV]() -> ast_fold[ENV] { fold_ty_tup = bind identity_fold_ty_tup[ENV](_,_,_), fold_ty_rec = bind identity_fold_ty_rec[ENV](_,_,_), fold_ty_obj = bind identity_fold_ty_obj[ENV](_,_,_), - fold_ty_fn = bind identity_fold_ty_fn[ENV](_,_,_,_,_), + fold_ty_fn = bind identity_fold_ty_fn[ENV](_,_,_,_,_,_), fold_ty_path = bind identity_fold_ty_path[ENV](_,_,_,_), fold_ty_chan = bind identity_fold_ty_chan[ENV](_,_,_), fold_ty_port = bind identity_fold_ty_port[ENV](_,_,_), diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index bf1b6c39..ff13ad93 100644 --- a/src/comp/middle/typeck.rs +++ b/src/comp/middle/typeck.rs @@ -337,7 +337,7 @@ fn ast_ty_to_ty(ty_getter getter, &@ast.ty ast_ty) -> @ty.t { sty = ty.ty_rec(flds); } - case (ast.ty_fn(?proto, ?inputs, ?output)) { + case (ast.ty_fn(_, ?proto, ?inputs, ?output)) { auto f = bind ast_arg_to_arg(getter, _); auto i = _vec.map[ast.ty_arg, arg](f, inputs); sty = ty.ty_fn(proto, i, ast_ty_to_ty(getter, output)); |