diff -r f78f305454fd -r 0247601869ba rust/hg-cpython/src/filepatterns.rs --- a/rust/hg-cpython/src/filepatterns.rs Sun Jul 21 13:48:29 2019 +0900 +++ b/rust/hg-cpython/src/filepatterns.rs Sun Jul 21 12:46:57 2019 +0900 @@ -40,17 +40,31 @@ }; let results: Vec<(PyBytes, LineNumber, PyBytes)> = patterns.iter().map(itemgetter).collect(); - return Ok((results, warnings).to_py_object(py)); + return Ok((results, warnings_to_py_bytes(py, &warnings)) + .to_py_object(py)); } let itemgetter = |x: &PatternTuple| PyBytes::new(py, &x.0); let results: Vec = patterns.iter().map(itemgetter).collect(); - Ok((results, warnings).to_py_object(py)) + Ok( + (results, warnings_to_py_bytes(py, &warnings)) + .to_py_object(py), + ) } Err(e) => Err(PatternFileError::pynew(py, e)), } } +fn warnings_to_py_bytes( + py: Python, + warnings: &[(Vec, Vec)], +) -> Vec<(PyBytes, PyBytes)> { + warnings + .iter() + .map(|(path, syn)| (PyBytes::new(py, path), PyBytes::new(py, syn))) + .collect() +} + fn build_single_regex_wrapper( py: Python, kind: PyObject,