diff options
author | Ekaterina Babshukova <[email protected]> | 2019-10-15 20:50:28 +0100 |
---|---|---|
committer | Ekaterina Babshukova <[email protected]> | 2019-10-22 21:47:31 +0100 |
commit | 55e1910d006da7961687928542c1167cc556a39f (patch) | |
tree | 8440f4a2655ab06884d20180da10134f652d403b /crates/ra_ide_api/src/references/classify.rs | |
parent | 93c179531b31786bfd50644b5f0c879afc798f7d (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.rs | 13 |
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) => { |