test-check-pytype.t was failing since 98c0408324e6:
File "/home/simon/projects/hg/mercurial/dirstatemap.py", line 572, in addfile: unsupported operand type(s) for &: 'size: None' and 'rangemask: int' [unsupported-operands] No attribute '__and__' on 'size: None' or '__rand__' on 'rangemask: int' File "/home/simon/projects/hg/mercurial/dirstatemap.py", line 573, in addfile: unsupported operand type(s) for &: 'mtime: None' and 'rangemask: int' [unsupported-operands] No attribute '__and__' on 'mtime: None' or '__rand__' on 'rangemask: int'
None is the default value of the size and mtime parameters of the
addfile method. However, the relevant lines are only used in a code path
where those defaults are never used. These size and mtime are passed
to DirstateItem.new_normal which (in the C implementation) calls
dirstate_item_new_normal which uses:
PyArg_ParseTuple(args, "iii", &mode, &size, &mtime)
So None values would cause an exception to be raised anyway.
The new asserts only move that exception earlier, and informs pytype
that we expect None to never happen in this code path.