Implement assumed_wf_types for RPITITs' implementations
This commit is contained in:
parent
349a2372ed
commit
50d21091ee
6 changed files with 102 additions and 33 deletions
|
@ -246,6 +246,7 @@ provide! { tcx, def_id, other, cdata,
|
|||
debug_assert_eq!(tcx.def_kind(def_id), DefKind::OpaqueTy);
|
||||
cdata.root.tables.is_type_alias_impl_trait.get(cdata, def_id.index)
|
||||
}
|
||||
assumed_wf_types_for_rpitit => { table }
|
||||
collect_return_position_impl_trait_in_trait_tys => {
|
||||
Ok(cdata
|
||||
.root
|
||||
|
|
|
@ -1560,6 +1560,12 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> {
|
|||
}
|
||||
if let Some(rpitit_info) = item.opt_rpitit_info {
|
||||
record!(self.tables.opt_rpitit_info[def_id] <- rpitit_info);
|
||||
if matches!(rpitit_info, ty::ImplTraitInTraitData::Trait { .. }) {
|
||||
record_array!(
|
||||
self.tables.assumed_wf_types_for_rpitit[def_id]
|
||||
<- self.tcx.assumed_wf_types_for_rpitit(def_id)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -457,6 +457,7 @@ define_tables! {
|
|||
trait_impl_trait_tys: Table<DefIndex, LazyValue<FxHashMap<DefId, ty::EarlyBinder<Ty<'static>>>>>,
|
||||
doc_link_resolutions: Table<DefIndex, LazyValue<DocLinkResMap>>,
|
||||
doc_link_traits_in_scope: Table<DefIndex, LazyArray<DefId>>,
|
||||
assumed_wf_types_for_rpitit: Table<DefIndex, LazyArray<(Ty<'static>, Span)>>,
|
||||
}
|
||||
|
||||
#[derive(TyEncodable, TyDecodable)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue