aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/lang_item.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-03-13 15:05:46 +0000
committerAleksey Kladov <[email protected]>2020-03-16 16:42:30 +0000
commit9faea2364dee4fbc9391ad233c570b70256ef002 (patch)
tree160af959553ce57fdfcbc0a6c79bafcc3611aeea /crates/ra_hir_def/src/lang_item.rs
parent648df02953a6ebf87a5876668eceba208687e8a7 (diff)
Use `dyn Trait` for working with databse
It improves compile time in `--release` mode quite a bit, it doesn't really slow things down and, conceptually, it seems closer to what we want the physical architecture to look like (we don't want to monomorphise EVERYTHING in a single leaf crate).
Diffstat (limited to 'crates/ra_hir_def/src/lang_item.rs')
-rw-r--r--crates/ra_hir_def/src/lang_item.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/crates/ra_hir_def/src/lang_item.rs b/crates/ra_hir_def/src/lang_item.rs
index 6de49730e..01b367278 100644
--- a/crates/ra_hir_def/src/lang_item.rs
+++ b/crates/ra_hir_def/src/lang_item.rs
@@ -77,7 +77,7 @@ impl LangItems {
77 } 77 }
78 78
79 /// Salsa query. This will look for lang items in a specific crate. 79 /// Salsa query. This will look for lang items in a specific crate.
80 pub(crate) fn crate_lang_items_query(db: &impl DefDatabase, krate: CrateId) -> Arc<LangItems> { 80 pub(crate) fn crate_lang_items_query(db: &dyn DefDatabase, krate: CrateId) -> Arc<LangItems> {
81 let mut lang_items = LangItems::default(); 81 let mut lang_items = LangItems::default();
82 82
83 let crate_def_map = db.crate_def_map(krate); 83 let crate_def_map = db.crate_def_map(krate);
@@ -92,7 +92,7 @@ impl LangItems {
92 } 92 }
93 93
94 pub(crate) fn module_lang_items_query( 94 pub(crate) fn module_lang_items_query(
95 db: &impl DefDatabase, 95 db: &dyn DefDatabase,
96 module: ModuleId, 96 module: ModuleId,
97 ) -> Option<Arc<LangItems>> { 97 ) -> Option<Arc<LangItems>> {
98 let mut lang_items = LangItems::default(); 98 let mut lang_items = LangItems::default();
@@ -107,7 +107,7 @@ impl LangItems {
107 /// Salsa query. Look for a lang item, starting from the specified crate and recursively 107 /// Salsa query. Look for a lang item, starting from the specified crate and recursively
108 /// traversing its dependencies. 108 /// traversing its dependencies.
109 pub(crate) fn lang_item_query( 109 pub(crate) fn lang_item_query(
110 db: &impl DefDatabase, 110 db: &dyn DefDatabase,
111 start_crate: CrateId, 111 start_crate: CrateId,
112 item: SmolStr, 112 item: SmolStr,
113 ) -> Option<LangItemTarget> { 113 ) -> Option<LangItemTarget> {
@@ -122,7 +122,7 @@ impl LangItems {
122 .find_map(|dep| db.lang_item(dep.crate_id, item.clone())) 122 .find_map(|dep| db.lang_item(dep.crate_id, item.clone()))
123 } 123 }
124 124
125 fn collect_lang_items(&mut self, db: &impl DefDatabase, module: ModuleId) { 125 fn collect_lang_items(&mut self, db: &dyn DefDatabase, module: ModuleId) {
126 // Look for impl targets 126 // Look for impl targets
127 let def_map = db.crate_def_map(module.krate); 127 let def_map = db.crate_def_map(module.krate);
128 let module_data = &def_map[module.local_id]; 128 let module_data = &def_map[module.local_id];
@@ -152,7 +152,7 @@ impl LangItems {
152 152
153 fn collect_lang_item<T>( 153 fn collect_lang_item<T>(
154 &mut self, 154 &mut self,
155 db: &impl DefDatabase, 155 db: &dyn DefDatabase,
156 item: T, 156 item: T,
157 constructor: fn(T) -> LangItemTarget, 157 constructor: fn(T) -> LangItemTarget,
158 ) where 158 ) where