-//! FIXME: write short doc here
+//! In rust, it is possible to have a value, a type and a macro with the same
+//! name without conflicts.
+//!
+//! `PerNs` (per namespace) captures this.
use hir_expand::MacroDefId;
// FIXME how to store these best
#[derive(Debug, Clone)]
-pub(crate) struct ModuleItemMap {
+struct ModuleItemMap {
crate_def_map: Arc<CrateDefMap>,
module_id: LocalModuleId,
}
#[derive(Debug, Clone)]
-pub(crate) struct ExprScope {
+struct ExprScope {
owner: DefWithBodyId,
expr_scopes: Arc<ExprScopes>,
scope_id: ScopeId,
}
#[derive(Debug, Clone)]
-pub(crate) enum Scope {
+enum Scope {
/// All the items and imported names of a module
ModuleScope(ModuleItemMap),
/// Brings the generic parameters of an item into scope