Struct rustc::hir::HirId
[−]
[src]
pub struct HirId {
pub owner: DefIndex,
pub local_id: ItemLocalId,
}🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
A HirId uniquely identifies a node in the HIR of the current crate. It is
composed of the owner, which is the DefIndex of the directly enclosing
hir::Item, hir::TraitItem, or hir::ImplItem (i.e. the closest "item-like"),
and the local_id which is unique within the given owner.
This two-level structure makes for more stable values: One can move an item around within the source code, or add or remove stuff before it, without the local_id part of the HirId changing, which is a very useful property in incremental compilation where we have to persist things through changes to the code base.
Fields
owner: DefIndex
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
local_id: ItemLocalId
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Methods
impl HirId[src]
pub fn owner_def_id(self) -> DefId[src]
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
pub fn owner_local_def_id(self) -> LocalDefId[src]
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Trait Implementations
impl Copy for HirId[src]
impl Clone for HirId[src]
fn clone(&self) -> HirId[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 PartialEq for HirId[src]
fn eq(&self, __arg_0: &HirId) -> bool[src]
This method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, __arg_0: &HirId) -> bool[src]
This method tests for !=.
impl Eq for HirId[src]
impl Hash for HirId[src]
fn hash<__H: Hasher>(&self, __arg_0: &mut __H)[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]
H: Hasher,
Feeds a slice of this type into the given [Hasher]. Read more
impl PartialOrd for HirId[src]
fn partial_cmp(&self, __arg_0: &HirId) -> Option<Ordering>[src]
This method returns an ordering between self and other values if one exists. Read more
fn lt(&self, __arg_0: &HirId) -> bool[src]
This method tests less than (for self and other) and is used by the < operator. Read more
fn le(&self, __arg_0: &HirId) -> bool[src]
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
fn gt(&self, __arg_0: &HirId) -> bool[src]
This method tests greater than (for self and other) and is used by the > operator. Read more
fn ge(&self, __arg_0: &HirId) -> bool[src]
This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
impl Ord for HirId[src]
fn cmp(&self, __arg_0: &HirId) -> Ordering[src]
This method returns an Ordering between self and other. Read more
fn max(self, other: Self) -> Self1.21.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self1.21.0[src]
Compares and returns the minimum of two values. Read more
impl Debug for HirId[src]
fn fmt(&self, __arg_0: &mut Formatter) -> Result[src]
Formats the value using the given formatter. Read more
impl UseSpecializedEncodable for HirId[src]
fn default_encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>[src]
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Defaults to returning an error (see SpecializationError).
impl UseSpecializedDecodable for HirId[src]
fn default_decode<D: Decoder>(d: &mut D) -> Result<HirId, D::Error>[src]
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Defaults to returning an error (see SpecializationError).
impl<'gcx> HashStable<StableHashingContext<'gcx>> for HirId[src]
fn hash_stable<W: StableHasherResult>(
&self,
hcx: &mut StableHashingContext<'gcx>,
hasher: &mut StableHasher<W>
)[src]
&self,
hcx: &mut StableHashingContext<'gcx>,
hasher: &mut StableHasher<W>
)
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
impl<'gcx> ToStableHashKey<StableHashingContext<'gcx>> for HirId[src]
type KeyType = (DefPathHash, ItemLocalId)
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn to_stable_hash_key(
&self,
hcx: &StableHashingContext<'gcx>
) -> (DefPathHash, ItemLocalId)[src]
&self,
hcx: &StableHashingContext<'gcx>
) -> (DefPathHash, ItemLocalId)
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?