branchmap: annotate constructor type for branchcache
authorAugie Fackler <augie@google.com>
Thu, 14 Nov 2019 13:13:36 -0500
changeset 43636 9c1eccdd7ed8
parent 43635 72b454fae92e
child 43637 7edc07fb890c
branchmap: annotate constructor type for branchcache This type signature is...big. But it's correct as far as I can tell, and it detected a bug. Differential Revision: https://phab.mercurial-scm.org/D7389
mercurial/branchmap.py
--- a/mercurial/branchmap.py	Wed Nov 13 22:30:33 2019 -0500
+++ b/mercurial/branchmap.py	Thu Nov 14 13:13:36 2019 -0500
@@ -27,6 +27,23 @@
     stringutil,
 )
 
+if not globals():
+    from typing import (
+        Any,
+        Callable,
+        Dict,
+        Iterable,
+        List,
+        Optional,
+        Set,
+        Tuple,
+        Union,
+    )
+
+    assert any(
+        (Any, Callable, Dict, Iterable, List, Optional, Set, Tuple, Union,)
+    )
+
 subsettable = repoviewutil.subsettable
 
 calcsize = struct.calcsize
@@ -165,6 +182,7 @@
         closednodes=None,
         hasnode=None,
     ):
+        # type: (Union[Dict[bytes, List[bytes]], Iterable[Tuple[bytes, List[bytes]]]], bytes,  int, Optional[bytes], Optional[Set[bytes]], Optional[Callable[[bytes], bool]]) -> None
         """ hasnode is a function which can be used to verify whether changelog
         has a given node or not. If it's not provided, we assume that every node
         we have exists in changelog """
@@ -177,7 +195,7 @@
         if closednodes is None:
             self._closednodes = set()
         else:
-            self._closednodes = set(closednodes)
+            self._closednodes = closednodes
         self._entries = dict(entries)
         # whether closed nodes are verified or not
         self._closedverified = False