DeclRef

Struct DeclRef 

Source
pub struct DeclRef<Id> {
    pub id: Id,
    pub generics: BoxedArgs,
    pub trait_ref: Option<TraitRef>,
}
Expand description

A generic *DeclRef-shaped struct, used when we’re generic over the type of item.

Fields§

§id: Id§generics: BoxedArgs§trait_ref: Option<TraitRef>

If the item is a trait associated item, generics are only those of the item, and this contains a reference to the trait.

Implementations§

Source§

impl DeclRef<ItemId>

Source

pub fn try_convert_id<Id>( self, ) -> Result<DeclRef<Id>, <ItemId as TryInto<Id>>::Error>
where ItemId: TryInto<Id>,

Trait Implementations§

Source§

impl<Id: AstVisitable> AstVisitable for DeclRef<Id>

Source§

fn drive<V: VisitAst>(&self, v: &mut V) -> ControlFlow<V::Break>

Recursively visit this type with the provided visitor. This calls the visitor’s visit_$any method if it exists, otherwise visit_inner.
Source§

fn drive_mut<V: VisitAstMut>(&mut self, v: &mut V) -> ControlFlow<V::Break>

Recursively visit this type with the provided visitor. This calls the visitor’s visit_$any method if it exists, otherwise visit_inner.
Source§

fn name(&self) -> &'static str

The name of the type, used for debug logging.
Source§

fn dyn_visit<T: AstVisitable>(&self, f: impl FnMut(&T))

Visit all occurrences of that type inside self, in pre-order traversal.
Source§

fn dyn_visit_mut<T: AstVisitable>(&mut self, f: impl FnMut(&mut T))

Visit all occurrences of that type inside self, in pre-order traversal.
Source§

impl<Id: Clone> Clone for DeclRef<Id>

Source§

fn clone(&self) -> DeclRef<Id>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<Id: Debug> Debug for DeclRef<Id>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'s, Id, V> Drive<'s, V> for DeclRef<Id>
where V: Visitor + Visit<'s, Id> + Visit<'s, BoxedArgs> + Visit<'s, Option<TraitRef>>,

Source§

fn drive_inner(&'s self, visitor: &mut V) -> ControlFlow<V::Break>

Call v.visit() on the immediate contents of self.
Source§

impl<'s, Id, V> DriveMut<'s, V> for DeclRef<Id>
where V: Visitor + VisitMut<'s, Id> + VisitMut<'s, BoxedArgs> + VisitMut<'s, Option<TraitRef>>,

Source§

fn drive_inner_mut(&'s mut self, visitor: &mut V) -> ControlFlow<V::Break>

Call v.visit() on the immediate contents of self.
Source§

impl From<DeclRef<FunDeclId>> for FunDeclRef

Source§

fn from(item: DeclRef<FunDeclId>) -> Self

Converts to this type from the input type.
Source§

impl From<DeclRef<FunId>> for MaybeBuiltinFunDeclRef

Source§

fn from(item: DeclRef<FunId>) -> Self

Converts to this type from the input type.
Source§

impl From<DeclRef<GlobalDeclId>> for GlobalDeclRef

Source§

fn from(item: DeclRef<GlobalDeclId>) -> Self

Converts to this type from the input type.
Source§

impl From<DeclRef<TraitDeclId>> for TraitDeclRef

Source§

fn from(item: DeclRef<TraitDeclId>) -> Self

Converts to this type from the input type.
Source§

impl From<DeclRef<TraitImplId>> for TraitImplRef

Source§

fn from(item: DeclRef<TraitImplId>) -> Self

Converts to this type from the input type.
Source§

impl From<DeclRef<TypeId>> for TypeDeclRef

Source§

fn from(item: DeclRef<TypeId>) -> Self

Converts to this type from the input type.
Source§

impl TryFrom<DeclRef<ItemId>> for FnPtr

Source§

type Error = ()

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

fn try_from(item: DeclRef<ItemId>) -> Result<Self, ()>

Performs the conversion.
Source§

impl TryFrom<DeclRef<ItemId>> for FunDeclRef

Source§

type Error = ()

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

fn try_from(item: DeclRef<ItemId>) -> Result<Self, ()>

Performs the conversion.
Source§

impl TryFrom<DeclRef<ItemId>> for GlobalDeclRef

Source§

type Error = ()

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

fn try_from(item: DeclRef<ItemId>) -> Result<Self, ()>

Performs the conversion.
Source§

impl TryFrom<DeclRef<ItemId>> for MaybeBuiltinFunDeclRef

Source§

type Error = ()

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

fn try_from(item: DeclRef<ItemId>) -> Result<Self, ()>

Performs the conversion.
Source§

impl TryFrom<DeclRef<ItemId>> for TraitDeclRef

Source§

type Error = ()

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

fn try_from(item: DeclRef<ItemId>) -> Result<Self, ()>

Performs the conversion.
Source§

impl TryFrom<DeclRef<ItemId>> for TraitImplRef

Source§

type Error = ()

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

fn try_from(item: DeclRef<ItemId>) -> Result<Self, ()>

Performs the conversion.
Source§

impl TryFrom<DeclRef<ItemId>> for TypeDeclRef

Source§

type Error = ()

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

fn try_from(item: DeclRef<ItemId>) -> Result<Self, ()>

Performs the conversion.

Auto Trait Implementations§

§

impl<Id> Freeze for DeclRef<Id>
where Id: Freeze,

§

impl<Id> RefUnwindSafe for DeclRef<Id>
where Id: RefUnwindSafe,

§

impl<Id> Send for DeclRef<Id>
where Id: Send,

§

impl<Id> Sync for DeclRef<Id>
where Id: Sync,

§

impl<Id> Unpin for DeclRef<Id>
where Id: Unpin,

§

impl<Id> UnwindSafe for DeclRef<Id>
where Id: UnwindSafe,

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

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<I, T> ExtractContext<I, ()> for T

§

fn extract_context(self, _original_input: I)

Given the context attached to a nom error, and given the original input to the nom parser, extract more the useful context information. Read more
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.

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<I> RecreateContext<I> for I

§

fn recreate_context(_original_input: I, tail: I) -> I

Given the original input, as well as the context reported by nom, recreate a context in the original string where the error occurred. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.
Source§

impl<T> TyVisitable for T
where T: AstVisitable,

Source§

fn visit_vars(&mut self, v: &mut impl VarsVisitor)

Visit the variables contained in self, as seen from the outside of self. This means that any variable bound inside self will be skipped, and all the seen De Bruijn indices will count from the outside of self.
Source§

fn substitute(self, generics: &GenericArgs) -> Self

Substitute the generic variables inside self by replacing them with the provided values. Note: if self is an item that comes from a TraitDecl, you most likely want to use substitute_with_self.
Source§

fn substitute_explicits(self, generics: &GenericArgs) -> Self

Substitute only the type, region and const generic args.
Source§

fn substitute_with_self( self, generics: &GenericArgs, self_ref: &TraitRefKind, ) -> Self

Substitute the generic variables as well as the TraitRefKind::Self trait ref.
Source§

fn try_substitute( self, generics: &GenericArgs, ) -> Result<Self, GenericsMismatch>

Source§

fn try_substitute_with_self( self, generics: &GenericArgs, self_ref: &TraitRefKind, ) -> Result<Self, GenericsMismatch>

Source§

fn move_under_binder(self) -> Self

Move under one binder.
Source§

fn move_under_binders(self, depth: DeBruijnId) -> Self

Move under depth binders.
Source§

fn move_from_under_binder(self) -> Option<Self>

Move from under one binder.
Source§

fn move_from_under_binders(self, depth: DeBruijnId) -> Option<Self>

Move the value out of depth binders. Returns None if it contains a variable bound in one of these depth binders.
Source§

fn visit_db_id<B>( &mut self, f: impl FnMut(&mut DeBruijnId) -> ControlFlow<B>, ) -> ControlFlow<B>

Visit the de Bruijn ids contained in self, as seen from the outside of self. This means that any variable bound inside self will be skipped, and all the seen indices will count from the outside of self.
§

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