Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ignore broken but excluded file during traversing
Walkdir's [`filter_entry()`][1] won't call the predicate if the entry is essentially an `Err` from its underyling `IntoIter`. That means Cargo hasn't had a chance to call `filter` on an entry that should be excluded but eventually return an `Err` and cause the loop to stop. For instance, a broken symlink which should bee excluded by `filter` will generate an error since `filter` closure is not called with it. The solution is calling `filter` if an error occurs with a path (because it has yet been called with that path). If it's exactly excluded, ignore the error. [1]: https://github.com/BurntSushi/walkdir/blob/abf3a15887758e0af54ebca827c7b6f8b311cb45/src/lib.rs#L1042-L1058
- Loading branch information