Document `NodeId`

This commit is contained in:
Camelid 2021-01-09 17:44:10 -08:00
parent f30733adb9
commit 2af4a01450
1 changed files with 9 additions and 3 deletions

View File

@ -2,6 +2,12 @@ use rustc_span::ExpnId;
use std::fmt;
rustc_index::newtype_index! {
/// Identifies an AST node.
///
/// This identifies top-level definitions, expressions, and everything in between.
/// This is later turned into [`DefId`] and `HirId` for the HIR.
///
/// [`DefId`]: rustc_span::def_id::DefId
pub struct NodeId {
DEBUG_FORMAT = "NodeId({})"
}
@ -9,12 +15,12 @@ rustc_index::newtype_index! {
rustc_data_structures::define_id_collections!(NodeMap, NodeSet, NodeId);
/// `NodeId` used to represent the root of the crate.
/// The [`NodeId`] used to represent the root of the crate.
pub const CRATE_NODE_ID: NodeId = NodeId::from_u32(0);
/// When parsing and doing expansions, we initially give all AST nodes this AST
/// node value. Then later, during expansion, we renumber them to have small,
/// positive ids.
/// [`NodeId`]. Then later, during expansion, we renumber them to have small,
/// positive IDs.
pub const DUMMY_NODE_ID: NodeId = NodeId::MAX;
impl NodeId {