From 10d66d63d716a10ba7a5a8d1b69c9066249caf69 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 10 Apr 2019 11:15:55 +0300 Subject: introduce SourceAnalyzer --- crates/ra_assists/src/add_explicit_type.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'crates/ra_assists/src/add_explicit_type.rs') diff --git a/crates/ra_assists/src/add_explicit_type.rs b/crates/ra_assists/src/add_explicit_type.rs index 1dc59bb87..c50db4e21 100644 --- a/crates/ra_assists/src/add_explicit_type.rs +++ b/crates/ra_assists/src/add_explicit_type.rs @@ -1,7 +1,6 @@ use hir::{ HirDisplay, Ty, db::HirDatabase, - source_binder::function_from_child_node, }; use ra_syntax::{ SyntaxKind, @@ -30,11 +29,8 @@ pub(crate) fn add_explicit_type(mut ctx: AssistCtx) -> Option< } // Infer type let db = ctx.db; - let func = function_from_child_node(db, ctx.frange.file_id, pat.syntax())?; - let inference_res = func.infer(db); - let source_map = func.body_source_map(db); - let expr_id = source_map.node_expr(expr.into())?; - let ty = inference_res[expr_id].clone(); + let analyzer = hir::SourceAnalyser::new(db, ctx.frange.file_id, stmt.syntax()); + let ty = analyzer.type_of(db, expr)?; // Assist not applicable if the type is unknown if is_unknown(&ty) { return None; -- cgit v1.2.3