Enable "factory sets error and returns nullptr"
#4846
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
(The equivalent of this PR was merged as google/pybind11clif#30064 on September 12, 2023.)
This is a very simple change in support of the PyCLIF-pybind11 integration work:
Merely an extra
if
to pre-emptTypeError: pybind11::init(): factory function returned nullptr
. This allows the factory function to set a custom Python error instead.Manually written factory functions could
throw error_already_set()
directly, but in the context of PyCLIF that is very difficult (compared to this very simple PR), because the factory function can be completely unaware of pybind11.Suggested changelog entry: