rustc_metadata: Encode list of all crate's traits into metadata

This commit is contained in:
Vadim Petrochenkov
2021-12-24 11:09:32 +08:00
parent e91ad5fc62
commit 90e371027e
12 changed files with 96 additions and 113 deletions

View File

@@ -1577,6 +1577,12 @@ impl<'tcx> TyCtxt<'tcx> {
pub fn const_eval_limit(self) -> Limit {
self.limits(()).const_eval_limit
}
pub fn all_traits(self) -> impl Iterator<Item = DefId> + 'tcx {
iter::once(LOCAL_CRATE)
.chain(self.crates(()).iter().copied())
.flat_map(move |cnum| self.traits_in_crate(cnum).iter().copied())
}
}
/// A trait implemented for all `X<'a>` types that can be safely and