Rollup merge of #78318 - bugadani:tyctx-impl, r=petrochenkov

TyCtxt: generate single impl block with `slice_interners` macro

Reduces the work needed to check overlapping impls a bit.
This commit is contained in:
Jonas Schievink 2020-10-24 22:39:59 +02:00 committed by GitHub
commit a8ff5a4e03
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2036,13 +2036,13 @@ pub fn $method(self, v: $ty) -> &'tcx $ty {
macro_rules! slice_interners {
($($field:ident: $method:ident($ty:ty)),+ $(,)?) => (
$(impl<'tcx> TyCtxt<'tcx> {
pub fn $method(self, v: &[$ty]) -> &'tcx List<$ty> {
impl<'tcx> TyCtxt<'tcx> {
$(pub fn $method(self, v: &[$ty]) -> &'tcx List<$ty> {
self.interners.$field.intern_ref(v, || {
Interned(List::from_arena(&*self.arena, v))
}).0
}
})+
})+
}
);
}