/// A desugared `use` import.
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct Import {
- pub path: ModPath,
+ pub path: Interned<ModPath>,
pub alias: Option<ImportAlias>,
pub visibility: RawVisibilityId,
pub is_glob: bool,
&self.hygiene,
|path, _use_tree, is_glob, alias| {
imports.push(id(tree.imports.alloc(Import {
- path,
+ path: Interned::new(path),
alias,
visibility,
is_glob,
attr::Attrs,
db::DefDatabase,
derive_macro_as_call_id,
+ intern::Interned,
item_scope::{ImportType, PerNsGlobImports},
item_tree::{
self, FileItemTreeId, ItemTree, ItemTreeId, MacroCall, MacroDef, MacroRules, Mod, ModItem,
#[derive(Clone, Debug, Eq, PartialEq)]
struct Import {
- path: ModPath,
+ path: Interned<ModPath>,
alias: Option<ImportAlias>,
visibility: RawVisibility,
is_glob: bool,
let attrs = &tree.attrs(db, krate, ModItem::from(id.value).into());
let visibility = &tree[it.visibility];
Self {
- path: ModPath::from_segments(PathKind::Plain, iter::once(it.name.clone())),
+ path: Interned::new(ModPath::from_segments(
+ PathKind::Plain,
+ iter::once(it.name.clone()),
+ )),
alias: it.alias.clone(),
visibility: visibility.clone(),
is_glob: false,