Skip to content

Commit c4be983

Browse files
committed
Collect all qualified package sources
1 parent 8b5f03f commit c4be983

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

rewatch/src/config.rs

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -483,20 +483,27 @@ impl Config {
483483
// TODO: needs improving!
484484

485485
pub fn find_is_type_dev_for_path(&self, relative_path: &Path) -> bool {
486-
if let Some(relative_parent) = relative_path.parent().map(|p| Path::new(p)) {
487-
if let Some(sources) = &self.sources {
488-
match sources {
489-
OneOrMore::Single(Source::Qualified(package_source)) => {
490-
Path::new(&package_source.dir) == relative_parent && package_source.is_type_dev()
491-
}
492-
_ => false,
493-
}
494-
} else {
495-
false
496-
}
497-
} else {
498-
false
499-
}
486+
let relative_parent = match relative_path.parent() {
487+
None => return false,
488+
Some(parent) => Path::new(parent),
489+
};
490+
491+
let package_sources = match self.sources.as_ref() {
492+
None => vec![],
493+
Some(OneOrMore::Single(Source::Shorthand(_))) => vec![],
494+
Some(OneOrMore::Single(Source::Qualified(source))) => vec![source],
495+
Some(OneOrMore::Multiple(multiple)) => multiple
496+
.iter()
497+
.filter_map(|source| match source {
498+
Source::Shorthand(_) => None,
499+
Source::Qualified(package_source) => Some(package_source),
500+
})
501+
.collect(),
502+
};
503+
504+
package_sources.iter().any(|package_source| {
505+
Path::new(&package_source.dir) == relative_parent && package_source.is_type_dev()
506+
})
500507
}
501508
}
502509

0 commit comments

Comments
 (0)