pub struct WfSolver<'a, I: Interner> { /* private fields */ }Implementations§
Source§impl<'a, I> WfSolver<'a, I>where
I: Interner,
impl<'a, I> WfSolver<'a, I>where
I: Interner,
Sourcepub fn new(
db: &'a dyn RustIrDatabase<I>,
solver_builder: &'a dyn Fn() -> Box<dyn Solver<I>>,
) -> Self
pub fn new( db: &'a dyn RustIrDatabase<I>, solver_builder: &'a dyn Fn() -> Box<dyn Solver<I>>, ) -> Self
Constructs a new WfSolver.
pub fn verify_adt_decl(&self, adt_id: AdtId<I>) -> Result<(), WfError<I>>
pub fn verify_trait_impl(&self, impl_id: ImplId<I>) -> Result<(), WfError<I>>
pub fn verify_opaque_ty_decl( &self, opaque_ty_id: OpaqueTyId<I>, ) -> Result<(), WfError<I>>
Sourcepub fn verify_well_known_impl(
&self,
impl_id: ImplId<I>,
well_known: WellKnownTrait,
) -> Result<(), WfError<I>>
pub fn verify_well_known_impl( &self, impl_id: ImplId<I>, well_known: WellKnownTrait, ) -> Result<(), WfError<I>>
Verify builtin rules for well-known traits
Auto Trait Implementations§
impl<'a, I> Freeze for WfSolver<'a, I>
impl<'a, I> !RefUnwindSafe for WfSolver<'a, I>
impl<'a, I> !Send for WfSolver<'a, I>
impl<'a, I> !Sync for WfSolver<'a, I>
impl<'a, I> Unpin for WfSolver<'a, I>
impl<'a, I> !UnwindSafe for WfSolver<'a, I>
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> Cast for T
impl<T> Cast for T
Source§fn cast<U>(self, interner: <U as HasInterner>::Interner) -> Uwhere
Self: CastTo<U>,
U: HasInterner,
fn cast<U>(self, interner: <U as HasInterner>::Interner) -> Uwhere
Self: CastTo<U>,
U: HasInterner,
Cast a value to type
U using CastTo.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