diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2011-12-09 16:56:48 -0800 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2011-12-14 14:32:18 -0800 |
| commit | aa1cd61c84199c8a1e44645e4af3f8c15c6dd018 (patch) | |
| tree | 96473fff23d43ceb7527e4bad10ef81e631e429f /src/comp/metadata | |
| parent | c28ada0368de78034e0930e01406f5e03a70d610 (diff) | |
| download | rust-aa1cd61c84199c8a1e44645e4af3f8c15c6dd018.tar.gz rust-aa1cd61c84199c8a1e44645e4af3f8c15c6dd018.zip | |
push changes through to get things compiling, if not running.
Diffstat (limited to 'src/comp/metadata')
| -rw-r--r-- | src/comp/metadata/tydecode.rs | 23 | ||||
| -rw-r--r-- | src/comp/metadata/tyencode.rs | 1 |
2 files changed, 14 insertions, 10 deletions
diff --git a/src/comp/metadata/tydecode.rs b/src/comp/metadata/tydecode.rs index 0bf44376b63..434564f9c0d 100644 --- a/src/comp/metadata/tydecode.rs +++ b/src/comp/metadata/tydecode.rs @@ -164,6 +164,13 @@ fn parse_constr<copy T>(st: @pstate, sd: str_def, pser: arg_parser<T>) -> ret @respan(sp, {path: pth, args: args, id: def}); } +fn parse_ty_rust_fn(st: @pstate, sd: str_def, p: ast::proto) -> ty::t { + let func = parse_ty_fn(st, sd); + ret ty::mk_fn(st.tcx, p, + func.args, func.ty, func.cf, + func.cs); +} + fn parse_ty(st: @pstate, sd: str_def) -> ty::t { alt next(st) as char { 'n' { ret ty::mk_nil(st.tcx); } @@ -235,21 +242,17 @@ fn parse_ty(st: @pstate, sd: str_def) -> ty::t { st.pos = st.pos + 1u; ret ty::mk_tup(st.tcx, params); } + 's' { + ret parse_ty_rust_fn(st, sd, ast::proto_send); + } 'F' { - let func = parse_ty_fn(st, sd); - ret ty::mk_fn(st.tcx, ast::proto_shared(ast::sugar_normal), - func.args, func.ty, func.cf, - func.cs); + ret parse_ty_rust_fn(st, sd, ast::proto_shared(ast::sugar_normal)); } 'f' { - let func = parse_ty_fn(st, sd); - ret ty::mk_fn(st.tcx, ast::proto_bare, func.args, func.ty, func.cf, - func.cs); + ret parse_ty_rust_fn(st, sd, ast::proto_bare); } 'B' { - let func = parse_ty_fn(st, sd); - ret ty::mk_fn(st.tcx, ast::proto_block, func.args, func.ty, func.cf, - func.cs); + ret parse_ty_rust_fn(st, sd, ast::proto_block); } 'N' { let func = parse_ty_fn(st, sd); diff --git a/src/comp/metadata/tyencode.rs b/src/comp/metadata/tyencode.rs index 9fb37e4f4bf..18ab46d7ef3 100644 --- a/src/comp/metadata/tyencode.rs +++ b/src/comp/metadata/tyencode.rs @@ -193,6 +193,7 @@ fn enc_sty(w: io::writer, cx: @ctxt, st: ty::sty) { } fn enc_proto(w: io::writer, proto: proto) { alt proto { + proto_send. { w.write_char('s'); } proto_shared(_) { w.write_char('F'); } proto_block. { w.write_char('B'); } proto_bare. { w.write_char('f'); } |
