diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-03-16 16:42:58 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2020-03-16 16:42:58 +0000 |
commit | adcc89137d3feea8f19fad461bbde6f4bce048e5 (patch) | |
tree | 160af959553ce57fdfcbc0a6c79bafcc3611aeea /crates/ra_hir_def/src/nameres/path_resolution.rs | |
parent | 648df02953a6ebf87a5876668eceba208687e8a7 (diff) | |
parent | 9faea2364dee4fbc9391ad233c570b70256ef002 (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/path_resolution.rs')
-rw-r--r-- | crates/ra_hir_def/src/nameres/path_resolution.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/crates/ra_hir_def/src/nameres/path_resolution.rs b/crates/ra_hir_def/src/nameres/path_resolution.rs index c058e70aa..35a0a0c98 100644 --- a/crates/ra_hir_def/src/nameres/path_resolution.rs +++ b/crates/ra_hir_def/src/nameres/path_resolution.rs | |||
@@ -70,7 +70,7 @@ impl CrateDefMap { | |||
70 | 70 | ||
71 | pub(crate) fn resolve_visibility( | 71 | pub(crate) fn resolve_visibility( |
72 | &self, | 72 | &self, |
73 | db: &impl DefDatabase, | 73 | db: &dyn DefDatabase, |
74 | original_module: LocalModuleId, | 74 | original_module: LocalModuleId, |
75 | visibility: &RawVisibility, | 75 | visibility: &RawVisibility, |
76 | ) -> Option<Visibility> { | 76 | ) -> Option<Visibility> { |
@@ -98,7 +98,7 @@ impl CrateDefMap { | |||
98 | // the result. | 98 | // the result. |
99 | pub(super) fn resolve_path_fp_with_macro( | 99 | pub(super) fn resolve_path_fp_with_macro( |
100 | &self, | 100 | &self, |
101 | db: &impl DefDatabase, | 101 | db: &dyn DefDatabase, |
102 | mode: ResolveMode, | 102 | mode: ResolveMode, |
103 | original_module: LocalModuleId, | 103 | original_module: LocalModuleId, |
104 | path: &ModPath, | 104 | path: &ModPath, |
@@ -262,7 +262,7 @@ impl CrateDefMap { | |||
262 | 262 | ||
263 | fn resolve_name_in_module( | 263 | fn resolve_name_in_module( |
264 | &self, | 264 | &self, |
265 | db: &impl DefDatabase, | 265 | db: &dyn DefDatabase, |
266 | module: LocalModuleId, | 266 | module: LocalModuleId, |
267 | name: &Name, | 267 | name: &Name, |
268 | shadow: BuiltinShadowMode, | 268 | shadow: BuiltinShadowMode, |
@@ -304,7 +304,7 @@ impl CrateDefMap { | |||
304 | from_crate_root.or(from_extern_prelude) | 304 | from_crate_root.or(from_extern_prelude) |
305 | } | 305 | } |
306 | 306 | ||
307 | fn resolve_in_prelude(&self, db: &impl DefDatabase, name: &Name) -> PerNs { | 307 | fn resolve_in_prelude(&self, db: &dyn DefDatabase, name: &Name) -> PerNs { |
308 | if let Some(prelude) = self.prelude { | 308 | if let Some(prelude) = self.prelude { |
309 | let keep; | 309 | let keep; |
310 | let def_map = if prelude.krate == self.krate { | 310 | let def_map = if prelude.krate == self.krate { |