Skip to main content

Spans

Struct Spans 

Source
pub struct Spans { /* private fields */ }
Expand description

The compiler spans one capture issued handles for.

A handle means “the token at this index of the table its producer built”, and this is that table when the producer is a proc macro. It is what lets a refusal land on the offending token rather than on the declaration’s first one, because it is what holds the compiler’s own spans.

Implementations§

Source§

impl Spans

Source

pub const fn empty() -> Self

A table that has issued nothing.

Source

pub fn at(&self, handle: SpanHandle) -> Span

The compiler span one handle names, or the invocation where this table does not reach it.

One lookup for every road that holds a handle, so a diagnostic the compiler composed and a capture this host refused point at their token the same way. Where the table does not reach, the invocation stands — never the declaration’s first span, which is a real token the observation is not about and would read exactly like an answer.

Trait Implementations§

Source§

impl Debug for Spans

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !Send for Spans

§

impl !Sync for Spans

§

impl Freeze for Spans

§

impl RefUnwindSafe for Spans

§

impl Unpin for Spans

§

impl UnsafeUnpin for Spans

§

impl UnwindSafe for Spans

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.