MCPcopy Index your code
hub / github.com/RustPython/RustPython / finalize_send_result

Method finalize_send_result

crates/vm/src/coroutine.rs:118–144  ·  view source on GitHub ↗
(
        &self,
        jen: &PyObject,
        result: PyResult<ExecutionResult>,
        vm: &VirtualMachine,
    )

Source from the content-addressed store, hash-verified

116 }
117
118 fn finalize_send_result(
119 &self,
120 jen: &PyObject,
121 result: PyResult<ExecutionResult>,
122 vm: &VirtualMachine,
123 ) -> PyResult<PyIterReturn> {
124 self.maybe_close(&result);
125 match result {
126 Ok(exec_res) => Ok(exec_res.into_iter_return(vm)),
127 Err(e) => {
128 if e.fast_isinstance(vm.ctx.exceptions.stop_iteration) {
129 let err =
130 vm.new_runtime_error(format!("{} raised StopIteration", gen_name(jen, vm)));
131 err.set___cause__(Some(e));
132 Err(err)
133 } else if jen.class().is(vm.ctx.types.async_generator)
134 && e.fast_isinstance(vm.ctx.exceptions.stop_async_iteration)
135 {
136 let err = vm.new_runtime_error("async generator raised StopAsyncIteration");
137 err.set___cause__(Some(e));
138 Err(err)
139 } else {
140 Err(e)
141 }
142 }
143 }
144 }
145
146 pub(crate) fn send_none(&self, jen: &PyObject, vm: &VirtualMachine) -> PyResult<PyIterReturn> {
147 if self.closed.load() {

Callers 2

send_noneMethod · 0.80
sendMethod · 0.80

Calls 8

maybe_closeMethod · 0.80
into_iter_returnMethod · 0.80
fast_isinstanceMethod · 0.80
set___cause__Method · 0.80
isMethod · 0.80
SomeClass · 0.50
ErrClass · 0.50
classMethod · 0.45

Tested by

no test coverage detected