"{}[{}]",
component.data.as_interned_str(),
component.disambiguator)
- .unwrap();
+ .unwrap();
}
}
"{}[{}]",
component.data.as_interned_str(),
component.disambiguator)
- .unwrap();
+ .unwrap();
}
}
s
// they are treated specially by the `def_path` function.
/// The crate root (marker)
CrateRoot,
- // Catch-all for random DefId things like DUMMY_NODE_ID
+ // Catch-all for random DefId things like `DUMMY_NODE_ID`
Misc,
// Different kinds of items and item-like things:
/// An impl
AnonConst,
/// An `impl Trait` type node
ImplTrait,
- /// GlobalMetaData identifies a piece of crate metadata that is global to
- /// a whole crate (as opposed to just one item). GlobalMetaData components
- /// are only supposed to show up right below the crate root.
+ /// Identifies a piece of crate metadata that is global to a whole crate
+ /// (as opposed to just one item). `GlobalMetaData` components are only
+ /// supposed to show up right below the crate root.
GlobalMetaData(InternedString),
}
self.node_to_hir_id[node_id]
}
+ #[inline]
+ pub fn def_index_to_node_id(&self, def_index: DefIndex) -> ast::NodeId {
+ self.as_local_node_id(DefId::local(def_index)).unwrap()
+ }
+
/// Retrieves the span of the given `DefId` if `DefId` is in the local crate, the span exists
/// and it's not `DUMMY_SP`.
#[inline]
root_index
}
- /// Add a definition with a parent definition.
+ /// Adds a definition with a parent definition.
pub fn create_def_with_parent(&mut self,
parent: DefIndex,
node_id: ast::NodeId,
GlobalMetaData(name) => {
return name
}
- // note that this does not show up in user printouts
+ // Note that this does not show up in user print-outs.
CrateRoot => sym::double_braced_crate,
Impl => sym::double_braced_impl,
Misc => sym::double_braced_misc,
}
}
+/// Evaluates to the number of tokens passed to it.
+///
+/// Logarithmic counting: every one or two recursive expansions, the number of
+/// tokens to count is divided by two, instead of being reduced by one.
+/// Therefore, the recursion depth is the binary logarithm of the number of
+/// tokens to count, and the expanded tree is likewise very small.
macro_rules! count {
- () => (0usize);
- ( $x:tt $($xs:tt)* ) => (1usize + count!($($xs)*));
+ () => (0usize);
+ ($one:tt) => (1usize);
+ ($($pairs:tt $_p:tt)*) => (count!($($pairs)*) << 1usize);
+ ($odd:tt $($rest:tt)*) => (count!($($rest)*) | 1usize);
}
// We define the GlobalMetaDataKind enum with this macro because we want to