diff options
| author | Graydon Hoare <graydon@mozilla.com> | 2012-04-20 16:56:19 -0700 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2012-04-20 17:18:42 -0700 |
| commit | 355422ddbd3fb9c44374059696f8111f9501ba10 (patch) | |
| tree | 1629f1f7bbe9fe1f8f82b2ba90339c44278f1dec /src/rustc/metadata | |
| parent | da130598143841a726ac7818d65e1b6717cdebd9 (diff) | |
| download | rust-355422ddbd3fb9c44374059696f8111f9501ba10.tar.gz rust-355422ddbd3fb9c44374059696f8111f9501ba10.zip | |
Implement tydecode::parse_vstore.
Diffstat (limited to 'src/rustc/metadata')
| -rw-r--r-- | src/rustc/metadata/tydecode.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/rustc/metadata/tydecode.rs b/src/rustc/metadata/tydecode.rs index 139840f5616..c9b69f4df14 100644 --- a/src/rustc/metadata/tydecode.rs +++ b/src/rustc/metadata/tydecode.rs @@ -179,7 +179,20 @@ fn parse_proto(c: char) -> ast::proto { } fn parse_vstore(st: @pstate) -> ty::vstore { - st.tcx.sess.unimpl("tydecode::parse_vstore"); + assert next(st) == '/'; + + let c = peek(st); + if '0' <= c && c <= '9' { + let n = parse_int(st) as uint; + assert next(st) == '|'; + ret ty::vstore_fixed(n); + } + + alt check next(st) { + '~' { ty::vstore_uniq } + '@' { ty::vstore_box } + '&' { ty::vstore_slice(parse_region(st)) } + } } fn parse_substs(st: @pstate, conv: conv_did) -> ty::substs { |
