forked from mirrors/jj
matchers: simplify DifferenceMatcher
slightly
The new `Visit::Nothing` variant lets us more easily restructure `DifferenceMatcher::visit()` to make it handle the case of not removing anything. I think this makes the code a little clearer.
This commit is contained in:
parent
169261ca21
commit
4fda0f8b6a
1 changed files with 6 additions and 11 deletions
|
@ -187,17 +187,12 @@ impl Matcher for DifferenceMatcher<'_> {
|
|||
fn visit(&self, dir: &RepoPath) -> Visit {
|
||||
match self.unwanted.visit(dir) {
|
||||
Visit::AllRecursively => Visit::Nothing,
|
||||
unwanted_visit => match self.wanted.visit(dir) {
|
||||
Visit::AllRecursively => {
|
||||
if unwanted_visit == Visit::Nothing {
|
||||
Visit::AllRecursively
|
||||
} else {
|
||||
Visit::Specific {
|
||||
dirs: VisitDirs::All,
|
||||
files: VisitFiles::All,
|
||||
}
|
||||
}
|
||||
}
|
||||
Visit::Nothing => self.wanted.visit(dir),
|
||||
Visit::Specific { .. } => match self.wanted.visit(dir) {
|
||||
Visit::AllRecursively => Visit::Specific {
|
||||
dirs: VisitDirs::All,
|
||||
files: VisitFiles::All,
|
||||
},
|
||||
wanted_visit => wanted_visit,
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue