diff --git a/ast/src/pyo3.rs b/ast/src/pyo3.rs index e54fff2e..74e51720 100644 --- a/ast/src/pyo3.rs +++ b/ast/src/pyo3.rs @@ -38,11 +38,11 @@ impl ToPyo3Ast for Option { impl ToPyo3Ast for Vec { fn to_pyo3_ast(&self, py: Python) -> PyResult> { - let list = PyList::empty(py); - for item in self { - let py_item = item.to_pyo3_ast(py)?; - list.append(py_item)?; - } + let elts = self + .iter() + .map(|item| item.to_pyo3_ast(py)) + .collect::, _>>()?; + let list = PyList::new(py, elts); Ok(list.into()) } }