Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/hir-def/src/nameres/collector.rs93
1 files changed, 34 insertions, 59 deletions
diff --git a/crates/hir-def/src/nameres/collector.rs b/crates/hir-def/src/nameres/collector.rs
index 27ad3ad1f4..6de967c2c6 100644
--- a/crates/hir-def/src/nameres/collector.rs
+++ b/crates/hir-def/src/nameres/collector.rs
@@ -3,85 +3,60 @@
//! `DefCollector::collect` contains the fixed-point iteration loop which
//! resolves imports and expands macros.
-use std::{iter, mem};
-
-use crate::attr::Attrs;
-use crate::item_tree::Fields;
-use crate::item_tree::FileItemTreeId;
-use crate::item_tree::MacroCall;
-use crate::item_tree::MacroRules;
-use crate::item_tree::Mod;
-use crate::item_tree::ModKind;
-use crate::macro_call_as_call_id_with_eager;
-
-use crate::nameres::attr_resolution::derive_attr_macro_as_call_id;
-use crate::nameres::mod_resolution::ModDir;
-
-use crate::item_tree::ItemTree;
-
-use crate::item_tree::TreeId;
-
-use crate::LocalModuleId;
-use crate::{
- item_tree::{ExternCrate, ItemTreeId, Macro2, ModItem},
- nameres::{
- diagnostics::DefDiagnostic, proc_macro::parse_macro_name_and_helper_attrs,
- sub_namespace_match, BuiltinShadowMode, DefMap, MacroSubNs, ModuleData, ModuleOrigin,
- ResolveMode,
- },
- path::ModPath,
- per_ns::PerNs,
- tt,
- visibility::Visibility,
- AstId, AstIdWithPath, ConstLoc, EnumLoc, EnumVariantLoc, ExternBlockLoc, ExternCrateId,
- ExternCrateLoc, FunctionLoc, ImplLoc, Intern, ItemContainerId, Macro2Loc, MacroExpander,
- MacroRulesLoc, MacroRulesLocFlags, ModuleDefId, ModuleId, StaticLoc, StructLoc, TraitAliasLoc,
- TraitLoc, TypeAliasLoc, UnionLoc, UseLoc,
-};
-
-use std::{cmp::Ordering, ops::Not};
+use std::{cmp::Ordering, iter, mem, ops::Not};
+use base_db::{CrateId, Dependency, FileId};
+use cfg::{CfgExpr, CfgOptions};
use either::Either;
use hir_expand::{
- builtin_attr_macro::find_builtin_attr,
+ attrs::{Attr, AttrId},
+ builtin_attr_macro::{find_builtin_attr, BuiltinAttrExpander},
builtin_derive_macro::find_builtin_derive,
builtin_fn_macro::find_builtin_macro,
- name::{AsName, Name},
- HirFileId, InFile,
-};
-
-use itertools::Itertools;
-use span::{ErasedFileAstId, FileAstId, Span, SyntaxContextId};
-
-use hir_expand::{
- attrs::{Attr, AttrId},
- builtin_attr_macro::BuiltinAttrExpander,
- name::name,
+ name::{name, AsName, Name},
proc_macro::CustomProcMacroExpander,
- ExpandResult, ExpandTo, MacroCallId, MacroCallKind, MacroCallLoc, MacroDefId, MacroDefKind,
+ ExpandResult, ExpandTo, HirFileId, InFile, MacroCallId, MacroCallKind, MacroCallLoc,
+ MacroDefId, MacroDefKind,
};
-use itertools::izip;
+use itertools::{izip, Itertools};
use la_arena::Idx;
use limit::Limit;
use rustc_hash::{FxHashMap, FxHashSet};
+use span::{Edition, ErasedFileAstId, FileAstId, Span, SyntaxContextId};
use stdx::always;
use syntax::{ast, SmolStr};
use triomphe::Arc;
use crate::{
+ attr::Attrs,
db::DefDatabase,
item_scope::{ImportId, ImportOrExternCrate, ImportType, PerNsGlobImports},
- item_tree::{self, ImportKind, ItemTreeNode},
- macro_call_as_call_id,
+ item_tree::{
+ self, ExternCrate, Fields, FileItemTreeId, ImportKind, ItemTree, ItemTreeId, ItemTreeNode,
+ Macro2, MacroCall, MacroRules, Mod, ModItem, ModKind, TreeId,
+ },
+ macro_call_as_call_id, macro_call_as_call_id_with_eager,
nameres::{
- attr_resolution::{attr_macro_as_call_id, derive_macro_as_call_id},
+ attr_resolution::{
+ attr_macro_as_call_id, derive_attr_macro_as_call_id, derive_macro_as_call_id,
+ },
+ diagnostics::DefDiagnostic,
+ mod_resolution::ModDir,
path_resolution::ReachedFixedPoint,
- proc_macro::{ProcMacroDef, ProcMacroKind},
+ proc_macro::{parse_macro_name_and_helper_attrs, ProcMacroDef, ProcMacroKind},
+ sub_namespace_match, BuiltinShadowMode, DefMap, MacroSubNs, ModuleData, ModuleOrigin,
+ ResolveMode,
},
- path::{ImportAlias, PathKind},
- visibility::RawVisibility,
- AdtId, CrateRootModuleId, FunctionId, Lookup, Macro2Id, MacroId, MacroRulesId, ProcMacroId,
- ProcMacroLoc, UnresolvedMacro, UseId,
+ path::{ImportAlias, ModPath, PathKind},
+ per_ns::PerNs,
+ tt,
+ visibility::{RawVisibility, Visibility},
+ AdtId, AstId, AstIdWithPath, ConstLoc, CrateRootModuleId, EnumLoc, EnumVariantLoc,
+ ExternBlockLoc, ExternCrateId, ExternCrateLoc, FunctionId, FunctionLoc, ImplLoc, Intern,
+ ItemContainerId, LocalModuleId, Lookup, Macro2Id, Macro2Loc, MacroExpander, MacroId,
+ MacroRulesId, MacroRulesLoc, MacroRulesLocFlags, ModuleDefId, ModuleId, ProcMacroId,
+ ProcMacroLoc, StaticLoc, StructLoc, TraitAliasLoc, TraitLoc, TypeAliasLoc, UnionLoc,
+ UnresolvedMacro, UseId, UseLoc,
};
static GLOB_RECURSION_LIMIT: Limit = Limit::new(100);