[7.x] Allow doing truth-test assertions with just a closure #32626
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.
Currently, for all the truth-test assertions, you have to first pass in a class, then a closure. If you want your editor to assist you with auto-completion, you have to type the class twice. Once as the first argument for the
assertQueued
method, and once as the type hint for the parameter of the closure.This PR, using a little reflection magic, infers the type from the parameter of the closure. This removes the duplication, and allows you to write the assertions like this instead:
This isn't a breaking change, all modified methods will currently throw an exception if you give them a closure as the first argument.