1
Fork 0

Add a convenience function

This commit is contained in:
Oli Scherer 2023-04-25 11:43:08 +00:00
parent 84a43f0e3a
commit e2daccc4ac
2 changed files with 13 additions and 8 deletions

View file

@ -2476,6 +2476,18 @@ impl<'tcx> TyCtxt<'tcx> {
}
}
/// Returns the `DefId` of the item within which the `impl Trait` is declared.
/// For type-alias-impl-trait this is the `type` alias.
/// For impl-trait-in-assoc-type this is the assoc type.
/// For return-position-impl-trait this is the function.
pub fn impl_trait_parent(self, mut def_id: LocalDefId) -> LocalDefId {
// Find the surrounding item (type alias or assoc type)
while let DefKind::OpaqueTy = self.def_kind(def_id) {
def_id = self.local_parent(def_id);
}
def_id
}
pub fn impl_method_has_trait_impl_trait_tys(self, def_id: DefId) -> bool {
if self.def_kind(def_id) != DefKind::AssocFn {
return false;