From: Aleksey Kladov Date: Fri, 20 Dec 2019 10:30:22 +0000 (+0100) Subject: Rebuild ra_lsp_server and nest helper function. X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=67c2aea182c375108ebb8b923f5679e4f7fef1df;p=rust.git Rebuild ra_lsp_server and nest helper function. Completion now works again, so there's no need not to nest --- diff --git a/crates/ra_hir/src/from_source.rs b/crates/ra_hir/src/from_source.rs index 4fd7c757364..3b6454a1d83 100644 --- a/crates/ra_hir/src/from_source.rs +++ b/crates/ra_hir/src/from_source.rs @@ -212,43 +212,43 @@ pub fn from_definition(db: &impl DefDatabase, src: InFile) -> Opti } fn analyze_container(db: &impl DefDatabase, src: InFile<&SyntaxNode>) -> DynMap { - _analyze_container(db, src).unwrap_or_default() -} + return child_by_source(db, src).unwrap_or_default(); -fn _analyze_container(db: &impl DefDatabase, src: InFile<&SyntaxNode>) -> Option { - for container in src.value.ancestors().skip(1) { - let res = match_ast! { - match container { - ast::TraitDef(it) => { - let def = Trait::from_source(db, src.with_value(it))?; - def.id.child_by_source(db) - }, - ast::ImplBlock(it) => { - let def = ImplBlock::from_source(db, src.with_value(it))?; - def.id.child_by_source(db) - }, - ast::FnDef(it) => { - let def = Function::from_source(db, src.with_value(it))?; - DefWithBodyId::from(def.id) - .child_by_source(db) - }, - ast::StaticDef(it) => { - let def = Static::from_source(db, src.with_value(it))?; - DefWithBodyId::from(def.id) - .child_by_source(db) - }, - ast::ConstDef(it) => { - let def = Const::from_source(db, src.with_value(it))?; - DefWithBodyId::from(def.id) - .child_by_source(db) - }, - _ => { continue }, - } - }; - return Some(res); - } + fn child_by_source(db: &impl DefDatabase, src: InFile<&SyntaxNode>) -> Option { + for container in src.value.ancestors().skip(1) { + let res = match_ast! { + match container { + ast::TraitDef(it) => { + let def = Trait::from_source(db, src.with_value(it))?; + def.id.child_by_source(db) + }, + ast::ImplBlock(it) => { + let def = ImplBlock::from_source(db, src.with_value(it))?; + def.id.child_by_source(db) + }, + ast::FnDef(it) => { + let def = Function::from_source(db, src.with_value(it))?; + DefWithBodyId::from(def.id) + .child_by_source(db) + }, + ast::StaticDef(it) => { + let def = Static::from_source(db, src.with_value(it))?; + DefWithBodyId::from(def.id) + .child_by_source(db) + }, + ast::ConstDef(it) => { + let def = Const::from_source(db, src.with_value(it))?; + DefWithBodyId::from(def.id) + .child_by_source(db) + }, + _ => { continue }, + } + }; + return Some(res); + } - let module_source = ModuleSource::from_child_node(db, src); - let c = Module::from_definition(db, src.with_value(module_source))?; - Some(c.id.child_by_source(db)) + let module_source = ModuleSource::from_child_node(db, src); + let c = Module::from_definition(db, src.with_value(module_source))?; + Some(c.id.child_by_source(db)) + } }