--- a/rust/hg-cpython/src/copy_tracing.rs Tue Dec 15 18:04:23 2020 +0100
+++ b/rust/hg-cpython/src/copy_tracing.rs Tue Dec 15 18:22:57 2020 +0100
@@ -1,5 +1,4 @@
use cpython::ObjectProtocol;
-use cpython::PyBool;
use cpython::PyBytes;
use cpython::PyDict;
use cpython::PyList;
@@ -26,32 +25,10 @@
children_count: PyDict,
target_rev: Revision,
rev_info: PyObject,
- is_ancestor: PyObject,
) -> PyResult<PyDict> {
let revs: PyResult<_> =
revs.iter(py).map(|r| Ok(r.extract(py)?)).collect();
- // Wrap the `is_ancestor` python callback as a Rust closure
- //
- // No errors are expected from the Python side, and they will should only
- // happens in case of programing error or severe data corruption. Such
- // errors will raise panic and the rust-cpython harness will turn them into
- // Python exception.
- let is_ancestor_wrap = |anc: Revision, desc: Revision| -> bool {
- is_ancestor
- .call(py, (anc, desc), None)
- .expect(
- "rust-copy-tracing: python call to `is_ancestor` \
- failed",
- )
- .cast_into::<PyBool>(py)
- .expect(
- "rust-copy-tracing: python call to `is_ancestor` \
- returned unexpected non-Bool value",
- )
- .is_true()
- };
-
// Wrap the `rev_info_maker` python callback as a Rust closure
//
// No errors are expected from the Python side, and they will should only
@@ -104,7 +81,6 @@
children_count?,
target_rev,
rev_info_maker,
- &is_ancestor_wrap,
);
let out = PyDict::new(py);
for (dest, source) in res.into_iter() {
@@ -134,8 +110,7 @@
revs: PyList,
children: PyDict,
target_rev: Revision,
- rev_info: PyObject,
- is_ancestor: PyObject
+ rev_info: PyObject
)
),
)?;