aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/nameres/raw.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-03-16 16:42:58 +0000
committerGitHub <[email protected]>2020-03-16 16:42:58 +0000
commitadcc89137d3feea8f19fad461bbde6f4bce048e5 (patch)
tree160af959553ce57fdfcbc0a6c79bafcc3611aeea /crates/ra_hir_def/src/nameres/raw.rs
parent648df02953a6ebf87a5876668eceba208687e8a7 (diff)
parent9faea2364dee4fbc9391ad233c570b70256ef002 (diff)
Merge #3584
3584: Switch to dynamic dispatch r=matklad a=matklad Benches are in https://github.com/rust-analyzer/rust-analyzer/issues/1987#issuecomment-598807185 TL;DR: * 33% faster release build * slightly worse/same perf * no changes for debug build * slightly smaller binary cc @flodiebold I genuinely don't know if it is a good idea or not. Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_hir_def/src/nameres/raw.rs')
-rw-r--r--crates/ra_hir_def/src/nameres/raw.rs8
1 files changed, 2 insertions, 6 deletions
diff --git a/crates/ra_hir_def/src/nameres/raw.rs b/crates/ra_hir_def/src/nameres/raw.rs
index ea3c00da8..0e4931f58 100644
--- a/crates/ra_hir_def/src/nameres/raw.rs
+++ b/crates/ra_hir_def/src/nameres/raw.rs
@@ -9,7 +9,6 @@ use std::{ops::Index, sync::Arc};
9 9
10use hir_expand::{ 10use hir_expand::{
11 ast_id_map::AstIdMap, 11 ast_id_map::AstIdMap,
12 db::AstDatabase,
13 hygiene::Hygiene, 12 hygiene::Hygiene,
14 name::{AsName, Name}, 13 name::{AsName, Name},
15}; 14};
@@ -45,16 +44,13 @@ pub struct RawItems {
45} 44}
46 45
47impl RawItems { 46impl RawItems {
48 pub(crate) fn raw_items_query( 47 pub(crate) fn raw_items_query(db: &dyn DefDatabase, file_id: HirFileId) -> Arc<RawItems> {
49 db: &(impl DefDatabase + AstDatabase),
50 file_id: HirFileId,
51 ) -> Arc<RawItems> {
52 let _p = profile("raw_items_query"); 48 let _p = profile("raw_items_query");
53 let mut collector = RawItemsCollector { 49 let mut collector = RawItemsCollector {
54 raw_items: RawItems::default(), 50 raw_items: RawItems::default(),
55 source_ast_id_map: db.ast_id_map(file_id), 51 source_ast_id_map: db.ast_id_map(file_id),
56 file_id, 52 file_id,
57 hygiene: Hygiene::new(db, file_id), 53 hygiene: Hygiene::new(db.upcast(), file_id),
58 }; 54 };
59 if let Some(node) = db.parse_or_expand(file_id) { 55 if let Some(node) = db.parse_or_expand(file_id) {
60 if let Some(source_file) = ast::SourceFile::cast(node.clone()) { 56 if let Some(source_file) = ast::SourceFile::cast(node.clone()) {