diff --git a/baseline.tst b/baseline.tst new file mode 100644 index 00000000000..c6e56e8c265 --- /dev/null +++ b/baseline.tst @@ -0,0 +1,12 @@ + 24ms - SourceRootConfig::partition + 24ms - SourceRootConfig::partition + 31ms - SourceRootConfig::partition + 30ms - SourceRootConfig::partition + 35ms - SourceRootConfig::partition + 28ms - SourceRootConfig::partition + 32ms - SourceRootConfig::partition + 26ms - SourceRootConfig::partition + 30ms - SourceRootConfig::partition + 26ms - SourceRootConfig::partition + 32ms - SourceRootConfig::partition + 31ms - SourceRootConfig::partition diff --git a/crates/vfs/src/file_set.rs b/crates/vfs/src/file_set.rs index 37c479306ef..e5e2ef53075 100644 --- a/crates/vfs/src/file_set.rs +++ b/crates/vfs/src/file_set.rs @@ -62,7 +62,7 @@ impl FileSetConfig { let mut res = vec![FileSet::default(); self.len()]; for (file_id, path) in vfs.iter() { let root = self.classify(&path, &mut scratch_space); - res[root].insert(file_id, path) + res[root].insert(file_id, path.clone()) } res } diff --git a/crates/vfs/src/lib.rs b/crates/vfs/src/lib.rs index 3bfecd08fbb..cdf6f1fd021 100644 --- a/crates/vfs/src/lib.rs +++ b/crates/vfs/src/lib.rs @@ -90,12 +90,12 @@ impl Vfs { pub fn file_contents(&self, file_id: FileId) -> &[u8] { self.get(file_id).as_deref().unwrap() } - pub fn iter(&self) -> impl Iterator<Item = (FileId, VfsPath)> + '_ { + pub fn iter(&self) -> impl Iterator<Item = (FileId, &VfsPath)> + '_ { (0..self.data.len()) .map(|it| FileId(it as u32)) .filter(move |&file_id| self.get(file_id).is_some()) .map(move |file_id| { - let path = self.interner.lookup(file_id).clone(); + let path = self.interner.lookup(file_id); (file_id, path) }) }