Mercurial > hg
view mercurial/cext/revlog.h @ 48052:d07d38ef6362
dirstate: Appease pytype
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 `assert`s only move that exception earlier, and informs pytype
that we expect `None` to never happen in this code path.
Differential Revision: https://phab.mercurial-scm.org/D11500
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Tue, 28 Sep 2021 13:43:14 +0200 |
parents | 9db11679f8ac |
children |
line wrap: on
line source
/* revlog.h - efficient revlog parsing This software may be used and distributed according to the terms of the GNU General Public License, incorporated herein by reference. */ #ifndef _HG_REVLOG_H_ #define _HG_REVLOG_H_ #include <Python.h> extern PyTypeObject HgRevlogIndex_Type; #define HgRevlogIndex_Check(op) PyObject_TypeCheck(op, &HgRevlogIndex_Type) #endif /* _HG_REVLOG_H_ */