cffi: adjust the list returned by bdiff.blocks to never have a None entry
This was flagged by pytype after merging the corresponding bdiff.pyi in cext:
File ".../mercurial/cffi/bdiff.py", line 44, in blocks: bad return type [bad-return-type]
Expected: List[Tuple[int, int, int, int]]
Actually returned: List[None]
AFAICT, all callers immediately unpack the tuple into 4 variables, so a `None`
entry would simply crash if they aren't all overwritten. As long a `count` and
the link list are consistent, this shouldn't be a problem.
This placates both pytype and PyCharm (which complained about the `i` in `rl[i]`
having the wrong type with the old code).
--- a/mercurial/cffi/bdiff.py Tue Nov 08 13:38:06 2022 -0500
+++ b/mercurial/cffi/bdiff.py Tue Nov 08 13:52:46 2022 -0500
@@ -29,7 +29,7 @@
count = lib.bdiff_diff(a[0], an, b[0], bn, l)
if count < 0:
raise MemoryError
- rl = [None] * count
+ rl = [(0, 0, 0, 0)] * count
h = l.next
i = 0
while h: