# HG changeset patch # User Matt Harbison # Date 2022-11-08 18:52:46 # Node ID b2666e767029fd4c8b32265c6b23482a045478c3 # Parent b8389533ba3a80831ea800dcd19b05b8b0a60813 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). diff --git a/mercurial/cffi/bdiff.py b/mercurial/cffi/bdiff.py --- a/mercurial/cffi/bdiff.py +++ b/mercurial/cffi/bdiff.py @@ -29,7 +29,7 @@ def blocks(sa, sb): 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: