pub struct PlaceWithHirId<'tcx> {
pub hir_id: HirId,
pub place: Place<'tcx>,
}Expand description
A PlaceWithHirId represents how a value is located in memory. This does not
always correspond to a syntactic place expression. For example, when
processing a pattern, a Place can be used to refer to the sub-value
currently being inspected.
This is an HIR version of rustc_middle::mir::Place.
Fields§
§hir_id: HirIdHirId of the expression or pattern producing this value.
place: Place<'tcx>Information about the Place.
Implementations§
Source§impl<'tcx> PlaceWithHirId<'tcx>
impl<'tcx> PlaceWithHirId<'tcx>
pub fn new( hir_id: HirId, base_ty: Ty<'tcx>, base: PlaceBase, projections: Vec<Projection<'tcx>>, ) -> PlaceWithHirId<'tcx>
Trait Implementations§
Source§impl<'tcx> Clone for PlaceWithHirId<'tcx>
impl<'tcx> Clone for PlaceWithHirId<'tcx>
Source§fn clone(&self) -> PlaceWithHirId<'tcx>
fn clone(&self) -> PlaceWithHirId<'tcx>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'tcx> Debug for PlaceWithHirId<'tcx>
impl<'tcx> Debug for PlaceWithHirId<'tcx>
Source§impl<'tcx, __D> Decodable<__D> for PlaceWithHirId<'tcx>where
__D: TyDecoder<'tcx>,
impl<'tcx, __D> Decodable<__D> for PlaceWithHirId<'tcx>where
__D: TyDecoder<'tcx>,
fn decode(__decoder: &mut __D) -> PlaceWithHirId<'tcx>
Source§impl<'tcx, __E> Encodable<__E> for PlaceWithHirId<'tcx>where
__E: TyEncoder<'tcx>,
impl<'tcx, __E> Encodable<__E> for PlaceWithHirId<'tcx>where
__E: TyEncoder<'tcx>,
Source§impl<'tcx> Hash for PlaceWithHirId<'tcx>
impl<'tcx> Hash for PlaceWithHirId<'tcx>
Source§impl<'tcx, '__ctx> HashStable<StableHashingContext<'__ctx>> for PlaceWithHirId<'tcx>
impl<'tcx, '__ctx> HashStable<StableHashingContext<'__ctx>> for PlaceWithHirId<'tcx>
fn hash_stable( &self, __hcx: &mut StableHashingContext<'__ctx>, __hasher: &mut StableHasher<SipHasher128>, )
Source§impl<'tcx> PartialEq for PlaceWithHirId<'tcx>
impl<'tcx> PartialEq for PlaceWithHirId<'tcx>
impl<'tcx> Eq for PlaceWithHirId<'tcx>
impl<'tcx> StructuralPartialEq for PlaceWithHirId<'tcx>
Auto Trait Implementations§
impl<'tcx> DynSend for PlaceWithHirId<'tcx>
impl<'tcx> DynSync for PlaceWithHirId<'tcx>
impl<'tcx> Freeze for PlaceWithHirId<'tcx>
impl<'tcx> !RefUnwindSafe for PlaceWithHirId<'tcx>
impl<'tcx> Send for PlaceWithHirId<'tcx>
impl<'tcx> Sync for PlaceWithHirId<'tcx>
impl<'tcx> Unpin for PlaceWithHirId<'tcx>
impl<'tcx> UnsafeUnpin for PlaceWithHirId<'tcx>
impl<'tcx> !UnwindSafe for PlaceWithHirId<'tcx>
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§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<'tcx, T> DepNodeKey<'tcx> for T
impl<'tcx, T> DepNodeKey<'tcx> for T
default fn key_fingerprint_style() -> KeyFingerprintStyle
Source§default fn to_fingerprint(&self, tcx: TyCtxt<'tcx>) -> Fingerprint
default fn to_fingerprint(&self, tcx: TyCtxt<'tcx>) -> Fingerprint
This method turns a query key into an opaque
Fingerprint to be used
in DepNode.default fn to_debug_str(&self, tcx: TyCtxt<'tcx>) -> String
Source§default fn try_recover_key(_: TyCtxt<'tcx>, _: &DepNode) -> Option<T>
default fn try_recover_key(_: TyCtxt<'tcx>, _: &DepNode) -> Option<T>
This method tries to recover the query key from the given
DepNode,
something which is needed when forcing DepNodes during red-green
evaluation. The query system will only call this method if
fingerprint_style() is not FingerprintStyle::Opaque.
It is always valid to return None here, in which case incremental
compilation will treat the query as having changed instead of forcing it.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§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 moreSource§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
Source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
Source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 56 bytes