[HELP NEEDED] feat: phpstan-assert with throws annotation #2876
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.
I have a library, that has
treatPhpDocTypesAsCertain
set to false, as there are user-facing methods with array shapes that need to be checked to make sure that no invalid arrays are passed by the user of the package as not everyone uses phpstan. I also have checked exceptions enabled. The combination of these results in undocumentable methods;This results in the following errors:
I don't want to mark all InvalidArgumentExceptions as unchecked, but I don't want to let the exception bubble up into methods that do properly call the constructor with an array of stdClass elements:
The solution?
If a new argument is added to the
@phpstan-assert
annotation with a class-string of an exception both errors would disappear:Would this be something that you would be open to? I started writing the code for this, but this will take quite a lot of time so I'd first like to check if this will even have a chance to get merged.