fix tests

This commit is contained in:
Aleksey Kladov 2018-10-15 21:54:12 +03:00
parent 062019590d
commit 7503c5528f
4 changed files with 21 additions and 12 deletions

View file

@ -61,21 +61,12 @@ salsa::query_group! {
} }
} }
#[derive(Default, Debug)] #[derive(Default, Debug, PartialEq, Eq)]
pub(crate) struct FileSet { pub(crate) struct FileSet {
pub(crate) files: FxHashSet<FileId>, pub(crate) files: FxHashSet<FileId>,
pub(crate) resolver: FileResolverImp, pub(crate) resolver: FileResolverImp,
} }
impl PartialEq for FileSet {
fn eq(&self, other: &FileSet) -> bool {
self.files == other.files
}
}
impl Eq for FileSet {
}
impl Hash for FileSet { impl Hash for FileSet {
fn hash<H: Hasher>(&self, hasher: &mut H) { fn hash<H: Hasher>(&self, hasher: &mut H) {
let mut files = self.files.iter().cloned().collect::<Vec<_>>(); let mut files = self.files.iter().cloned().collect::<Vec<_>>();

View file

@ -3,6 +3,7 @@ use std::{
Arc, Arc,
atomic::{AtomicBool, Ordering::SeqCst}, atomic::{AtomicBool, Ordering::SeqCst},
}, },
hash::{Hash, Hasher},
fmt, fmt,
collections::VecDeque, collections::VecDeque,
iter, iter,
@ -29,6 +30,21 @@ pub(crate) struct FileResolverImp {
inner: Arc<FileResolver> inner: Arc<FileResolver>
} }
impl PartialEq for FileResolverImp {
fn eq(&self, other: &FileResolverImp) -> bool {
self.inner() == other.inner()
}
}
impl Eq for FileResolverImp {
}
impl Hash for FileResolverImp {
fn hash<H: Hasher>(&self, hasher: &mut H) {
self.inner().hash(hasher);
}
}
impl FileResolverImp { impl FileResolverImp {
pub(crate) fn new(inner: Arc<FileResolver>) -> FileResolverImp { pub(crate) fn new(inner: Arc<FileResolver>) -> FileResolverImp {
FileResolverImp { inner } FileResolverImp { inner }
@ -39,6 +55,9 @@ impl FileResolverImp {
pub(crate) fn resolve(&self, file_id: FileId, path: &RelativePath) -> Option<FileId> { pub(crate) fn resolve(&self, file_id: FileId, path: &RelativePath) -> Option<FileId> {
self.inner.resolve(file_id, path) self.inner.resolve(file_id, path)
} }
fn inner(&self) -> *const FileResolver {
&*self.inner
}
} }
impl Default for FileResolverImp { impl Default for FileResolverImp {

View file

@ -78,7 +78,6 @@ impl SourceRoot for WritableSourceRoot {
fn contains(&self, file_id: FileId) -> bool { fn contains(&self, file_id: FileId) -> bool {
let db = self.db.read(); let db = self.db.read();
let files = &db.file_set(()).files; let files = &db.file_set(()).files;
eprintln!("files = {:?}", files);
files.contains(&file_id) files.contains(&file_id)
} }
fn lines(&self, file_id: FileId) -> Arc<LineIndex> { fn lines(&self, file_id: FileId) -> Arc<LineIndex> {

View file

@ -238,4 +238,4 @@ fn bar() {
assert_eq!(desc.params, vec!["&self".to_string(), "x".to_string()]); assert_eq!(desc.params, vec!["&self".to_string(), "x".to_string()]);
assert_eq!(desc.ret_type, None); assert_eq!(desc.ret_type, None);
assert_eq!(param, Some(1)); assert_eq!(param, Some(1));
} }