match: make nevermatcher an exact matcher and a prefix matcher
The m.isexact() and m.prefix() methods are used by callers to
determine whether m.files() can be used for fast paths. It seems safe
to let callers to any fast paths it can that rely on the empty
m.files().
--- a/mercurial/match.py Mon Jul 10 10:56:40 2017 -0700
+++ b/mercurial/match.py Sun Jul 09 15:19:27 2017 -0700
@@ -347,6 +347,17 @@
def __init__(self, root, cwd, badfn=None):
super(nevermatcher, self).__init__(root, cwd, badfn)
+ # It's a little weird to say that the nevermatcher is an exact matcher
+ # or a prefix matcher, but it seems to make sense to let callers take
+ # fast paths based on either. There will be no exact matches, nor any
+ # prefixes (files() returns []), so fast paths iterating over them should
+ # be efficient (and correct).
+ def isexact(self):
+ return True
+
+ def prefix(self):
+ return True
+
def __repr__(self):
return '<nevermatcher>'