Fix py::kw_only when used before the first arg of a method #3488
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.
The implicit space for the
self
argument isn't added until we hit the first argument, but this wasn't being done forkw_only
orpos_only
that happen before the first argument, and so akw_only
before the first argument on methods/constructors would break.This fixes it by properly checking whether we need to add the self arg in those places as well.
(The
pos_only
issue here was extremely mild -- you didn't get the/
in the docstring, but AFAICT it has no other effect since there are no meaningful arguments before it anyway).Closes #3789 (thanks to @rwgk for the minimal test case in that PR).