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
--- 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