Skip to main content

ConfirmContext

Struct ConfirmContext 

Source
struct ConfirmContext<'a, 'db> {
    ctx: &'a mut InferenceContext<'db>,
    candidate: FunctionId,
    call_expr: ExprId,
}

Fields§

§ctx: &'a mut InferenceContext<'db>§candidate: FunctionId§call_expr: ExprId

Implementations§

Source§

impl<'a, 'db> ConfirmContext<'a, 'db>

Source

fn new( ctx: &'a mut InferenceContext<'db>, candidate: FunctionId, call_expr: ExprId, ) -> ConfirmContext<'a, 'db>

Source

fn db(&self) -> &'db dyn HirDatabase

Source

fn interner(&self) -> DbInterner<'db>

Source

fn infcx(&self) -> &InferCtxt<'db>

Source

fn confirm( &mut self, unadjusted_self_ty: Ty<'db>, pick: &Pick<'db>, generic_args: Option<&HirGenericArgs>, ) -> ConfirmResult<'db>

Source

fn adjust_self_ty( &mut self, unadjusted_self_ty: Ty<'db>, pick: &Pick<'db>, ) -> (Ty<'db>, Box<[Adjustment]>)

Source

fn fresh_receiver_args( &mut self, self_ty: Ty<'db>, pick: &Pick<'db>, ) -> GenericArgs<'db>

Returns a set of generic parameters for the method receiver where all type and region parameters are instantiated with fresh variables. This generic parameters does not include any parameters declared on the method itself.

Note that this generic parameters may include late-bound regions from the impl level. If so, these are instantiated later in the instantiate_method_sig routine.

Source

fn extract_existential_trait_ref<R, F>(&self, self_ty: Ty<'db>, closure: F) -> R
where F: FnMut(&ConfirmContext<'a, 'db>, Ty<'db>, PolyExistentialTraitRef<'db>) -> R,

Source

fn instantiate_method_args( &mut self, generic_args: Option<&HirGenericArgs>, parent_args: GenericArgs<'db>, ) -> GenericArgs<'db>

Source

fn unify_receivers( &mut self, self_ty: Ty<'db>, method_self_ty: Ty<'db>, pick: &Pick<'db>, )

Source

fn instantiate_method_sig<'c>( &mut self, pick: &Pick<'db>, all_args: &'c [GenericArg<'db>], ) -> (FnSig<'db>, impl Iterator<Item = Obligation<'db, Predicate<'db>>> + use<'c, 'db>)

Source

fn add_obligations( &mut self, sig: FnSig<'db>, all_args: GenericArgs<'db>, method_predicates: impl Iterator<Item = Obligation<'db, Predicate<'db>>>, )

Source

fn predicates_require_illegal_sized_bound( &self, predicates: impl Iterator<Item = Clause<'db>>, ) -> bool

Source

fn check_for_illegal_method_calls(&self)

Source

fn lint_shadowed_supertrait_items(&self, pick: &Pick<'_>)

Source

fn upcast( &self, source_trait_ref: PolyTraitRef<'db>, target_trait_def_id: TraitId, ) -> PolyTraitRef<'db>

Source

fn instantiate_binder_with_fresh_vars<T>(&self, value: Binder<'db, T>) -> T
where T: TypeFoldable<DbInterner<'db>> + Copy,

Auto Trait Implementations§

§

impl<'a, 'db> Freeze for ConfirmContext<'a, 'db>

§

impl<'a, 'db> !RefUnwindSafe for ConfirmContext<'a, 'db>

§

impl<'a, 'db> !Send for ConfirmContext<'a, 'db>

§

impl<'a, 'db> !Sync for ConfirmContext<'a, 'db>

§

impl<'a, 'db> Unpin for ConfirmContext<'a, 'db>

§

impl<'a, 'db> UnsafeUnpin for ConfirmContext<'a, 'db>

§

impl<'a, 'db> !UnwindSafe for ConfirmContext<'a, 'db>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T, R> CollectAndApply<T, R> for T

§

fn collect_and_apply<I, F>(iter: I, f: F) -> R
where I: Iterator<Item = T>, F: FnOnce(&[T]) -> R,

Equivalent to f(&iter.collect::<Vec<_>>()).

§

type Output = R

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> IntoBox<dyn Any> for T
where T: Any,

§

fn into_box(self) -> Box<dyn Any>

Convert self into the appropriate boxed form.
Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
§

impl<T> Lookup<T> for T

§

fn into_owned(self) -> T

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<I, T, U> Upcast<I, U> for T
where U: UpcastFrom<I, T>,

§

fn upcast(self, interner: I) -> U

§

impl<I, T> UpcastFrom<I, T> for T

§

fn upcast_from(from: T, _tcx: I) -> T

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more