diff options
| author | Patrick Walton <[email protected]> | 2011-03-21 11:44:08 -0700 |
|---|---|---|
| committer | Patrick Walton <[email protected]> | 2011-03-21 11:44:08 -0700 |
| commit | 84c0d8638ebf766cc4f6e442bbd4f01c5810795a (patch) | |
| tree | 916d6c4b84efd58682e323e773f782117fcff628 /src/comp/middle | |
| parent | rustc: Merge in type serialization and deserialization (diff) | |
| download | rust-84c0d8638ebf766cc4f6e442bbd4f01c5810795a.tar.xz rust-84c0d8638ebf766cc4f6e442bbd4f01c5810795a.zip | |
rustc: Update type serialization and deserialization for the "mutable?" change
Diffstat (limited to 'src/comp/middle')
| -rw-r--r-- | src/comp/middle/metadata.rs | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/comp/middle/metadata.rs b/src/comp/middle/metadata.rs index bff0ac94..06b527de 100644 --- a/src/comp/middle/metadata.rs +++ b/src/comp/middle/metadata.rs @@ -26,6 +26,16 @@ fn ty_str(@ty.t t, def_str ds) -> str { ret sty_str(t.struct, ds); } +fn mt_str(&ty.mt mt, def_str ds) -> str { + auto mut_str; + alt (mt.mut) { + case (ast.imm) { mut_str = ""; } + case (ast.mut) { mut_str = "m"; } + case (ast.maybe_mut) { mut_str = "?"; } + } + ret mut_str + ty_str(mt.ty, ds); +} + fn sty_str(ty.sty st, def_str ds) -> str { alt (st) { case (ty.ty_nil) {ret "n";} @@ -53,20 +63,20 @@ fn sty_str(ty.sty st, def_str ds) -> str { for (@ty.t t in tys) {acc += ty_str(t, ds);} ret acc + "]"; } - case (ty.ty_box(?t)) {ret "@" + ty_str(t, ds);} - case (ty.ty_vec(?t)) {ret "V" + ty_str(t, ds);} + case (ty.ty_box(?mt)) {ret "@" + mt_str(mt, ds);} + case (ty.ty_vec(?mt)) {ret "V" + mt_str(mt, ds);} case (ty.ty_port(?t)) {ret "P" + ty_str(t, ds);} case (ty.ty_chan(?t)) {ret "C" + ty_str(t, ds);} - case (ty.ty_tup(?tys)) { + case (ty.ty_tup(?mts)) { auto acc = "T["; - for (@ty.t t in tys) {acc += ty_str(t, ds);} + for (ty.mt mt in mts) {acc += mt_str(mt, ds);} ret acc + "]"; } case (ty.ty_rec(?fields)) { auto acc = "R["; for (ty.field field in fields) { acc += field.ident + "="; - acc += ty_str(field.ty, ds); + acc += mt_str(field.mt, ds); } ret acc + "]"; } |