match: drop unnecessary adding of '' to set of dirs
authorMartin von Zweigbergk <martinvonz@google.com>
Wed, 24 Apr 2019 09:39:40 -0700
changeset 42346 38d85ec06552
parent 42345 7d4ee14ff92d
child 42347 6310180662f5
match: drop unnecessary adding of '' to set of dirs This breaks some tests for "rootfilesin:" in a pattern matcher even more, but that just shows how broken that case is. Differential Revision: https://phab.mercurial-scm.org/D6406
mercurial/match.py
tests/test-match.py
--- a/mercurial/match.py	Mon Apr 22 22:43:00 2019 -0700
+++ b/mercurial/match.py	Wed Apr 24 09:39:40 2019 -0700
@@ -533,7 +533,7 @@
 
     @propertycache
     def _dirs(self):
-        return set(util.dirs(self._fileset)) | {''}
+        return set(util.dirs(self._fileset))
 
     def visitdir(self, dir):
         dir = normalizerootdir(dir, 'visitdir')
@@ -691,7 +691,7 @@
 
     @propertycache
     def _dirs(self):
-        return set(util.dirs(self._fileset)) | {''}
+        return set(util.dirs(self._fileset))
 
     def visitdir(self, dir):
         dir = normalizerootdir(dir, 'visitdir')
@@ -1007,7 +1007,7 @@
 
     @propertycache
     def _pathdirs(self):
-        return set(util.finddirs(self._path)) | {''}
+        return set(util.finddirs(self._path))
 
     def visitdir(self, dir):
         if dir == self._path:
--- a/tests/test-match.py	Mon Apr 22 22:43:00 2019 -0700
+++ b/tests/test-match.py	Wed Apr 24 09:39:40 2019 -0700
@@ -84,21 +84,21 @@
     def testVisitdirRootfilesin(self):
         m = matchmod.match(b'x', b'', patterns=[b'rootfilesin:dir/subdir'])
         assert isinstance(m, matchmod.patternmatcher)
-        self.assertTrue(m.visitdir(b''))
         self.assertFalse(m.visitdir(b'dir/subdir/x'))
         self.assertFalse(m.visitdir(b'folder'))
         # FIXME: These should probably be True.
+        self.assertFalse(m.visitdir(b''))
         self.assertFalse(m.visitdir(b'dir'))
         self.assertFalse(m.visitdir(b'dir/subdir'))
 
     def testVisitchildrensetRootfilesin(self):
         m = matchmod.match(b'x', b'', patterns=[b'rootfilesin:dir/subdir'])
         assert isinstance(m, matchmod.patternmatcher)
-        self.assertEqual(m.visitchildrenset(b''), b'this')
         self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), set())
         self.assertEqual(m.visitchildrenset(b'folder'), set())
-        # FIXME: These should probably be {'subdir'} and 'this', respectively,
-        # or at least 'this' and 'this'.
+        # FIXME: These should probably be {'dir'}, {'subdir'} and 'this',
+        # respectively, or at least 'this' for all three.
+        self.assertEqual(m.visitchildrenset(b''), set())
         self.assertEqual(m.visitchildrenset(b'dir'), set())
         self.assertEqual(m.visitchildrenset(b'dir/subdir'), set())