X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibrustc_metadata%2Fencoder.rs;h=dbf140afda24da66333c8838ef1218004a7e03d9;hb=9e810a277574dc77e8001cc955bfa19d6b574696;hp=588682a2420a94b38437a7a6f8ad0e4b54db2dfb;hpb=19e0ddbb9f29c27f907fd0d23b70fbd53aeb6efb;p=rust.git diff --git a/src/librustc_metadata/encoder.rs b/src/librustc_metadata/encoder.rs index 588682a2420..dbf140afda2 100644 --- a/src/librustc_metadata/encoder.rs +++ b/src/librustc_metadata/encoder.rs @@ -40,9 +40,9 @@ use rustc::hir::intravisit::{Visitor, NestedVisitorMap}; use rustc::hir::intravisit; -pub struct EncodeContext<'a, 'tcx: 'a> { +pub struct EncodeContext<'tcx> { opaque: opaque::Encoder, - pub tcx: TyCtxt<'a, 'tcx, 'tcx>, + pub tcx: TyCtxt<'tcx>, entries_index: Index<'tcx>, @@ -65,7 +65,7 @@ macro_rules! encoder_methods { } } -impl<'a, 'tcx> Encoder for EncodeContext<'a, 'tcx> { +impl<'tcx> Encoder for EncodeContext<'tcx> { type Error = ::Error; fn emit_unit(&mut self) -> Result<(), Self::Error> { @@ -95,13 +95,13 @@ fn emit_unit(&mut self) -> Result<(), Self::Error> { } } -impl<'a, 'tcx, T> SpecializedEncoder> for EncodeContext<'a, 'tcx> { +impl<'tcx, T> SpecializedEncoder> for EncodeContext<'tcx> { fn specialized_encode(&mut self, lazy: &Lazy) -> Result<(), Self::Error> { self.emit_lazy_distance(lazy.position, Lazy::::min_size()) } } -impl<'a, 'tcx, T> SpecializedEncoder> for EncodeContext<'a, 'tcx> { +impl<'tcx, T> SpecializedEncoder> for EncodeContext<'tcx> { fn specialized_encode(&mut self, seq: &LazySeq) -> Result<(), Self::Error> { self.emit_usize(seq.len)?; if seq.len == 0 { @@ -111,14 +111,14 @@ fn specialized_encode(&mut self, seq: &LazySeq) -> Result<(), Self::Error> { } } -impl<'a, 'tcx> SpecializedEncoder for EncodeContext<'a, 'tcx> { +impl<'tcx> SpecializedEncoder for EncodeContext<'tcx> { #[inline] fn specialized_encode(&mut self, cnum: &CrateNum) -> Result<(), Self::Error> { self.emit_u32(cnum.as_u32()) } } -impl<'a, 'tcx> SpecializedEncoder for EncodeContext<'a, 'tcx> { +impl<'tcx> SpecializedEncoder for EncodeContext<'tcx> { #[inline] fn specialized_encode(&mut self, def_id: &DefId) -> Result<(), Self::Error> { let DefId { @@ -131,14 +131,14 @@ fn specialized_encode(&mut self, def_id: &DefId) -> Result<(), Self::Error> { } } -impl<'a, 'tcx> SpecializedEncoder for EncodeContext<'a, 'tcx> { +impl<'tcx> SpecializedEncoder for EncodeContext<'tcx> { #[inline] fn specialized_encode(&mut self, def_index: &DefIndex) -> Result<(), Self::Error> { self.emit_u32(def_index.as_u32()) } } -impl<'a, 'tcx> SpecializedEncoder for EncodeContext<'a, 'tcx> { +impl<'tcx> SpecializedEncoder for EncodeContext<'tcx> { fn specialized_encode(&mut self, span: &Span) -> Result<(), Self::Error> { if span.is_dummy() { return TAG_INVALID_SPAN.encode(self) @@ -173,20 +173,20 @@ fn specialized_encode(&mut self, span: &Span) -> Result<(), Self::Error> { } } -impl<'a, 'tcx> SpecializedEncoder for EncodeContext<'a, 'tcx> { +impl<'tcx> SpecializedEncoder for EncodeContext<'tcx> { #[inline] fn specialized_encode(&mut self, def_id: &LocalDefId) -> Result<(), Self::Error> { self.specialized_encode(&def_id.to_def_id()) } } -impl<'a, 'tcx> SpecializedEncoder> for EncodeContext<'a, 'tcx> { +impl<'tcx> SpecializedEncoder> for EncodeContext<'tcx> { fn specialized_encode(&mut self, ty: &Ty<'tcx>) -> Result<(), Self::Error> { ty_codec::encode_with_shorthand(self, ty, |ecx| &mut ecx.type_shorthands) } } -impl<'a, 'tcx> SpecializedEncoder for EncodeContext<'a, 'tcx> { +impl<'tcx> SpecializedEncoder for EncodeContext<'tcx> { fn specialized_encode(&mut self, alloc_id: &interpret::AllocId) -> Result<(), Self::Error> { use std::collections::hash_map::Entry; let index = match self.interpret_allocs.entry(*alloc_id) { @@ -203,7 +203,7 @@ fn specialized_encode(&mut self, alloc_id: &interpret::AllocId) -> Result<(), Se } } -impl<'a, 'tcx> SpecializedEncoder> for EncodeContext<'a, 'tcx> { +impl<'tcx> SpecializedEncoder> for EncodeContext<'tcx> { fn specialized_encode(&mut self, predicates: &ty::GenericPredicates<'tcx>) -> Result<(), Self::Error> { @@ -211,14 +211,13 @@ fn specialized_encode(&mut self, } } -impl<'a, 'tcx> SpecializedEncoder for EncodeContext<'a, 'tcx> { +impl<'tcx> SpecializedEncoder for EncodeContext<'tcx> { fn specialized_encode(&mut self, f: &Fingerprint) -> Result<(), Self::Error> { f.encode_opaque(&mut self.opaque) } } -impl<'a, 'tcx, T: Encodable> SpecializedEncoder> -for EncodeContext<'a, 'tcx> { +impl<'tcx, T: Encodable> SpecializedEncoder> for EncodeContext<'tcx> { fn specialized_encode(&mut self, _: &mir::ClearCrossCrate) -> Result<(), Self::Error> { @@ -226,14 +225,13 @@ fn specialized_encode(&mut self, } } -impl<'a, 'tcx> TyEncoder for EncodeContext<'a, 'tcx> { +impl<'tcx> TyEncoder for EncodeContext<'tcx> { fn position(&self) -> usize { self.opaque.position() } } -impl<'a, 'tcx> EncodeContext<'a, 'tcx> { - +impl<'tcx> EncodeContext<'tcx> { fn emit_node R, R>(&mut self, f: F) -> R { assert_eq!(self.lazy_state, LazyState::NoNode); let pos = self.position(); @@ -498,6 +496,7 @@ fn encode_crate_root(&mut self) -> Lazy> { panic_runtime: attr::contains_name(&attrs, sym::panic_runtime), profiler_runtime: attr::contains_name(&attrs, sym::profiler_runtime), sanitizer_runtime: attr::contains_name(&attrs, sym::sanitizer_runtime), + symbol_mangling_version: tcx.sess.opts.debugging_opts.symbol_mangling_version, crate_deps, dylib_dependency_formats, @@ -543,7 +542,7 @@ fn encode_crate_root(&mut self) -> Lazy> { } } -impl EncodeContext<'_, 'tcx> { +impl EncodeContext<'tcx> { fn encode_variances_of(&mut self, def_id: DefId) -> LazySeq { debug!("EncodeContext::encode_variances_of({:?})", def_id); let tcx = self.tcx; @@ -1647,7 +1646,7 @@ fn encode_info_for_foreign_item(&mut self, } } -impl Visitor<'tcx> for EncodeContext<'_, 'tcx> { +impl Visitor<'tcx> for EncodeContext<'tcx> { fn nested_visit_map<'this>(&'this mut self) -> NestedVisitorMap<'this, 'tcx> { NestedVisitorMap::OnlyBodies(&self.tcx.hir()) } @@ -1697,7 +1696,7 @@ fn visit_macro_def(&mut self, macro_def: &'tcx hir::MacroDef) { } } -impl EncodeContext<'_, 'tcx> { +impl EncodeContext<'tcx> { fn encode_fields(&mut self, adt_def_id: DefId) { let def = self.tcx.adt_def(adt_def_id); for (variant_index, variant) in def.variants.iter_enumerated() { @@ -1816,12 +1815,12 @@ fn encode_addl_info_for_item(&mut self, item: &hir::Item) { } } -struct ImplVisitor<'a, 'tcx: 'a> { - tcx: TyCtxt<'a, 'tcx, 'tcx>, +struct ImplVisitor<'tcx> { + tcx: TyCtxt<'tcx>, impls: FxHashMap>, } -impl<'a, 'tcx, 'v> ItemLikeVisitor<'v> for ImplVisitor<'a, 'tcx> { +impl<'tcx, 'v> ItemLikeVisitor<'v> for ImplVisitor<'tcx> { fn visit_item(&mut self, item: &hir::Item) { if let hir::ItemKind::Impl(..) = item.node { let impl_id = self.tcx.hir().local_def_id_from_hir_id(item.hir_id); @@ -1864,9 +1863,7 @@ fn visit_impl_item(&mut self, _impl_item: &'v hir::ImplItem) { // will allow us to slice the metadata to the precise length that we just // generated regardless of trailing bytes that end up in it. -pub fn encode_metadata<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) - -> EncodedMetadata -{ +pub fn encode_metadata<'tcx>(tcx: TyCtxt<'tcx>) -> EncodedMetadata { let mut encoder = opaque::Encoder::new(vec![]); encoder.emit_raw_bytes(METADATA_HEADER); @@ -1908,7 +1905,7 @@ pub fn encode_metadata<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) EncodedMetadata { raw_data: result } } -pub fn get_repr_options<'a, 'tcx, 'gcx>(tcx: TyCtxt<'a, 'tcx, 'gcx>, did: DefId) -> ReprOptions { +pub fn get_repr_options<'tcx>(tcx: TyCtxt<'tcx>, did: DefId) -> ReprOptions { let ty = tcx.type_of(did); match ty.sty { ty::Adt(ref def, _) => return def.repr,