(recursion_limit: i32, vm: &VirtualMachine)
| 1352 | |
| 1353 | #[pyfunction] |
| 1354 | fn setrecursionlimit(recursion_limit: i32, vm: &VirtualMachine) -> PyResult<()> { |
| 1355 | let recursion_limit = recursion_limit |
| 1356 | .to_usize() |
| 1357 | .filter(|&u| u >= 1) |
| 1358 | .ok_or_else(|| { |
| 1359 | vm.new_value_error("recursion limit must be greater than or equal to one") |
| 1360 | })?; |
| 1361 | let recursion_depth = vm.current_recursion_depth(); |
| 1362 | |
| 1363 | if recursion_limit > recursion_depth { |
| 1364 | vm.recursion_limit.set(recursion_limit); |
| 1365 | Ok(()) |
| 1366 | } else { |
| 1367 | Err(vm.new_recursion_error(format!( |
| 1368 | "cannot set the recursion limit to {recursion_limit} at the recursion depth {recursion_depth}: the limit is too low" |
| 1369 | ))) |
| 1370 | } |
| 1371 | } |
| 1372 | |
| 1373 | #[pyfunction] |
| 1374 | fn settrace(tracefunc: PyObjectRef, vm: &VirtualMachine) { |
nothing calls this directly
no test coverage detected