From 58fe5598e70eef6edf109865cb87b806b22536fb Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 13 Apr 2019 01:32:43 +0300 Subject: simplify --- crates/ra_hir/src/source_binder.rs | 6 ------ crates/ra_hir/src/ty/tests.rs | 23 ++++++++++++----------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/crates/ra_hir/src/source_binder.rs b/crates/ra_hir/src/source_binder.rs index 8e1f29019..0d2746ac0 100644 --- a/crates/ra_hir/src/source_binder.rs +++ b/crates/ra_hir/src/source_binder.rs @@ -89,12 +89,6 @@ fn module_from_source( ) } -pub fn function_from_position(db: &impl HirDatabase, position: FilePosition) -> Option { - let file = db.parse(position.file_id); - let fn_def = find_node_at_offset::(file.syntax(), position.offset)?; - function_from_source(db, position.file_id, fn_def) -} - fn function_from_source( db: &impl HirDatabase, file_id: FileId, diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs index 87d6bcaec..d7c2ca132 100644 --- a/crates/ra_hir/src/ty/tests.rs +++ b/crates/ra_hir/src/ty/tests.rs @@ -8,7 +8,6 @@ use ra_syntax::{algo, ast::{self, AstNode}, SyntaxKind::*}; use test_utils::covers; use crate::{ - source_binder, mock::MockDatabase, ty::display::HirDisplay, ty::InferenceResult, @@ -2303,13 +2302,10 @@ fn test() -> u64 { } fn type_at_pos(db: &MockDatabase, pos: FilePosition) -> String { - let func = source_binder::function_from_position(db, pos).unwrap(); - let body_source_map = func.body_source_map(db); - let inference_result = func.infer(db); - let (_, syntax) = func.source(db); - let node = algo::find_node_at_offset::(syntax.syntax(), pos.offset).unwrap(); - let expr = body_source_map.node_expr(node).unwrap(); - let ty = &inference_result[expr]; + let file = db.parse(pos.file_id); + let expr = algo::find_node_at_offset::(file.syntax(), pos.offset).unwrap(); + let analyzer = SourceAnalyzer::new(db, pos.file_id, expr.syntax(), Some(pos.offset)); + let ty = analyzer.type_of(db, expr).unwrap(); ty.display(db).to_string() } @@ -2390,10 +2386,12 @@ fn typing_whitespace_inside_a_function_should_not_invalidate_types() { } ", ); - let func = source_binder::function_from_position(&db, pos).unwrap(); { + let file = db.parse(pos.file_id); + let node = + algo::find_token_at_offset(file.syntax(), pos.offset).right_biased().unwrap().parent(); let events = db.log_executed(|| { - func.infer(&db); + SourceAnalyzer::new(&db, pos.file_id, node, None); }); assert!(format!("{:?}", events).contains("infer")) } @@ -2410,8 +2408,11 @@ fn typing_whitespace_inside_a_function_should_not_invalidate_types() { db.query_mut(ra_db::FileTextQuery).set(pos.file_id, Arc::new(new_text)); { + let file = db.parse(pos.file_id); + let node = + algo::find_token_at_offset(file.syntax(), pos.offset).right_biased().unwrap().parent(); let events = db.log_executed(|| { - func.infer(&db); + SourceAnalyzer::new(&db, pos.file_id, node, None); }); assert!(!format!("{:?}", events).contains("infer"), "{:#?}", events) } -- cgit v1.2.3