mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 12:29:21 +00:00
Remove Option<...> from result of Crate::root_module
There doesn't seem to be any need for it, and removing it simplies several paths of code that depend on it.
This commit is contained in:
parent
6cde0b1aa0
commit
bf9b4578bb
8 changed files with 22 additions and 23 deletions
|
@ -93,19 +93,19 @@ pub enum NameClass {
|
|||
impl NameClass {
|
||||
pub fn into_definition(self, db: &dyn HirDatabase) -> Option<Definition> {
|
||||
Some(match self {
|
||||
NameClass::ExternCrate(krate) => Definition::ModuleDef(krate.root_module(db)?.into()),
|
||||
NameClass::ExternCrate(krate) => Definition::ModuleDef(krate.root_module(db).into()),
|
||||
NameClass::Definition(it) => it,
|
||||
NameClass::ConstReference(_) => return None,
|
||||
NameClass::FieldShorthand { local, field: _ } => Definition::Local(local),
|
||||
})
|
||||
}
|
||||
|
||||
pub fn definition(self, db: &dyn HirDatabase) -> Option<Definition> {
|
||||
Some(match self {
|
||||
NameClass::ExternCrate(krate) => Definition::ModuleDef(krate.root_module(db)?.into()),
|
||||
pub fn definition(self, db: &dyn HirDatabase) -> Definition {
|
||||
match self {
|
||||
NameClass::ExternCrate(krate) => Definition::ModuleDef(krate.root_module(db).into()),
|
||||
NameClass::Definition(it) | NameClass::ConstReference(it) => it,
|
||||
NameClass::FieldShorthand { local: _, field } => field,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ pub fn classify_name(sema: &Semantics<RootDatabase>, name: &ast::Name) -> Option
|
|||
})
|
||||
.and_then(|name_ref| classify_name_ref(sema, &name_ref))?;
|
||||
|
||||
Some(NameClass::Definition(name_ref_class.definition(sema.db)?))
|
||||
Some(NameClass::Definition(name_ref_class.definition(sema.db)))
|
||||
} else {
|
||||
let extern_crate = it.syntax().parent().and_then(ast::ExternCrate::cast)?;
|
||||
let resolved = sema.resolve_extern_crate(&extern_crate)?;
|
||||
|
@ -234,14 +234,12 @@ pub enum NameRefClass {
|
|||
}
|
||||
|
||||
impl NameRefClass {
|
||||
pub fn definition(self, db: &dyn HirDatabase) -> Option<Definition> {
|
||||
Some(match self {
|
||||
NameRefClass::ExternCrate(krate) => {
|
||||
Definition::ModuleDef(krate.root_module(db)?.into())
|
||||
}
|
||||
pub fn definition(self, db: &dyn HirDatabase) -> Definition {
|
||||
match self {
|
||||
NameRefClass::ExternCrate(krate) => Definition::ModuleDef(krate.root_module(db).into()),
|
||||
NameRefClass::Definition(def) => def,
|
||||
NameRefClass::FieldShorthand { local, field: _ } => Definition::Local(local),
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue