Enum ra_ap_hir::TypeRef[][src]

pub enum TypeRef {
Show variants Never, Placeholder, Tuple(Vec<TypeRef, Global>), Path(Path), RawPtr(Box<TypeRef, Global>, Mutability), Reference(Box<TypeRef, Global>, Option<LifetimeRef>, Mutability), Array(Box<TypeRef, Global>, ConstScalar), Slice(Box<TypeRef, Global>), Fn(Vec<TypeRef, Global>, bool), ImplTrait(Vec<Interned<TypeBound>, Global>), DynTrait(Vec<Interned<TypeBound>, Global>), Macro(InFile<FileAstId<MacroCall>>), Error,
}
Expand description

Compare ty::Ty

Note: Most users of TypeRef that end up in the salsa database intern it using Interned<TypeRef> to save space. But notably, nested TypeRefs are not interned, since that does not seem to save any noticeable amount of memory.

Variants

Never
Placeholder
Tuple(Vec<TypeRef, Global>)
Path(Path)
Slice(Box<TypeRef, Global>)

A fn pointer. Last element of the vector is the return type.

Error

Implementations

impl TypeRef[src]

pub fn from_ast(ctx: &LowerCtx<'_>, node: Type) -> TypeRef[src]

Converts an ast::TypeRef to a hir::TypeRef.

pub fn walk(&self, f: &mut impl FnMut(&TypeRef))[src]

Trait Implementations

impl Clone for TypeRef[src]

pub fn clone(&self) -> TypeRef[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for TypeRef[src]

pub fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>[src]

Formats the value using the given formatter. Read more

impl Hash for TypeRef[src]

pub fn hash<__H>(&self, state: &mut __H) where
    __H: Hasher
[src]

Feeds this value into the given Hasher. Read more

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given Hasher. Read more

impl HirDisplay for TypeRef[src]

pub fn hir_fmt(&self, f: &mut HirFormatter<'_>) -> Result<(), HirDisplayError>[src]

fn into_displayable(
    &'a self,
    db: &'a (dyn HirDatabase + 'a),
    max_size: Option<usize>,
    omit_verbose_types: bool,
    display_target: DisplayTarget
) -> HirDisplayWrapper<'a, Self>
[src]

Returns a Displayable type that is human-readable.

fn display(
    &'a self,
    db: &'a (dyn HirDatabase + 'a)
) -> HirDisplayWrapper<'a, Self>
[src]

Returns a Displayable type that is human-readable. Use this for showing types to the user (e.g. diagnostics) Read more

fn display_truncated(
    &'a self,
    db: &'a (dyn HirDatabase + 'a),
    max_size: Option<usize>
) -> HirDisplayWrapper<'a, Self>
[src]

Returns a Displayable type that is human-readable and tries to be succinct. Use this for showing types to the user where space is constrained (e.g. doc popups) Read more

fn display_source_code(
    &'a self,
    db: &'a (dyn HirDatabase + 'a),
    module_id: ModuleId
) -> Result<String, DisplaySourceCodeError>
[src]

Returns a String representation of self that can be inserted into the given module. Use this when generating code (e.g. assists) Read more

fn display_test(
    &'a self,
    db: &'a (dyn HirDatabase + 'a)
) -> HirDisplayWrapper<'a, Self>
[src]

Returns a String representation of self for test purposes

impl Internable for TypeRef[src]

pub fn storage() -> &'static InternStorage<TypeRef>[src]

impl PartialEq<TypeRef> for TypeRef[src]

pub fn eq(&self, other: &TypeRef) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

pub fn ne(&self, other: &TypeRef) -> bool[src]

This method tests for !=.

impl Eq for TypeRef[src]

impl StructuralEq for TypeRef[src]

impl StructuralPartialEq for TypeRef[src]

Auto Trait Implementations

impl RefUnwindSafe for TypeRef

impl Send for TypeRef

impl Sync for TypeRef

impl Unpin for TypeRef

impl UnwindSafe for TypeRef

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> Cast for T

fn cast<U>(self, interner: &<U as HasInterner>::Interner) -> U where
    Self: CastTo<U>,
    U: HasInterner, 

Cast a value to type U using CastTo.

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

pub fn equivalent(&self, key: &K) -> bool[src]

Compare self to key and return true if they are equal.

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> Instrument for T[src]

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

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

fn in_current_span(self) -> Instrumented<Self>[src]

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T> Any for T where
    T: Any

impl<T> CloneAny for T where
    T: Any + Clone