From 8f036b32691ee43eb4b74db1cfe97cdc88b17a6d Mon Sep 17 00:00:00 2001 From: coolreader18 <33094578+coolreader18@users.noreply.github.com> Date: Sun, 12 Jan 2020 00:01:59 -0600 Subject: [PATCH] quickfix Lib/test list test_extend --- vm/src/obj/objiter.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vm/src/obj/objiter.rs b/vm/src/obj/objiter.rs index 408cb55d6..58bc61402 100644 --- a/vm/src/obj/objiter.rs +++ b/vm/src/obj/objiter.rs @@ -65,6 +65,11 @@ pub fn get_next_object( /* Retrieve all elements from an iterator */ pub fn get_all(vm: &VirtualMachine, iter_obj: &PyObjectRef) -> PyResult> { let cap = length_hint(vm, iter_obj.clone())?.unwrap_or(0); + // TODO: fix extend to do this check (?), see test_extend in Lib/test/list_tests.py, + // https://github.com/python/cpython/blob/master/Objects/listobject.c#L934-L940 + if cap >= isize::max_value() as usize { + return Ok(Vec::new()); + } let mut elements = Vec::with_capacity(cap); while let Some(element) = get_next_object(vm, iter_obj)? { elements.push(T::try_from_object(vm, element)?);