Spencer Baugh <sbaugh@janestreet.com> [Wed, 02 Aug 2023 10:09:23 -0400] rev 50858
rust-filepatterns: also normalize RelPath
These patterns should be normalized too; this at least does no harm,
and is necessary for proper status support.
Spencer Baugh <sbaugh@janestreet.com> [Wed, 09 Aug 2023 18:08:28 -0400] rev 50857
rust: simplify pattern file parsing
Previously we kept the pattern syntax as a &[u8] until the last
possible moment, which meant we had to handle potential errors when
parsing that &[u8]. But such errors could never actually occur, given
the structure of the code.
Now we parse it eagerly (in two places) and pass it around as a
PatternSyntax, so we can delete some error handling code.
parse_one_pattern is in particular useful for parsing patterns passed
on the command line, as we'll support later in this series.
Spencer Baugh <sbaugh@janestreet.com> [Wed, 02 Aug 2023 09:57:29 -0400] rev 50856
rust-matchers: better support file_set in IntersectionMatcher
Previously, if both of the input matchers had non-exact file sets,
IntersectionMatcher would simply have an empty fileset.
Now, we duplicate Python behavior: we *union* the filesets of the
matchers in that case. This makes some sense, because without exact
input file sets, we can't do an exact intersection and must
over-approximate.
Concretely, this is necessary because the file_set is the list of
files that were explicitly listed by the user, and we want to provide
explicit errors for all such files, from both matchers.