diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2014-12-10 06:15:06 -0500 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2014-12-14 11:11:55 -0500 |
| commit | 22f777ba2ecfcd8d914d37db310a6feb4ad5219e (patch) | |
| tree | c8b867087fe35ee35e239f2aa31ff944d46ca4a5 /src/librustc/metadata/decoder.rs | |
| parent | 5686a91914ac678ccb78220367daefe585a0d66a (diff) | |
| download | rust-22f777ba2ecfcd8d914d37db310a6feb4ad5219e.tar.gz rust-22f777ba2ecfcd8d914d37db310a6feb4ad5219e.zip | |
Parse `unsafe impl` but don't do anything particularly interesting with the results.
Diffstat (limited to 'src/librustc/metadata/decoder.rs')
| -rw-r--r-- | src/librustc/metadata/decoder.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index 37124286398..b78112f1f78 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -361,6 +361,15 @@ fn item_to_def_like(item: rbml::Doc, did: ast::DefId, cnum: ast::CrateNum) } } +fn parse_unsafety(item_doc: rbml::Doc) -> ast::Unsafety { + let unsafety_doc = reader::get_doc(item_doc, tag_unsafety); + if reader::doc_as_u8(unsafety_doc) != 0 { + ast::Unsafety::Unsafe + } else { + ast::Unsafety::Normal + } +} + pub fn get_trait_def<'tcx>(cdata: Cmd, item_id: ast::NodeId, tcx: &ty::ctxt<'tcx>) -> ty::TraitDef<'tcx> @@ -368,10 +377,7 @@ pub fn get_trait_def<'tcx>(cdata: Cmd, let item_doc = lookup_item(item_id, cdata.data()); let generics = doc_generics(item_doc, tcx, cdata, tag_item_generics); let bounds = trait_def_bounds(item_doc, tcx, cdata); - let unsafety = match reader::maybe_get_doc(item_doc, tag_unsafety) { - Some(_) => ast::Unsafety::Unsafe, - None => ast::Unsafety::Normal, - }; + let unsafety = parse_unsafety(item_doc); ty::TraitDef { unsafety: unsafety, |
