diff options
Diffstat (limited to 'crates/ra_hir/src/code_model_api.rs')
-rw-r--r-- | crates/ra_hir/src/code_model_api.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index 88eda5ed0..9ae620efd 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs | |||
@@ -2,7 +2,7 @@ use std::sync::Arc; | |||
2 | 2 | ||
3 | use relative_path::RelativePathBuf; | 3 | use relative_path::RelativePathBuf; |
4 | use ra_db::{CrateId, FileId}; | 4 | use ra_db::{CrateId, FileId}; |
5 | use ra_syntax::{ast, TreeArc, SyntaxNode}; | 5 | use ra_syntax::{ast::{self, AstNode, DocCommentsOwner}, TreeArc, SyntaxNode}; |
6 | 6 | ||
7 | use crate::{ | 7 | use crate::{ |
8 | Name, DefId, Path, PerNs, ScopesWithSyntaxMapping, Ty, HirFileId, | 8 | Name, DefId, Path, PerNs, ScopesWithSyntaxMapping, Ty, HirFileId, |
@@ -352,6 +352,20 @@ impl Function { | |||
352 | pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> { | 352 | pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> { |
353 | db.generic_params(self.def_id) | 353 | db.generic_params(self.def_id) |
354 | } | 354 | } |
355 | |||
356 | pub fn docs(&self, db: &impl HirDatabase) -> Option<String> { | ||
357 | let def_loc = self.def_id.loc(db); | ||
358 | let syntax = db.file_item(def_loc.source_item_id); | ||
359 | let fn_def = ast::FnDef::cast(&syntax).expect("fn def should point to FnDef node"); | ||
360 | |||
361 | // doc_comment_text unconditionally returns a String | ||
362 | let comments = fn_def.doc_comment_text(); | ||
363 | if comments.is_empty() { | ||
364 | None | ||
365 | } else { | ||
366 | Some(comments) | ||
367 | } | ||
368 | } | ||
355 | } | 369 | } |
356 | 370 | ||
357 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 371 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |