From d761435ba006227bc1a83f8450cfde000dac5aa3 Mon Sep 17 00:00:00 2001 From: Michal Terepeta Date: Wed, 8 Jan 2020 19:29:18 +0100 Subject: Remove the Default impl for SourceRoot Let's be always explicit whether we create a library (i.e., an immutable dependency) or a local `SourceRoot`, since it can have a large impact on the validation performance in salsa. (we found it the hard way recently, where the `Default` instance made it quite tricky to spot a bug) Signed-off-by: Michal Terepeta --- crates/ra_ide/src/change.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'crates/ra_ide') diff --git a/crates/ra_ide/src/change.rs b/crates/ra_ide/src/change.rs index 8b197d642..b0aa2c8e0 100644 --- a/crates/ra_ide/src/change.rs +++ b/crates/ra_ide/src/change.rs @@ -176,7 +176,8 @@ impl RootDatabase { if !change.new_roots.is_empty() { let mut local_roots = Vec::clone(&self.local_roots()); for (root_id, is_local) in change.new_roots { - let root = if is_local { SourceRoot::new() } else { SourceRoot::new_library() }; + let root = + if is_local { SourceRoot::new_local() } else { SourceRoot::new_library() }; let durability = durability(&root); self.set_source_root_with_durability(root_id, Arc::new(root), durability); if is_local { -- cgit v1.2.3