ModuleDef is Def-free

This commit is contained in:
Aleksey Kladov 2019-01-25 01:32:47 +03:00
parent 0f2f3a21e7
commit ff9c5bef7b
4 changed files with 2 additions and 12 deletions

View file

@ -5,7 +5,7 @@ use ra_db::{CrateId, FileId};
use ra_syntax::{ast::self, TreeArc, SyntaxNode};
use crate::{
Name, DefId, Path, PerNs, ScopesWithSyntaxMapping, Ty, HirFileId,
Name, Path, PerNs, ScopesWithSyntaxMapping, Ty, HirFileId,
type_ref::TypeRef,
nameres::{ModuleScope, lower::ImportId},
db::HirDatabase,
@ -62,13 +62,12 @@ pub enum ModuleDef {
Function(Function),
Struct(Struct),
Enum(Enum),
// Can't be directly declared, but can be imported.
EnumVariant(EnumVariant),
Const(Const),
Static(Static),
Trait(Trait),
Type(Type),
// Can't be directly declared, but can be imported.
Def(DefId),
}
impl_froms!(
ModuleDef: Module,
@ -82,12 +81,6 @@ impl_froms!(
Type
);
impl From<DefId> for ModuleDef {
fn from(it: DefId) -> ModuleDef {
ModuleDef::Def(it)
}
}
pub enum ModuleSource {
SourceFile(TreeArc<ast::SourceFile>),
Module(TreeArc<ast::Module>),

View file

@ -695,7 +695,6 @@ impl From<ModuleDef> for Option<TypableDef> {
ModuleDef::EnumVariant(v) => v.into(),
ModuleDef::Const(_)
| ModuleDef::Static(_)
| ModuleDef::Def(_)
| ModuleDef::Module(_)
| ModuleDef::Trait(_)
| ModuleDef::Type(_) => return None,

View file

@ -227,7 +227,6 @@ impl Builder {
hir::ModuleDef::Static(it) => (CompletionItemKind::Static, it.docs(ctx.db)),
hir::ModuleDef::Trait(it) => (CompletionItemKind::Trait, it.docs(ctx.db)),
hir::ModuleDef::Type(it) => (CompletionItemKind::TypeAlias, it.docs(ctx.db)),
hir::ModuleDef::Def(_) => return self,
};
self.kind = Some(kind);
self.documentation = docs;

View file

@ -107,7 +107,6 @@ impl NavigationTarget {
module_def: hir::ModuleDef,
) -> Option<NavigationTarget> {
match module_def {
hir::ModuleDef::Def(_) => return None,
hir::ModuleDef::Module(module) => Some(NavigationTarget::from_module(db, module)),
hir::ModuleDef::Function(func) => Some(NavigationTarget::from_function(db, func)),
hir::ModuleDef::Struct(s) => {