pub enum BuiltinPathElem {
Tuple(usize),
Str,
Closure,
Use,
AnonConst,
PromotedConst,
ClosureAsFn,
DropGlue,
VTable,
VTableMethod,
VTableDropShim,
}Expand description
Used for builtin items, rather than hardcoding these as strings.
Variants§
Tuple(usize)
The tuple of the given arity.
Str
str, which is a struct containing a [u8] the standard library expects
to be valid UTF-8.
Closure
A closure.
Use
A use declaration.
AnonConst
An anonymous constant.
PromotedConst
A constant that rustc promoted out of a body.
ClosureAsFn
The function item we generate for a closure that is cast to a function pointer.
DropGlue
The method we add to the Destruct trait to hold the drop glue.
VTable
The vtable struct of a trait, or the vtable global of a trait impl.
VTableMethod
The version of a method that is stored in a vtable.
VTableDropShim
The drop_in_place shim stored in a vtable.
Implementations§
Source§impl BuiltinPathElem
impl BuiltinPathElem
pub fn is_tuple(&self) -> bool
pub fn is_str(&self) -> bool
pub fn is_closure(&self) -> bool
pub fn is_use(&self) -> bool
pub fn is_anon_const(&self) -> bool
pub fn is_promoted_const(&self) -> bool
pub fn is_closure_as_fn(&self) -> bool
pub fn is_drop_glue(&self) -> bool
pub fn is_vtable(&self) -> bool
pub fn is_vtable_method(&self) -> bool
pub fn is_vtable_drop_shim(&self) -> bool
Source§impl BuiltinPathElem
impl BuiltinPathElem
pub fn as_tuple(&self) -> Option<&usize>
pub fn as_str(&self) -> Option<()>
pub fn as_closure(&self) -> Option<()>
pub fn as_use(&self) -> Option<()>
pub fn as_anon_const(&self) -> Option<()>
pub fn as_promoted_const(&self) -> Option<()>
pub fn as_closure_as_fn(&self) -> Option<()>
pub fn as_drop_glue(&self) -> Option<()>
pub fn as_vtable(&self) -> Option<()>
pub fn as_vtable_method(&self) -> Option<()>
pub fn as_vtable_drop_shim(&self) -> Option<()>
Source§impl BuiltinPathElem
impl BuiltinPathElem
pub fn as_tuple_mut(&mut self) -> Option<&mut usize>
pub fn as_str_mut(&mut self) -> Option<()>
pub fn as_closure_mut(&mut self) -> Option<()>
pub fn as_use_mut(&mut self) -> Option<()>
pub fn as_anon_const_mut(&mut self) -> Option<()>
pub fn as_promoted_const_mut(&mut self) -> Option<()>
pub fn as_closure_as_fn_mut(&mut self) -> Option<()>
pub fn as_drop_glue_mut(&mut self) -> Option<()>
pub fn as_vtable_mut(&mut self) -> Option<()>
pub fn as_vtable_method_mut(&mut self) -> Option<()>
pub fn as_vtable_drop_shim_mut(&mut self) -> Option<()>
Trait Implementations§
Source§impl AstVisitable for BuiltinPathElemwhere
BuiltinPathElem: PartialEq,
impl AstVisitable for BuiltinPathElemwhere
BuiltinPathElem: PartialEq,
Source§fn drive<V: VisitAst>(&self, v: &mut V) -> ControlFlow<V::Break>
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>
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 drive_two<V: ZipAst>(&self, other: &Self, v: &mut V) -> ControlFlow<V::Break>
fn drive_two<V: ZipAst>(&self, other: &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 dyn_visit<T: AstVisitable>(&self, f: impl FnMut(&T))where
Self: Sized,
fn dyn_visit<T: AstVisitable>(&self, f: impl FnMut(&T))where
Self: Sized,
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))where
Self: Sized,
fn dyn_visit_mut<T: AstVisitable>(&mut self, f: impl FnMut(&mut T))where
Self: Sized,
Visit all occurrences of that type inside
self, in pre-order traversal.Source§impl BodyVisitable for BuiltinPathElem
impl BodyVisitable for BuiltinPathElem
Source§fn drive_body<V: VisitBody>(&self, v: &mut V) -> ControlFlow<V::Break>
fn drive_body<V: VisitBody>(&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_body_mut<V: VisitBodyMut>(
&mut self,
v: &mut V,
) -> ControlFlow<V::Break>
fn drive_body_mut<V: VisitBodyMut>( &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 dyn_visit_in_body<T: BodyVisitable>(&self, f: impl FnMut(&T))where
Self: Sized,
fn dyn_visit_in_body<T: BodyVisitable>(&self, f: impl FnMut(&T))where
Self: Sized,
Visit all occurrences of that type inside
self, in pre-order traversal.Source§fn dyn_visit_in_body_mut<T: BodyVisitable>(&mut self, f: impl FnMut(&mut T))where
Self: Sized,
fn dyn_visit_in_body_mut<T: BodyVisitable>(&mut self, f: impl FnMut(&mut T))where
Self: Sized,
Visit all occurrences of that type inside
self, in pre-order traversal.Source§impl Clone for BuiltinPathElem
impl Clone for BuiltinPathElem
Source§fn clone(&self) -> BuiltinPathElem
fn clone(&self) -> BuiltinPathElem
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for BuiltinPathElem
Source§impl Debug for BuiltinPathElem
impl Debug for BuiltinPathElem
Source§impl<'de> Deserialize<'de> for BuiltinPathElem
impl<'de> Deserialize<'de> for BuiltinPathElem
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for BuiltinPathElem
Source§impl Hash for BuiltinPathElem
impl Hash for BuiltinPathElem
Source§impl PartialEq for BuiltinPathElem
impl PartialEq for BuiltinPathElem
Source§impl Serialize for BuiltinPathElem
impl Serialize for BuiltinPathElem
impl StructuralPartialEq for BuiltinPathElem
Auto Trait Implementations§
impl Freeze for BuiltinPathElem
impl RefUnwindSafe for BuiltinPathElem
impl Send for BuiltinPathElem
impl Sync for BuiltinPathElem
impl Unpin for BuiltinPathElem
impl UnsafeUnpin for BuiltinPathElem
impl UnwindSafe for BuiltinPathElem
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> Dedup for T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.impl<T> HashConsable for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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 moreimpl<T> Mappable for T
Source§impl<T> TyVisitable for Twhere
T: AstVisitable,
impl<T> TyVisitable for Twhere
T: AstVisitable,
Source§fn visit_vars(&mut self, v: &mut impl VarsVisitor)
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
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 must use
substitute_with_self or substitute_inner_binder, otherwise you’ll get panics.Source§fn substitute_inner_binder(self, generics: &GenericArgs) -> Self
fn substitute_inner_binder(self, generics: &GenericArgs) -> Self
Substitute the generic variables inside
self by replacing them with the provided values.
This is appropriate when substituting an inner binder.Source§fn substitute_explicits(self, generics: &GenericArgs) -> Self
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
fn substitute_with_self( self, generics: &GenericArgs, self_ref: &TraitRefKind, ) -> Self
Substitute the generic variables as well as the
TraitRefKind::SelfId trait ref.Source§fn substitute_with_tref(self, tref: &TraitRef) -> Self
fn substitute_with_tref(self, tref: &TraitRef) -> Self
Substitute the generic variables as well as the
TraitRefKind::SelfId trait ref.Source§fn try_substitute_with_tref(
self,
tref: &TraitRef,
) -> Result<Self, GenericsMismatch>
fn try_substitute_with_tref( self, tref: &TraitRef, ) -> Result<Self, GenericsMismatch>
Substitute the generic variables as well as the
TraitRefKind::SelfId trait ref.fn try_substitute( self, generics: &GenericArgs, ) -> Result<Self, GenericsMismatch>
fn try_substitute_with_self( self, generics: &GenericArgs, self_ref: &TraitRefKind, ) -> Result<Self, GenericsMismatch>
Source§fn move_under_binder(self) -> Self
fn move_under_binder(self) -> Self
Move under one binder.
Source§fn move_under_binders(self, depth: DeBruijnId) -> Self
fn move_under_binders(self, depth: DeBruijnId) -> Self
Move under
depth binders.Source§fn move_from_under_binder(self) -> Option<Self>
fn move_from_under_binder(self) -> Option<Self>
Move from under one binder.
Source§fn move_from_under_binders(self, depth: DeBruijnId) -> Option<Self>
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>
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.Source§fn replace_erased_regions(self, f: impl FnMut() -> Region) -> Self
fn replace_erased_regions(self, f: impl FnMut() -> Region) -> Self
Replace all the erased regions by the output of the provided function. Binders levels are
handled automatically.