Dead code in `CALL_FUNCTION_EX` opcode handler
I am talking about these lines:
Lines 4722 to 4734 in a36235d
| if (!PyDict_CheckExact(kwargs)) { | |
| PyObject *d = PyDict_New(); | |
| if (d == NULL) | |
| goto error; | |
| if (_PyDict_MergeEx(d, kwargs, 2) < 0) { | |
| Py_DECREF(d); | |
| format_kwargs_error(tstate, SECOND(), kwargs); | |
| Py_DECREF(kwargs); | |
| goto error; | |
| } | |
| Py_DECREF(kwargs); | |
| kwargs = d; | |
| } |
They are not ever called, because after #18141 all ** dict unpacking is handled in DICT_MERGE opcode.
This was found while working on #94808 but I think that it deserves a separate issue.
PR is on its way.