Fix prepare_rename failing for modules

This commit is contained in:
Lukas Tobias Wirth 2021-05-19 14:19:44 +02:00
parent e3d0d89d7e
commit 2c7a8c4857

View file

@ -55,12 +55,14 @@ pub(crate) fn prepare_rename(
match def { match def {
Definition::SelfType(_) => bail!("Cannot rename `Self`"), Definition::SelfType(_) => bail!("Cannot rename `Self`"),
Definition::ModuleDef(ModuleDef::BuiltinType(_)) => bail!("Cannot rename builtin type"), Definition::ModuleDef(ModuleDef::BuiltinType(_)) => bail!("Cannot rename builtin type"),
_ => {} Definition::ModuleDef(ModuleDef::Module(_)) => (),
_ => {
let nav = def
.try_to_nav(sema.db)
.ok_or_else(|| format_err!("No references found at position"))?;
nav.focus_range.ok_or_else(|| format_err!("No identifier available to rename"))?;
}
}; };
let nav =
def.try_to_nav(sema.db).ok_or_else(|| format_err!("No references found at position"))?;
nav.focus_range.ok_or_else(|| format_err!("No identifier available to rename"))?;
let name_like = sema let name_like = sema
.find_node_at_offset_with_descend(&syntax, position.offset) .find_node_at_offset_with_descend(&syntax, position.offset)
.ok_or_else(|| format_err!("No references found at position"))?; .ok_or_else(|| format_err!("No references found at position"))?;