body::scope::ExprScopes,
builtin_type::BuiltinType,
docs::Documentation,
- nameres::per_ns::PerNs,
+ per_ns::PerNs,
resolver::{HasResolver, TypeNs},
type_ref::TypeRef,
ContainerId, HasModule, ImplId, LocalEnumVariantId, LocalImportId, LocalModuleId,
pub mod data;
pub mod lang_item;
pub mod docs;
+pub mod per_ns;
mod trace;
+mod nameres;
#[cfg(test)]
mod test_db;
#[cfg(test)]
mod marks;
-// FIXME: this should be private
-pub mod nameres;
-
use std::hash::{Hash, Hasher};
use hir_expand::{ast_id_map::FileAstId, db::AstDatabase, AstId, HirFileId, MacroDefId, Source};
//! path and, upon success, we run macro expansion and "collect module" phase on
//! the result
-pub mod raw;
-pub mod per_ns;
+pub(crate) mod raw;
mod collector;
mod mod_resolution;
mod path_resolution;
use crate::{
builtin_type::BuiltinType,
db::DefDatabase,
- nameres::{diagnostics::DefDiagnostic, path_resolution::ResolveMode, per_ns::PerNs},
+ nameres::{diagnostics::DefDiagnostic, path_resolution::ResolveMode},
path::Path,
+ per_ns::PerNs,
AstId, FunctionId, ImplId, LocalImportId, LocalModuleId, ModuleDefId, ModuleId, TraitId,
};
db::DefDatabase,
nameres::{
diagnostics::DefDiagnostic, mod_resolution::ModDir, path_resolution::ReachedFixedPoint,
- per_ns::PerNs, raw, CrateDefMap, ModuleData, Resolution, ResolveMode,
+ raw, CrateDefMap, ModuleData, Resolution, ResolveMode,
},
path::{Path, PathKind},
+ per_ns::PerNs,
AdtId, AstId, AstItemDef, ConstLoc, ContainerId, EnumId, EnumVariantId, FunctionLoc, ImplId,
Intern, LocalImportId, LocalModuleId, LocationCtx, ModuleDefId, ModuleId, StaticId, StructId,
StructOrUnionId, TraitId, TypeAliasLoc, UnionId,
use crate::{
db::DefDatabase,
- nameres::{per_ns::PerNs, CrateDefMap},
+ nameres::CrateDefMap,
path::{Path, PathKind},
+ per_ns::PerNs,
AdtId, EnumVariantId, LocalModuleId, ModuleDefId, ModuleId,
};
+++ /dev/null
-//! FIXME: write short doc here
-
-use hir_expand::MacroDefId;
-
-use crate::ModuleDefId;
-
-#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub struct PerNs {
- pub types: Option<ModuleDefId>,
- pub values: Option<ModuleDefId>,
- /// Since macros has different type, many methods simply ignore it.
- /// We can only use special method like `get_macros` to access it.
- pub macros: Option<MacroDefId>,
-}
-
-impl Default for PerNs {
- fn default() -> Self {
- PerNs { types: None, values: None, macros: None }
- }
-}
-
-impl PerNs {
- pub fn none() -> PerNs {
- PerNs { types: None, values: None, macros: None }
- }
-
- pub fn values(t: ModuleDefId) -> PerNs {
- PerNs { types: None, values: Some(t), macros: None }
- }
-
- pub fn types(t: ModuleDefId) -> PerNs {
- PerNs { types: Some(t), values: None, macros: None }
- }
-
- pub fn both(types: ModuleDefId, values: ModuleDefId) -> PerNs {
- PerNs { types: Some(types), values: Some(values), macros: None }
- }
-
- pub fn macros(macro_: MacroDefId) -> PerNs {
- PerNs { types: None, values: None, macros: Some(macro_) }
- }
-
- pub fn is_none(&self) -> bool {
- self.types.is_none() && self.values.is_none() && self.macros.is_none()
- }
-
- pub fn is_all(&self) -> bool {
- self.types.is_some() && self.values.is_some() && self.macros.is_some()
- }
-
- pub fn take_types(self) -> Option<ModuleDefId> {
- self.types
- }
-
- pub fn take_values(self) -> Option<ModuleDefId> {
- self.values
- }
-
- pub fn get_macros(&self) -> Option<MacroDefId> {
- self.macros
- }
-
- pub fn only_macros(&self) -> PerNs {
- PerNs { types: None, values: None, macros: self.macros }
- }
-
- pub fn or(self, other: PerNs) -> PerNs {
- PerNs {
- types: self.types.or(other.types),
- values: self.values.or(other.values),
- macros: self.macros.or(other.macros),
- }
- }
-}
--- /dev/null
+//! FIXME: write short doc here
+
+use hir_expand::MacroDefId;
+
+use crate::ModuleDefId;
+
+#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+pub struct PerNs {
+ pub types: Option<ModuleDefId>,
+ pub values: Option<ModuleDefId>,
+ /// Since macros has different type, many methods simply ignore it.
+ /// We can only use special method like `get_macros` to access it.
+ pub macros: Option<MacroDefId>,
+}
+
+impl Default for PerNs {
+ fn default() -> Self {
+ PerNs { types: None, values: None, macros: None }
+ }
+}
+
+impl PerNs {
+ pub fn none() -> PerNs {
+ PerNs { types: None, values: None, macros: None }
+ }
+
+ pub fn values(t: ModuleDefId) -> PerNs {
+ PerNs { types: None, values: Some(t), macros: None }
+ }
+
+ pub fn types(t: ModuleDefId) -> PerNs {
+ PerNs { types: Some(t), values: None, macros: None }
+ }
+
+ pub fn both(types: ModuleDefId, values: ModuleDefId) -> PerNs {
+ PerNs { types: Some(types), values: Some(values), macros: None }
+ }
+
+ pub fn macros(macro_: MacroDefId) -> PerNs {
+ PerNs { types: None, values: None, macros: Some(macro_) }
+ }
+
+ pub fn is_none(&self) -> bool {
+ self.types.is_none() && self.values.is_none() && self.macros.is_none()
+ }
+
+ pub fn is_all(&self) -> bool {
+ self.types.is_some() && self.values.is_some() && self.macros.is_some()
+ }
+
+ pub fn take_types(self) -> Option<ModuleDefId> {
+ self.types
+ }
+
+ pub fn take_values(self) -> Option<ModuleDefId> {
+ self.values
+ }
+
+ pub fn get_macros(&self) -> Option<MacroDefId> {
+ self.macros
+ }
+
+ pub fn only_macros(&self) -> PerNs {
+ PerNs { types: None, values: None, macros: self.macros }
+ }
+
+ pub fn or(self, other: PerNs) -> PerNs {
+ PerNs {
+ types: self.types.or(other.types),
+ values: self.values.or(other.values),
+ macros: self.macros.or(other.macros),
+ }
+ }
+}
db::DefDatabase,
expr::{ExprId, PatId},
generics::GenericParams,
- nameres::{per_ns::PerNs, CrateDefMap},
+ nameres::CrateDefMap,
path::{Path, PathKind},
+ per_ns::PerNs,
AdtId, AstItemDef, ConstId, ContainerId, DefWithBodyId, EnumId, EnumVariantId, FunctionId,
GenericDefId, ImplId, LocalModuleId, Lookup, ModuleDefId, ModuleId, StaticId, StructId,
TraitId, TypeAliasId,