Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/lib.rs')
-rw-r--r--crates/hir/src/lib.rs32
1 files changed, 19 insertions, 13 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index c868357ff9..9f33c50670 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -3380,23 +3380,27 @@ impl BuiltinAttr {
if let builtin @ Some(_) = Self::builtin(name) {
return builtin;
}
- let idx =
- db.crate_def_map(krate.id).registered_attrs().iter().position(|it| it == name)? as u32;
+ let idx = db
+ .crate_def_map(krate.id)
+ .registered_attrs()
+ .iter()
+ .position(|it| it.as_str() == name)? as u32;
Some(BuiltinAttr { krate: Some(krate.id), idx })
}
fn builtin(name: &str) -> Option<Self> {
- hir_expand::inert_attr_macro::find_builtin_attr_idx(name)
+ hir_expand::inert_attr_macro::find_builtin_attr_idx(&Symbol::intern(name))
.map(|idx| BuiltinAttr { krate: None, idx: idx as u32 })
}
- pub fn name(&self, db: &dyn HirDatabase) -> SmolStr {
- // FIXME: Return a `Name` here
+ pub fn name(&self, db: &dyn HirDatabase) -> Name {
match self.krate {
- Some(krate) => db.crate_def_map(krate).registered_attrs()[self.idx as usize].clone(),
- None => {
- SmolStr::new(hir_expand::inert_attr_macro::INERT_ATTRIBUTES[self.idx as usize].name)
- }
+ Some(krate) => Name::new_symbol_root(
+ db.crate_def_map(krate).registered_attrs()[self.idx as usize].clone(),
+ ),
+ None => Name::new_symbol_root(Symbol::intern(
+ hir_expand::inert_attr_macro::INERT_ATTRIBUTES[self.idx as usize].name,
+ )),
}
}
@@ -3420,13 +3424,15 @@ impl ToolModule {
pub(crate) fn by_name(db: &dyn HirDatabase, krate: Crate, name: &str) -> Option<Self> {
let krate = krate.id;
let idx =
- db.crate_def_map(krate).registered_tools().iter().position(|it| it == name)? as u32;
+ db.crate_def_map(krate).registered_tools().iter().position(|it| it.as_str() == name)?
+ as u32;
Some(ToolModule { krate, idx })
}
- pub fn name(&self, db: &dyn HirDatabase) -> SmolStr {
- // FIXME: Return a `Name` here
- db.crate_def_map(self.krate).registered_tools()[self.idx as usize].clone()
+ pub fn name(&self, db: &dyn HirDatabase) -> Name {
+ Name::new_symbol_root(
+ db.crate_def_map(self.krate).registered_tools()[self.idx as usize].clone(),
+ )
}
}