Before this patch, it is not possible to create a Matcher trait-object (like
Box<dyn Matcher>), because of the use of a generic parameters in some methods,
namely impl AsRef<HgPath>.
While this makes the interface less flexible for callers in theory, it does not
change anything in the current codebase.
Until something like [1] is implemented, this is a "tradeoff" that we need to
make anyway.
[1] https://internals.rust-lang.org/t/pre-rfc-expand-object-safety/12693