use Source for module, part 2
This commit is contained in:
parent
0145d06515
commit
dd63f17027
@ -210,11 +210,11 @@ pub fn definition_source(self, db: &(impl DefDatabase + AstDatabase)) -> Source<
|
||||
pub fn declaration_source(
|
||||
self,
|
||||
db: &(impl DefDatabase + AstDatabase),
|
||||
) -> Option<(HirFileId, TreeArc<ast::Module>)> {
|
||||
) -> Option<Source<TreeArc<ast::Module>>> {
|
||||
let def_map = db.crate_def_map(self.krate);
|
||||
let decl = def_map[self.module_id].declaration?;
|
||||
let ast = decl.to_node(db);
|
||||
Some((decl.file_id(), ast))
|
||||
Some((decl.file_id(), ast).into())
|
||||
}
|
||||
|
||||
/// Returns the syntax of the last path segment corresponding to this import
|
||||
|
@ -71,7 +71,7 @@ pub(crate) fn documentation_query(
|
||||
def: DocDef,
|
||||
) -> Option<Documentation> {
|
||||
match def {
|
||||
DocDef::Module(it) => docs_from_ast(&*it.declaration_source(db)?.1),
|
||||
DocDef::Module(it) => docs_from_ast(&*it.declaration_source(db)?.ast),
|
||||
DocDef::StructField(it) => match it.source(db).ast {
|
||||
FieldSource::Named(named) => docs_from_ast(&*named),
|
||||
FieldSource::Pos(..) => return None,
|
||||
|
@ -149,15 +149,15 @@ pub(crate) fn from_module(db: &RootDatabase, module: hir::Module) -> NavigationT
|
||||
|
||||
pub(crate) fn from_module_to_decl(db: &RootDatabase, module: hir::Module) -> NavigationTarget {
|
||||
let name = module.name(db).map(|it| it.to_string().into()).unwrap_or_default();
|
||||
if let Some((file_id, source)) = module.declaration_source(db) {
|
||||
let file_id = file_id.as_original_file();
|
||||
if let Some(src) = module.declaration_source(db) {
|
||||
let file_id = src.file_id.as_original_file();
|
||||
return NavigationTarget::from_syntax(
|
||||
file_id,
|
||||
name,
|
||||
None,
|
||||
source.syntax(),
|
||||
source.doc_comment_text(),
|
||||
source.short_label(),
|
||||
src.ast.syntax(),
|
||||
src.ast.doc_comment_text(),
|
||||
src.ast.short_label(),
|
||||
);
|
||||
}
|
||||
NavigationTarget::from_module(db, module)
|
||||
|
Loading…
Reference in New Issue
Block a user