From fc055281a5c1c81a6df0e4c10cde71e4799bd329 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 12 Nov 2019 11:48:34 +0300 Subject: Minor cleanup --- crates/ra_hir/src/expr.rs | 61 +++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 31 deletions(-) (limited to 'crates/ra_hir/src/expr.rs') diff --git a/crates/ra_hir/src/expr.rs b/crates/ra_hir/src/expr.rs index 6e23197a4..53da7f0bf 100644 --- a/crates/ra_hir/src/expr.rs +++ b/crates/ra_hir/src/expr.rs @@ -75,6 +75,36 @@ pub struct BodySourceMap { } impl Body { + pub(crate) fn body_with_source_map_query( + db: &impl HirDatabase, + def: DefWithBody, + ) -> (Arc, Arc) { + let mut params = None; + + let (file_id, body) = match def { + DefWithBody::Function(f) => { + let src = f.source(db); + params = src.ast.param_list(); + (src.file_id, src.ast.body().map(ast::Expr::from)) + } + DefWithBody::Const(c) => { + let src = c.source(db); + (src.file_id, src.ast.body()) + } + DefWithBody::Static(s) => { + let src = s.source(db); + (src.file_id, src.ast.body()) + } + }; + + let (body, source_map) = lower::lower(db, def.resolver(db), file_id, def, params, body); + (Arc::new(body), Arc::new(source_map)) + } + + pub(crate) fn body_query(db: &impl HirDatabase, def: DefWithBody) -> Arc { + db.body_with_source_map(def).0 + } + pub fn params(&self) -> &[PatId] { &self.params } @@ -542,34 +572,3 @@ impl Pat { } } } - -// Queries -pub(crate) fn body_with_source_map_query( - db: &impl HirDatabase, - def: DefWithBody, -) -> (Arc, Arc) { - let mut params = None; - - let (file_id, body) = match def { - DefWithBody::Function(f) => { - let src = f.source(db); - params = src.ast.param_list(); - (src.file_id, src.ast.body().map(ast::Expr::from)) - } - DefWithBody::Const(c) => { - let src = c.source(db); - (src.file_id, src.ast.body()) - } - DefWithBody::Static(s) => { - let src = s.source(db); - (src.file_id, src.ast.body()) - } - }; - - let (body, source_map) = lower::lower(db, def.resolver(db), file_id, def, params, body); - (Arc::new(body), Arc::new(source_map)) -} - -pub(crate) fn body_hir_query(db: &impl HirDatabase, def: DefWithBody) -> Arc { - db.body_with_source_map(def).0 -} -- cgit v1.2.3