pub struct PredicateSearcher<'tcx> { /* private fields */ }Expand description
Stores a set of predicates along with where they came from.
Implementations§
Source§impl<'tcx> PredicateSearcher<'tcx>
impl<'tcx> PredicateSearcher<'tcx>
Sourcepub fn new_for_owner(
tcx: TyCtxt<'tcx>,
owner_id: DefId,
options: BoundsOptions,
) -> Self
pub fn new_for_owner( tcx: TyCtxt<'tcx>, owner_id: DefId, options: BoundsOptions, ) -> Self
Initialize the elaborator with the predicates accessible within this item.
Sourcepub fn resolve(
&mut self,
tref: &PolyTraitRef<'tcx>,
warn: &impl Fn(&str),
) -> Result<ImplExpr<'tcx>, String>
pub fn resolve( &mut self, tref: &PolyTraitRef<'tcx>, warn: &impl Fn(&str), ) -> Result<ImplExpr<'tcx>, String>
Resolve the given trait reference in the local context.
Sourcepub fn resolve_item_required_predicates(
&mut self,
def_id: DefId,
generics: GenericArgsRef<'tcx>,
warn: &impl Fn(&str),
) -> Result<Vec<ImplExpr<'tcx>>, String>
pub fn resolve_item_required_predicates( &mut self, def_id: DefId, generics: GenericArgsRef<'tcx>, warn: &impl Fn(&str), ) -> Result<Vec<ImplExpr<'tcx>>, String>
Resolve the predicates required by the given item.
Sourcepub fn resolve_item_implied_predicates(
&mut self,
def_id: DefId,
generics: GenericArgsRef<'tcx>,
warn: &impl Fn(&str),
) -> Result<Vec<ImplExpr<'tcx>>, String>
pub fn resolve_item_implied_predicates( &mut self, def_id: DefId, generics: GenericArgsRef<'tcx>, warn: &impl Fn(&str), ) -> Result<Vec<ImplExpr<'tcx>>, String>
Resolve the predicates implied by the given item.
Sourcepub fn resolve_predicates(
&mut self,
generics: GenericArgsRef<'tcx>,
predicates: GenericPredicates<'tcx>,
warn: &impl Fn(&str),
) -> Result<Vec<ImplExpr<'tcx>>, String>
pub fn resolve_predicates( &mut self, generics: GenericArgsRef<'tcx>, predicates: GenericPredicates<'tcx>, warn: &impl Fn(&str), ) -> Result<Vec<ImplExpr<'tcx>>, String>
Apply the given generics to the provided clauses and resolve the trait references in the current context.
Auto Trait Implementations§
impl<'tcx> Freeze for PredicateSearcher<'tcx>
impl<'tcx> !RefUnwindSafe for PredicateSearcher<'tcx>
impl<'tcx> !Send for PredicateSearcher<'tcx>
impl<'tcx> !Sync for PredicateSearcher<'tcx>
impl<'tcx> Unpin for PredicateSearcher<'tcx>
impl<'tcx> !UnwindSafe for PredicateSearcher<'tcx>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more