aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/references/classify.rs
diff options
context:
space:
mode:
authorEkaterina Babshukova <[email protected]>2019-10-15 20:50:28 +0100
committerEkaterina Babshukova <[email protected]>2019-10-22 21:47:31 +0100
commit55e1910d006da7961687928542c1167cc556a39f (patch)
tree8440f4a2655ab06884d20180da10134f652d403b /crates/ra_ide_api/src/references/classify.rs
parent93c179531b31786bfd50644b5f0c879afc798f7d (diff)
classify module from declaration
Diffstat (limited to 'crates/ra_ide_api/src/references/classify.rs')
-rw-r--r--crates/ra_ide_api/src/references/classify.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/crates/ra_ide_api/src/references/classify.rs b/crates/ra_ide_api/src/references/classify.rs
index 93e079ccc..ac9cf34eb 100644
--- a/crates/ra_ide_api/src/references/classify.rs
+++ b/crates/ra_ide_api/src/references/classify.rs
@@ -31,9 +31,16 @@ pub(crate) fn classify_name(
31 Some(from_struct_field(db, field)) 31 Some(from_struct_field(db, field))
32 }, 32 },
33 ast::Module(it) => { 33 ast::Module(it) => {
34 let ast = hir::ModuleSource::Module(it); 34 let def = {
35 let src = hir::Source { file_id, ast }; 35 if !it.has_semi() {
36 let def = hir::Module::from_definition(db, src)?; 36 let ast = hir::ModuleSource::Module(it);
37 let src = hir::Source { file_id, ast };
38 hir::Module::from_definition(db, src)
39 } else {
40 let src = hir::Source { file_id, ast: it };
41 hir::Module::from_declaration(db, src)
42 }
43 }?;
37 Some(from_module_def(db, def.into(), None)) 44 Some(from_module_def(db, def.into(), None))
38 }, 45 },
39 ast::StructDef(it) => { 46 ast::StructDef(it) => {