pub struct Location {
pub stable_location: StableLocation,
pub notes: Vec<DiagnosticNote>,
pub inline_locations: Vec<StableLocation>,
}
Expand description
The Location struct represents the source location of a lowered object. It is used to store the most relevant source location for a lowering object.
Fields§
§stable_location: StableLocation
The stable location of the object.
notes: Vec<DiagnosticNote>
Additional notes about the origin of the object, for example if the object was auto-generated by the compiler. New notes are appended to the end of the vector.
inline_locations: Vec<StableLocation>
Function call locations where this value was inlined from.
Implementations§
source§impl Location
impl Location
pub fn new(stable_location: StableLocation) -> Self
sourcepub fn with_note(self, note: DiagnosticNote) -> Self
pub fn with_note(self, note: DiagnosticNote) -> Self
Creates a new Location with the given note as the last note.
sourcepub fn maybe_with_note(self, note: Option<DiagnosticNote>) -> Self
pub fn maybe_with_note(self, note: Option<DiagnosticNote>) -> Self
Creates a new Location with the given note as the last note.
sourcepub fn add_note_with_location(
self,
db: &dyn LoweringGroup,
text: &str,
location: LocationId,
) -> Self
pub fn add_note_with_location( self, db: &dyn LoweringGroup, text: &str, location: LocationId, ) -> Self
Creates a new Location with a note from the given text and location.
Trait Implementations§
source§impl DebugWithDb<dyn LoweringGroup> for Location
impl DebugWithDb<dyn LoweringGroup> for Location
source§impl<'a> Intern<'a, dyn LoweringGroup + 'a, LocationId> for Location
impl<'a> Intern<'a, dyn LoweringGroup + 'a, LocationId> for Location
fn intern( self, db: &(impl Upcast<dyn LoweringGroup + 'a> + ?Sized), ) -> LocationId
source§impl<'a> LookupIntern<'a, dyn LoweringGroup + 'a, Location> for LocationId
impl<'a> LookupIntern<'a, dyn LoweringGroup + 'a, Location> for LocationId
fn lookup_intern( &self, db: &(impl Upcast<dyn LoweringGroup + 'a> + ?Sized), ) -> Location
impl Eq for Location
impl StructuralPartialEq for Location
Auto Trait Implementations§
impl Freeze for Location
impl RefUnwindSafe for Location
impl Send for Location
impl Sync for Location
impl Unpin for Location
impl UnwindSafe for Location
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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 more