Skip to content

Commit 08cb62d

Browse files
committed
Use the same list for RefDecodable of Copy types
1 parent a67aa12 commit 08cb62d

2 files changed

Lines changed: 11 additions & 32 deletions

File tree

compiler/rustc_middle/src/arena.rs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,20 +140,20 @@ macro_rules! arena_types {
140140
arena_types!(rustc_arena::declare_arena);
141141

142142
#[inline]
143-
fn decode_arena_allocatable<'tcx, D, T>(decoder: &mut D) -> &'tcx T
143+
fn decode_arena_allocatable<'tcx, D, C, T>(decoder: &mut D) -> &'tcx T
144144
where
145145
D: TyDecoder<'tcx>,
146-
T: ArenaAllocatable<'tcx> + Decodable<D>,
146+
T: ArenaAllocatable<'tcx, C> + Decodable<D>,
147147
{
148148
let value: T = Decodable::decode(decoder);
149149
decoder.interner().arena.alloc(value)
150150
}
151151

152152
#[inline]
153-
fn decode_arena_allocatable_slice<'tcx, D, T>(decoder: &mut D) -> &'tcx [T]
153+
fn decode_arena_allocatable_slice<'tcx, D, C, T>(decoder: &mut D) -> &'tcx [T]
154154
where
155155
D: TyDecoder<'tcx>,
156-
T: ArenaAllocatable<'tcx> + Decodable<D>,
156+
T: ArenaAllocatable<'tcx, C> + Decodable<D>,
157157
{
158158
let values: Vec<T> = Decodable::decode(decoder);
159159
decoder.interner().arena.alloc_from_iter(values)
@@ -187,15 +187,22 @@ macro_rules! impl_ref_decodable_into_arena {
187187

188188
impl_ref_decodable_into_arena! {
189189
// tidy-alphabetical-start
190+
(rustc_middle::middle::exported_symbols::ExportedSymbol<'tcx>, rustc_middle::middle::exported_symbols::SymbolExportInfo),
190191
rustc_ast::InlineAsmTemplatePiece,
191192
rustc_ast::tokenstream::TokenStream,
192193
rustc_data_structures::unord::UnordMap<rustc_span::def_id::DefId, rustc_middle::ty::EarlyBinder<'tcx, Ty<'tcx>>>,
193194
rustc_data_structures::unord::UnordSet<rustc_span::def_id::LocalDefId>,
194195
rustc_hir::Attribute,
195196
rustc_index::IndexVec<rustc_middle::mir::Promoted, rustc_middle::mir::Body<'tcx>>,
197+
rustc_middle::middle::deduced_param_attrs::DeducedParamAttrs,
196198
rustc_middle::mir::Body<'tcx>,
197199
rustc_middle::traits::ImplSource<'tcx, ()>,
198200
rustc_middle::traits::specialization_graph::Graph,
199201
rustc_middle::ty::TypeckResults<'tcx>,
202+
rustc_middle::ty::Variance,
203+
rustc_span::Ident,
204+
rustc_span::Span,
205+
rustc_span::def_id::DefId,
206+
rustc_span::def_id::LocalDefId,
200207
// tidy-alphabetical-end
201208
}

compiler/rustc_middle/src/ty/codec.rs

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -481,34 +481,6 @@ macro_rules! __impl_decoder_methods {
481481
}
482482
}
483483

484-
macro_rules! impl_arena_copy_decoder {
485-
(<$tcx:tt> $($ty:ty,)*) => {
486-
$(impl<'tcx, D: TyDecoder<'tcx>> RefDecodable<'tcx, D> for $ty {
487-
#[inline]
488-
fn decode(decoder: &mut D) -> &'tcx Self {
489-
decoder.interner().arena.alloc(Decodable::decode(decoder))
490-
}
491-
}
492-
493-
impl<'tcx, D: TyDecoder<'tcx>> RefDecodable<'tcx, D> for [$ty] {
494-
#[inline]
495-
fn decode(decoder: &mut D) -> &'tcx Self {
496-
decoder.interner().arena.alloc_from_iter(<Vec<_> as Decodable<D>>::decode(decoder))
497-
}
498-
})*
499-
};
500-
}
501-
502-
impl_arena_copy_decoder! {<'tcx>
503-
Span,
504-
rustc_span::Ident,
505-
ty::Variance,
506-
rustc_span::def_id::DefId,
507-
rustc_span::def_id::LocalDefId,
508-
(rustc_middle::middle::exported_symbols::ExportedSymbol<'tcx>, rustc_middle::middle::exported_symbols::SymbolExportInfo),
509-
rustc_middle::middle::deduced_param_attrs::DeducedParamAttrs,
510-
}
511-
512484
#[macro_export]
513485
macro_rules! implement_ty_decoder {
514486
($DecoderName:ident <$($typaram:tt),*>) => {

0 commit comments

Comments
 (0)